LibLocale: Statically link LibLocaleData into LibLocale

This commit is contained in:
Dan Klishch 2024-04-20 17:41:29 -04:00 committed by Andrew Kaster
parent 932a722623
commit d8119c4b4a
Notes: sideshowbarker 2024-07-17 11:30:54 +09:00
12 changed files with 2 additions and 34 deletions

View File

@ -173,12 +173,6 @@ function(embed_resource target section file)
target_sources("${target}" PRIVATE "${asm_file}")
endfunction()
function(link_with_locale_data target)
if (ENABLE_UNICODE_DATABASE_DOWNLOAD AND SERENITYOS)
target_link_libraries("${target}" PRIVATE LibLocaleData)
endif()
endfunction()
function(remove_path_if_version_changed version version_file cache_path)
set(version_differs YES)

View File

@ -528,12 +528,7 @@ if (BUILD_LAGOM)
# FIXME: How about we don't include Kernel/API from random high-level libraries?
install(FILES ${SERENITY_PROJECT_ROOT}/Kernel/API/KeyCode.h DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/Kernel/API")
# FIXME: LibLocaleData is an object lib in Lagom, because the weak symbol trick we use on serenity
# straight up isn't supposed to work per ELF rules
target_link_libraries(LibLocale PRIVATE LibTimeZone)
if (ENABLE_UNICODE_DATABASE_DOWNLOAD)
install(TARGETS LibLocaleData EXPORT LagomTargets)
endif()
add_serenity_subdirectory(Userland/Shell)

View File

@ -1,13 +1,10 @@
serenity_testjs_test(test-js.cpp test-js LIBS LibLocale)
install(TARGETS test-js RUNTIME DESTINATION bin OPTIONAL)
link_with_locale_data(test-js)
serenity_test(test-invalid-unicode-js.cpp LibJS LIBS LibJS LibLocale)
link_with_locale_data(test-invalid-unicode-js)
serenity_test(test-value-js.cpp LibJS LIBS LibJS LibLocale)
link_with_locale_data(test-value-js)
serenity_component(
test262-runner
@ -16,7 +13,6 @@ serenity_component(
add_executable(test262-runner test262-runner.cpp)
target_link_libraries(test262-runner PRIVATE LibJS LibCore LibLocale)
serenity_set_implicit_links(test262-runner)
link_with_locale_data(test262-runner)
install(TARGETS test262-runner RUNTIME DESTINATION bin OPTIONAL)
serenity_component(

View File

@ -7,5 +7,4 @@ foreach(source IN LISTS TEST_SOURCES)
serenity_test("${source}" LibLocale LIBS LibLocale)
get_filename_component(target "${source}" NAME_WLE)
link_with_locale_data("${target}")
endforeach()

View File

@ -39,4 +39,3 @@ set(GENERATED_SOURCES
serenity_app(Browser ICON app-browser)
target_link_libraries(Browser PRIVATE LibCore LibWebView LibWeb LibProtocol LibGUI LibDesktop LibConfig LibGfx LibIPC LibJS LibLocale LibMain LibSyntax LibURL)
link_with_locale_data(Browser)

View File

@ -20,4 +20,3 @@ set(GENERATED_SOURCES
serenity_app(ClockSettings ICON app-analog-clock) # FIXME: Create a ClockSettings icon.
target_link_libraries(ClockSettings PRIVATE LibConfig LibCore LibGfx LibGUI LibMain LibLocale)
link_with_locale_data(ClockSettings)

View File

@ -17,4 +17,3 @@ set(SOURCES
serenity_app(Help ICON app-help)
target_link_libraries(Help PRIVATE LibCore LibWebView LibWeb LibMarkdown LibGfx LibGUI LibDesktop LibMain LibManual LibLocale LibURL)
link_with_locale_data(Help)

View File

@ -3,12 +3,7 @@ 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()
serenity_lib(LibLocaleData localedata TYPE OBJECT)
target_compile_options(LibLocaleData PRIVATE -g0 -Os -Wno-parentheses-equality)
target_link_libraries(LibLocaleData PRIVATE LibTimeZone)
unset(GENERATED_SOURCES)
@ -27,9 +22,5 @@ target_link_libraries(LibLocale PRIVATE LibUnicode)
target_compile_definitions(LibLocale PRIVATE ENABLE_UNICODE_DATA=$<BOOL:${ENABLE_UNICODE_DATABASE_DOWNLOAD}>)
if (DEFINED LOCALE_DATA_SOURCES)
if (SERENITYOS)
add_dependencies(LibLocale LibLocaleData)
else()
target_link_libraries(LibLocale PRIVATE LibLocaleData)
endif()
target_link_libraries(LibLocale PRIVATE LibLocaleData)
endif()

View File

@ -726,7 +726,6 @@ serenity_lib(LibWeb web)
# NOTE: We link with LibSoftGPU here instead of lazy loading it via dlopen() so that we do not have to unveil the library and pledge prot_exec.
target_link_libraries(LibWeb PRIVATE LibCore LibCrypto LibJS LibMarkdown LibHTTP LibGemini LibGUI LibGfx LibIPC LibLocale LibRegex LibSoftGPU LibSyntax LibTextCodec LibUnicode LibAudio LibVideo LibWasm LibXML LibIDL LibURL LibTLS)
link_with_locale_data(LibWeb)
if (HAS_ACCELERATED_GRAPHICS)
target_link_libraries(LibWeb PRIVATE ${ACCEL_GFX_LIBS})

View File

@ -32,7 +32,6 @@ set(GENERATED_SOURCES
serenity_bin(WebContent)
target_link_libraries(WebContent PRIVATE LibCore LibFileSystem LibIPC LibGfx LibAudio LibImageDecoderClient LibJS LibWebView LibWeb LibLocale LibMain LibURL)
link_with_locale_data(WebContent)
if (HAS_ACCELERATED_GRAPHICS)
target_compile_definitions(WebContent PRIVATE HAS_ACCELERATED_GRAPHICS)

View File

@ -18,4 +18,3 @@ set(GENERATED_SOURCES
serenity_bin(WebWorker)
target_link_libraries(WebWorker PRIVATE LibCore LibFileSystem LibGfx LibIPC LibJS LibWeb LibWebView LibLocale LibMain LibURL)
link_with_locale_data(WebWorker)

View File

@ -108,7 +108,6 @@ target_link_libraries(ini PRIVATE LibFileSystem)
target_link_libraries(install-bin PRIVATE LibFileSystem)
target_link_libraries(isobmff PRIVATE LibGfx)
target_link_libraries(js PRIVATE LibCrypto LibJS LibLine LibLocale LibTextCodec)
link_with_locale_data(js)
target_link_libraries(keymap PRIVATE LibKeyboard)
target_link_libraries(less PRIVATE LibLine)
target_link_libraries(ls PRIVATE LibFileSystem LibURL)