diff --git a/Meta/CMake/libweb_generators.cmake b/Meta/CMake/libweb_generators.cmake index ccb1be6f08e..f874ce5c542 100644 --- a/Meta/CMake/libweb_generators.cmake +++ b/Meta/CMake/libweb_generators.cmake @@ -96,20 +96,21 @@ function (generate_css_implementation) NAMESPACE "Web::CSS" ) + set(CSS_GENERATED_HEADERS + "CSS/Enums.h" + "CSS/Keyword.h" + "CSS/MathFunctions.h" + "CSS/MediaFeatureID.h" + "CSS/PropertyID.h" + "CSS/PseudoClass.h" + "CSS/TransformFunctions.h" + ) + list(TRANSFORM CSS_GENERATED_HEADERS PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") if (ENABLE_INSTALL_HEADERS) - set(CSS_GENERATED_TO_INSTALL - "CSS/Enums.h" - "CSS/Keyword.h" - "CSS/MathFunctions.h" - "CSS/MediaFeatureID.h" - "CSS/PropertyID.h" - "CSS/PseudoClass.h" - "CSS/TransformFunctions.h" - ) - list(TRANSFORM CSS_GENERATED_TO_INSTALL PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") - install(FILES ${CSS_GENERATED_TO_INSTALL} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/CSS") + install(FILES ${CSS_GENERATED_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/CSS") endif() - + list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${CSS_GENERATED_HEADERS}) + set(LIBWEB_ALL_GENERATED_HEADERS ${LIBWEB_ALL_GENERATED_HEADERS} PARENT_SCOPE) endfunction() function (generate_js_bindings target) @@ -175,12 +176,16 @@ function (generate_js_bindings target) add_dependencies(all_generated generate_${basename}) add_dependencies(${target} generate_${basename}) + set(BINDINGS_HEADERS ${BINDINGS_SOURCES}) + list(FILTER BINDINGS_HEADERS INCLUDE REGEX "\.h$") + if (ENABLE_INSTALL_HEADERS) - # install generated sources - list(FILTER BINDINGS_SOURCES INCLUDE REGEX "\.h$") - install(FILES ${BINDINGS_SOURCES} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/Bindings") + install(FILES ${BINDINGS_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/Bindings") endif() + list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${BINDINGS_HEADERS}) + set(LIBWEB_ALL_GENERATED_HEADERS ${LIBWEB_ALL_GENERATED_HEADERS} PARENT_SCOPE) + list(APPEND LIBWEB_ALL_IDL_FILES "${LIBWEB_INPUT_FOLDER}/${class}.idl") set(LIBWEB_ALL_IDL_FILES ${LIBWEB_ALL_IDL_FILES} PARENT_SCOPE) endfunction() @@ -212,14 +217,20 @@ function (generate_js_bindings target) add_dependencies(all_generated generate_exposed_interfaces) add_dependencies(${target} generate_exposed_interfaces) + list(TRANSFORM exposed_interface_sources PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") + set(exposed_interface_headers ${exposed_interface_sources}) + list(FILTER exposed_interface_headers INCLUDE REGEX "\.h$") + if (ENABLE_INSTALL_HEADERS) - list(FILTER exposed_interface_sources INCLUDE REGEX "\.h$") - list(TRANSFORM exposed_interface_sources PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") - install(FILES ${exposed_interface_sources} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/Bindings") + install(FILES ${exposed_interface_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibWeb/Bindings") endif() + + list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${exposed_interface_headers}) + set(LIBWEB_ALL_GENERATED_HEADERS ${LIBWEB_ALL_GENERATED_HEADERS} PARENT_SCOPE) endfunction() include("idl_files.cmake") generate_exposed_interface_files() + set(LIBWEB_ALL_GENERATED_HEADERS ${LIBWEB_ALL_GENERATED_HEADERS} PARENT_SCOPE) endfunction() diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index f7f6d8561c5..fd136edca27 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -777,5 +777,11 @@ target_link_libraries(LibWeb PRIVATE LibCore LibCrypto LibJS LibHTTP LibGfx LibI generate_js_bindings(LibWeb) -# Note: If you're looking for the calls to "libweb_js_bindings()", -# they have been moved to "idl_files.cmake" +if (ENABLE_SWIFT) + set(generated_headers ${GENERATED_SOURCES}) + list(FILTER generated_headers INCLUDE REGEX "\\.h$") + list(TRANSFORM generated_headers PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") + list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${generated_headers}) + + generate_clang_module_map(LibWeb GENERATED_FILES ${LIBWEB_ALL_GENERATED_HEADERS}) +endif()