mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:17:35 +00:00
Lagom+CMake: Propagate dependencies for generated custom targets
We have logic for serenity_generated_sources which works well for source files that are specified in GENERATED_SOURCES prior to calling serenity_lib or serenity_bin. However, code generated with invoke_generator, and the LibWeb generators do not always follow the pattern of the IDL and GML files. For the LibWeb generators, we can just add_dependencies to LibWeb at the time we declare the generate_Foo custom target. However for LibLocale, LibTimeZone, and LibUnicode, we don't have the name of the target available, so export the name in a variable to set into GENERATED_SOURCES. To make this work for Lagom, we need to make sure that lagom_lib and serenity_bin in Lagom/CMakeLists.txt call serenity_generated_sources on the target. This enables the Xcode generator on macOS hosts, at least for Lagom.
This commit is contained in:
parent
8160b53228
commit
b8e51425e9
6 changed files with 22 additions and 10 deletions
|
@ -2,13 +2,16 @@ include(${SerenityOS_SOURCE_DIR}/Meta/CMake/locale_data.cmake)
|
|||
|
||||
if (DEFINED LOCALE_DATA_SOURCES)
|
||||
set(SOURCES ${LOCALE_DATA_SOURCES})
|
||||
set(GENERATED_SOURCES ${CURRENT_LIB_GENERATED})
|
||||
if (SERENITYOS)
|
||||
serenity_lib(LibLocaleData localedata)
|
||||
else()
|
||||
add_library(LibLocaleData OBJECT ${SOURCES})
|
||||
serenity_generated_sources(LibLocaleData)
|
||||
endif()
|
||||
target_compile_options(LibLocaleData PRIVATE -g0 -Os -Wno-parentheses-equality)
|
||||
target_link_libraries(LibLocaleData LibCore LibTimeZone)
|
||||
unset(GENERATED_SOURCES)
|
||||
endif()
|
||||
|
||||
set(SOURCES
|
||||
|
|
|
@ -4,8 +4,10 @@ set(SOURCES
|
|||
TimeZone.cpp
|
||||
${TIME_ZONE_DATA_SOURCES}
|
||||
)
|
||||
set(GENERATED_SOURCES ${CURRENT_LIB_GENERATED})
|
||||
|
||||
add_library(LibTimeZone OBJECT ${SOURCES})
|
||||
serenity_generated_sources(LibTimeZone)
|
||||
target_compile_definitions(LibTimeZone PRIVATE ENABLE_TIME_ZONE_DATA=$<BOOL:${ENABLE_TIME_ZONE_DATABASE_DOWNLOAD}>)
|
||||
|
||||
# NOTE: These objects are used by the DynamicLoader, which is always built without coverage instrumentation.
|
||||
|
|
|
@ -7,6 +7,7 @@ set(SOURCES
|
|||
Normalize.cpp
|
||||
${UNICODE_DATA_SOURCES}
|
||||
)
|
||||
set(GENERATED_SOURCES ${CURRENT_LIB_GENERATED})
|
||||
|
||||
serenity_lib(LibUnicode unicode)
|
||||
target_link_libraries(LibUnicode LibCore)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue