diff --git a/Meta/CMake/libweb_generators.cmake b/Meta/CMake/libweb_generators.cmake index 2296cdde9e..0e1d091000 100644 --- a/Meta/CMake/libweb_generators.cmake +++ b/Meta/CMake/libweb_generators.cmake @@ -1,8 +1,16 @@ function (generate_css_implementation) - set(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}") - set(LIBWEB_OUTPUT_FOLDER "") - set(LIBWEB_META_PREFIX "") + if (CMAKE_CURRENT_BINARY_DIR MATCHES ".*/LibWeb") + # Serenity build + SET(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}") + SET(LIBWEB_OUTPUT_FOLDER "") + SET(LIBWEB_META_PREFIX "") + else() + # Lagom Build + SET(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibWeb") + SET(LIBWEB_OUTPUT_FOLDER "LibWeb/") + SET(LIBWEB_META_PREFIX "Lagom") + endif() invoke_generator( "Enums.cpp" @@ -84,9 +92,17 @@ endfunction() function (generate_js_wrappers target) - set(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}") - set(LIBWEB_OUTPUT_FOLDER "") - set(LIBWEB_META_PREFIX "") + if (CMAKE_CURRENT_BINARY_DIR MATCHES ".*/LibWeb") + # Serenity build + SET(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}") + SET(LIBWEB_OUTPUT_FOLDER "") + SET(LIBWEB_META_PREFIX "") + else() + # Lagom Build + SET(LIBWEB_INPUT_FOLDER "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibWeb") + SET(LIBWEB_OUTPUT_FOLDER "LibWeb/") + SET(LIBWEB_META_PREFIX "Lagom") + endif() function(libweb_js_wrapper class) cmake_parse_arguments(PARSE_ARGV 1 LIBWEB_WRAPPER "ITERABLE" "" "") diff --git a/Meta/Lagom/CMakeLists.txt b/Meta/Lagom/CMakeLists.txt index 99c92b81a0..74e21f4852 100644 --- a/Meta/Lagom/CMakeLists.txt +++ b/Meta/Lagom/CMakeLists.txt @@ -478,6 +478,32 @@ if (BUILD_LAGOM) SOURCES ${LIBWASM_SOURCES} ) + # Web + include(libweb_generators) + file(GLOB LIBWEB_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWeb/*.cpp") + file(GLOB LIBWEB_SUBDIR_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWeb/*/*.cpp") + file(GLOB LIBWEB_SUBSUBDIR_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWeb/*/*/*.cpp") + list(REMOVE_ITEM LIBWEB_SUBSUBDIR_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibWeb/CSS/SyntaxHighlighter/SyntaxHighlighter.cpp") + list(REMOVE_ITEM LIBWEB_SUBSUBDIR_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/../../Userland/Libraries/LibWeb/HTML/SyntaxHighlighter/SyntaxHighlighter.cpp") + + generate_css_implementation() + + set(LIBWEB_GENERATED_SOURCES + LibWeb/CSS/DefaultStyleSheetSource.cpp + LibWeb/CSS/Enums.cpp + LibWeb/CSS/MediaFeatureID.cpp + LibWeb/CSS/PropertyID.cpp + LibWeb/CSS/QuirksModeStyleSheetSource.cpp + LibWeb/CSS/TransformFunctions.cpp + LibWeb/CSS/ValueID.cpp + ) + + lagom_lib(Web web + SOURCES ${LIBWEB_SOURCES} ${LIBWEB_SUBDIR_SOURCES} ${LIBWEB_SUBSUBDIR_SOURCES} ${LIBWEB_GENERATED_SOURCES} + LIBS LagomMarkdown LagomGemini LagomGfx LagomJS LagomTextCodec LagomWasm LagomXML + ) + generate_js_wrappers(LagomWeb) + # WebSocket file(GLOB LIBWEBSOCKET_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWebSocket/*.cpp") file(GLOB LIBWEBSOCKET_SUBDIR_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibWebSocket/*/*.cpp")