From 7834e26ddb6f0205b8a4688b5df339f50803cc48 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Sat, 22 Oct 2022 15:13:49 +0200 Subject: [PATCH] Everywhere: Explicitly link all binaries against the LibC target Even though the toolchain implicitly links against -lc, it does not know where it should get LibC from except for the sysroot. In the case of Clang this causes it to pick up the LibC stub instead, which might be slightly outdated and feature missing symbols. This is currently not an issue that manifests because we pass through the dependency on LibC and other libraries by accident, which causes CMake to link against the LibC target (instead of just the library), and thus points the linker at the build output directory. Since we are looking to fix that in the upcoming commits, let's make sure that everything will still be able to find the proper LibC first. --- Meta/CMake/utils.cmake | 13 +++++++++++++ Tests/Kernel/CMakeLists.txt | 1 + Tests/LibELF/CMakeLists.txt | 1 + Tests/LibJS/CMakeLists.txt | 2 ++ Tests/UserspaceEmulator/CMakeLists.txt | 1 + .../HackStudio/LanguageServers/CMakeLists.txt | 2 +- Userland/Libraries/LibCards/CMakeLists.txt | 2 +- Userland/Libraries/LibChess/CMakeLists.txt | 2 +- .../Libraries/LibCodeComprehension/CMakeLists.txt | 1 - .../LibCodeComprehension/Cpp/CMakeLists.txt | 2 +- .../LibCodeComprehension/Shell/CMakeLists.txt | 2 +- Userland/Libraries/LibCompress/CMakeLists.txt | 2 +- Userland/Libraries/LibCore/CMakeLists.txt | 2 +- Userland/Libraries/LibCoredump/CMakeLists.txt | 2 +- Userland/Libraries/LibCpp/CMakeLists.txt | 2 +- Userland/Libraries/LibCrypt/CMakeLists.txt | 2 +- Userland/Libraries/LibCrypto/CMakeLists.txt | 2 +- Userland/Libraries/LibDNS/CMakeLists.txt | 2 +- Userland/Libraries/LibDebug/CMakeLists.txt | 2 +- Userland/Libraries/LibDeviceTree/CMakeLists.txt | 2 +- Userland/Libraries/LibDiff/CMakeLists.txt | 1 - Userland/Libraries/LibEDID/CMakeLists.txt | 1 - Userland/Libraries/LibIPC/CMakeLists.txt | 2 +- Userland/Libraries/LibLine/CMakeLists.txt | 2 +- Userland/Libraries/LibMain/CMakeLists.txt | 1 - Userland/Libraries/LibPCIDB/CMakeLists.txt | 1 - Userland/Libraries/LibPDF/CMakeLists.txt | 2 +- Userland/Libraries/LibRegex/CMakeLists.txt | 2 +- Userland/Libraries/LibSyntax/CMakeLists.txt | 1 - Userland/Libraries/LibTest/CMakeLists.txt | 1 - Userland/Libraries/LibTextCodec/CMakeLists.txt | 1 - Userland/Libraries/LibThreading/CMakeLists.txt | 2 +- Userland/Libraries/LibUSBDB/CMakeLists.txt | 1 - Userland/Libraries/LibVT/CMakeLists.txt | 2 +- Userland/Libraries/LibWasm/CMakeLists.txt | 2 +- Userland/Libraries/LibX86/CMakeLists.txt | 1 - Userland/Libraries/LibXML/CMakeLists.txt | 1 - Userland/Services/CrashDaemon/CMakeLists.txt | 2 +- Userland/Utilities/CMakeLists.txt | 2 ++ 39 files changed, 42 insertions(+), 33 deletions(-) diff --git a/Meta/CMake/utils.cmake b/Meta/CMake/utils.cmake index b35493ee94a..1a524287e56 100644 --- a/Meta/CMake/utils.cmake +++ b/Meta/CMake/utils.cmake @@ -2,6 +2,15 @@ include(${CMAKE_CURRENT_LIST_DIR}/serenity_components.cmake) include(${CMAKE_CURRENT_LIST_DIR}/code_generators.cmake) +function(serenity_set_implicit_links target_name) + # Make sure that CMake is aware of the implicit LibC dependency, and ensure + # that we are choosing the correct and updated LibC. + # The latter is a problem with Clang especially, since we might have the + # slightly outdated stub in the sysroot, but have not yet installed the freshly + # built LibC. + target_link_libraries(${target_name} LibC) +endfunction() + function(serenity_install_headers target_name) file(GLOB_RECURSE headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.h") foreach(header ${headers}) @@ -43,6 +52,7 @@ if (NOT COMMAND serenity_lib) install(TARGETS ${target_name} DESTINATION ${CMAKE_INSTALL_LIBDIR} OPTIONAL) set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name}) serenity_generated_sources(${target_name}) + serenity_set_implicit_links(${target_name}) endfunction() endif() @@ -56,6 +66,7 @@ if (NOT COMMAND serenity_lib_static) install(TARGETS ${target_name} DESTINATION ${CMAKE_INSTALL_LIBDIR} OPTIONAL) set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name}) serenity_generated_sources(${target_name}) + serenity_set_implicit_links(${target_name}) endfunction() endif() @@ -80,6 +91,7 @@ if (NOT COMMAND serenity_bin) set_target_properties(${target_name} PROPERTIES EXCLUDE_FROM_ALL TRUE) install(TARGETS ${target_name} RUNTIME DESTINATION bin OPTIONAL) serenity_generated_sources(${target_name}) + serenity_set_implicit_links(${target_name}) endfunction() endif() @@ -96,6 +108,7 @@ function(serenity_test test_src sub_dir) add_executable(${test_name} ${TEST_SOURCES}) add_dependencies(ComponentTests ${test_name}) set_target_properties(${test_name} PROPERTIES EXCLUDE_FROM_ALL TRUE) + serenity_set_implicit_links(${test_name}) target_link_libraries(${test_name} LibTest LibCore) foreach(lib ${SERENITY_TEST_LIBS}) target_link_libraries(${test_name} ${lib}) diff --git a/Tests/Kernel/CMakeLists.txt b/Tests/Kernel/CMakeLists.txt index 3ec015b2c3e..a91b4e0979c 100644 --- a/Tests/Kernel/CMakeLists.txt +++ b/Tests/Kernel/CMakeLists.txt @@ -26,6 +26,7 @@ foreach(source IN LISTS TEST_SOURCES) get_filename_component(test_name "${source}" NAME_WE) add_executable("${test_name}" "${source}") target_link_libraries("${test_name}" LibCore) + serenity_set_implicit_links("${test_name}") install(TARGETS "${test_name}" RUNTIME DESTINATION usr/Tests/Kernel/Legacy) endforeach() diff --git a/Tests/LibELF/CMakeLists.txt b/Tests/LibELF/CMakeLists.txt index 64924b06ba7..79398657616 100644 --- a/Tests/LibELF/CMakeLists.txt +++ b/Tests/LibELF/CMakeLists.txt @@ -4,6 +4,7 @@ macro(add_dlopen_lib NAME FUNCTION) target_compile_definitions(${NAME} PRIVATE -DFUNCTION=${FUNCTION}) # LibLine is not special, just an "external" dependency target_link_libraries(${NAME} LibLine) + serenity_set_implicit_links(${NAME}) # Avoid execution by the test runner install(TARGETS ${NAME} DESTINATION usr/Tests/LibELF diff --git a/Tests/LibJS/CMakeLists.txt b/Tests/LibJS/CMakeLists.txt index 140a20afe5a..0f8b6ffddb1 100644 --- a/Tests/LibJS/CMakeLists.txt +++ b/Tests/LibJS/CMakeLists.txt @@ -18,6 +18,7 @@ serenity_component( ) add_executable(test262-runner test262-runner.cpp) target_link_libraries(test262-runner LibJS LibCore) +serenity_set_implicit_links(test262-runner) link_with_locale_data(test262-runner) install(TARGETS test262-runner RUNTIME DESTINATION bin OPTIONAL) @@ -27,4 +28,5 @@ serenity_component( ) add_executable(test-test262 test-test262.cpp) target_link_libraries(test-test262 LibMain LibCore) +serenity_set_implicit_links(test-test262) install(TARGETS test-test262 RUNTIME DESTINATION bin OPTIONAL) diff --git a/Tests/UserspaceEmulator/CMakeLists.txt b/Tests/UserspaceEmulator/CMakeLists.txt index 875cbcd9a9c..621423ac136 100644 --- a/Tests/UserspaceEmulator/CMakeLists.txt +++ b/Tests/UserspaceEmulator/CMakeLists.txt @@ -8,5 +8,6 @@ foreach(source IN LISTS TEST_SOURCES) get_filename_component(test_name "${source}" NAME_WE) add_executable("${test_name}" "${source}") target_link_libraries("${test_name}" LibCore) + serenity_set_implicit_links("${test_name}") install(TARGETS "${test_name}" RUNTIME DESTINATION usr/Tests/UserEmulator) endforeach() diff --git a/Userland/DevTools/HackStudio/LanguageServers/CMakeLists.txt b/Userland/DevTools/HackStudio/LanguageServers/CMakeLists.txt index 5ee209de7f0..337e45e42c2 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/CMakeLists.txt +++ b/Userland/DevTools/HackStudio/LanguageServers/CMakeLists.txt @@ -9,7 +9,7 @@ set(GENERATED_SOURCES LanguageServerEndpoint.h) serenity_lib(LibLanguageServer languageserver) -target_link_libraries(LibLanguageServer LibCodeComprehension LibC) +target_link_libraries(LibLanguageServer LibCodeComprehension) add_subdirectory(Cpp) add_subdirectory(Shell) diff --git a/Userland/Libraries/LibCards/CMakeLists.txt b/Userland/Libraries/LibCards/CMakeLists.txt index 06e7bae7a8f..38ca0bdcdb3 100644 --- a/Userland/Libraries/LibCards/CMakeLists.txt +++ b/Userland/Libraries/LibCards/CMakeLists.txt @@ -6,4 +6,4 @@ set(SOURCES ) serenity_lib(LibCards cards) -target_link_libraries(LibCards LibC LibCore LibConfig LibGUI) +target_link_libraries(LibCards LibCore LibConfig LibGUI) diff --git a/Userland/Libraries/LibChess/CMakeLists.txt b/Userland/Libraries/LibChess/CMakeLists.txt index 07c6a5aa472..a5e8a23dd52 100644 --- a/Userland/Libraries/LibChess/CMakeLists.txt +++ b/Userland/Libraries/LibChess/CMakeLists.txt @@ -5,4 +5,4 @@ set(SOURCES ) serenity_lib(LibChess chess) -target_link_libraries(LibChess LibC LibCore) +target_link_libraries(LibChess LibCore) diff --git a/Userland/Libraries/LibCodeComprehension/CMakeLists.txt b/Userland/Libraries/LibCodeComprehension/CMakeLists.txt index 1169c0be17d..802a42b91bf 100644 --- a/Userland/Libraries/LibCodeComprehension/CMakeLists.txt +++ b/Userland/Libraries/LibCodeComprehension/CMakeLists.txt @@ -4,7 +4,6 @@ set(SOURCES ) serenity_lib(LibCodeComprehension codecomprehension) -target_link_libraries(LibCodeComprehension LibC) add_subdirectory(Cpp) add_subdirectory(Shell) diff --git a/Userland/Libraries/LibCodeComprehension/Cpp/CMakeLists.txt b/Userland/Libraries/LibCodeComprehension/Cpp/CMakeLists.txt index 564f76e6ac2..fdabd5ad49a 100644 --- a/Userland/Libraries/LibCodeComprehension/Cpp/CMakeLists.txt +++ b/Userland/Libraries/LibCodeComprehension/Cpp/CMakeLists.txt @@ -3,7 +3,7 @@ set(SOURCES ) serenity_lib(LibCppComprehension cppcomprehension) -target_link_libraries(LibCppComprehension LibCodeComprehension LibC) +target_link_libraries(LibCppComprehension LibCodeComprehension) serenity_component( CppComprehensionTests diff --git a/Userland/Libraries/LibCodeComprehension/Shell/CMakeLists.txt b/Userland/Libraries/LibCodeComprehension/Shell/CMakeLists.txt index b5151a2121c..3c5525e29db 100644 --- a/Userland/Libraries/LibCodeComprehension/Shell/CMakeLists.txt +++ b/Userland/Libraries/LibCodeComprehension/Shell/CMakeLists.txt @@ -3,4 +3,4 @@ set(SOURCES ) serenity_lib(LibShellComprehension shellcomprehension) -target_link_libraries(LibShellComprehension LibCodeComprehension LibC) +target_link_libraries(LibShellComprehension LibCodeComprehension) diff --git a/Userland/Libraries/LibCompress/CMakeLists.txt b/Userland/Libraries/LibCompress/CMakeLists.txt index d13ab18ef3b..18095ffa616 100644 --- a/Userland/Libraries/LibCompress/CMakeLists.txt +++ b/Userland/Libraries/LibCompress/CMakeLists.txt @@ -7,4 +7,4 @@ set(SOURCES ) serenity_lib(LibCompress compress) -target_link_libraries(LibCompress LibC LibCrypto) +target_link_libraries(LibCompress LibCrypto) diff --git a/Userland/Libraries/LibCore/CMakeLists.txt b/Userland/Libraries/LibCore/CMakeLists.txt index 0b5aa8db7d2..831613f9552 100644 --- a/Userland/Libraries/LibCore/CMakeLists.txt +++ b/Userland/Libraries/LibCore/CMakeLists.txt @@ -45,4 +45,4 @@ if (NOT ANDROID AND NOT WIN32) endif() serenity_lib(LibCore core) -target_link_libraries(LibCore LibC LibCrypt LibSystem) +target_link_libraries(LibCore LibCrypt LibSystem) diff --git a/Userland/Libraries/LibCoredump/CMakeLists.txt b/Userland/Libraries/LibCoredump/CMakeLists.txt index c1ae774dd6b..16858a3e4fa 100644 --- a/Userland/Libraries/LibCoredump/CMakeLists.txt +++ b/Userland/Libraries/LibCoredump/CMakeLists.txt @@ -5,4 +5,4 @@ set(SOURCES ) serenity_lib(LibCoredump coredump) -target_link_libraries(LibCoredump LibC LibCompress LibCore LibDebug) +target_link_libraries(LibCoredump LibCompress LibCore LibDebug) diff --git a/Userland/Libraries/LibCpp/CMakeLists.txt b/Userland/Libraries/LibCpp/CMakeLists.txt index 87aee2093f3..65b91ac2385 100644 --- a/Userland/Libraries/LibCpp/CMakeLists.txt +++ b/Userland/Libraries/LibCpp/CMakeLists.txt @@ -9,4 +9,4 @@ set(SOURCES ) serenity_lib(LibCpp cpp) -target_link_libraries(LibCpp LibC LibSyntax LibDiff) +target_link_libraries(LibCpp LibSyntax LibDiff) diff --git a/Userland/Libraries/LibCrypt/CMakeLists.txt b/Userland/Libraries/LibCrypt/CMakeLists.txt index 0def784740c..76eb50b6835 100644 --- a/Userland/Libraries/LibCrypt/CMakeLists.txt +++ b/Userland/Libraries/LibCrypt/CMakeLists.txt @@ -11,4 +11,4 @@ set(SOURCES ) serenity_lib(LibCrypt crypt) -target_link_libraries(LibCrypt LibC LibCryptSHA2) +target_link_libraries(LibCrypt LibCryptSHA2) diff --git a/Userland/Libraries/LibCrypto/CMakeLists.txt b/Userland/Libraries/LibCrypto/CMakeLists.txt index 21fa07adb55..7ee5ddb9e38 100644 --- a/Userland/Libraries/LibCrypto/CMakeLists.txt +++ b/Userland/Libraries/LibCrypto/CMakeLists.txt @@ -33,4 +33,4 @@ set(SOURCES ) serenity_lib(LibCrypto crypto) -target_link_libraries(LibCrypto LibC LibCore) +target_link_libraries(LibCrypto LibCore) diff --git a/Userland/Libraries/LibDNS/CMakeLists.txt b/Userland/Libraries/LibDNS/CMakeLists.txt index 56af3efa5df..bd9318ce3f3 100644 --- a/Userland/Libraries/LibDNS/CMakeLists.txt +++ b/Userland/Libraries/LibDNS/CMakeLists.txt @@ -5,4 +5,4 @@ set(SOURCES ) serenity_lib(LibDNS dns) -target_link_libraries(LibDNS LibC LibIPC) +target_link_libraries(LibDNS LibIPC) diff --git a/Userland/Libraries/LibDebug/CMakeLists.txt b/Userland/Libraries/LibDebug/CMakeLists.txt index e2cc975fd89..b983fdfe2f4 100644 --- a/Userland/Libraries/LibDebug/CMakeLists.txt +++ b/Userland/Libraries/LibDebug/CMakeLists.txt @@ -14,4 +14,4 @@ set(SOURCES ) serenity_lib(LibDebug debug) -target_link_libraries(LibDebug LibC LibRegex) +target_link_libraries(LibDebug LibRegex) diff --git a/Userland/Libraries/LibDeviceTree/CMakeLists.txt b/Userland/Libraries/LibDeviceTree/CMakeLists.txt index f81192fc3c6..d643ca7a2ac 100644 --- a/Userland/Libraries/LibDeviceTree/CMakeLists.txt +++ b/Userland/Libraries/LibDeviceTree/CMakeLists.txt @@ -4,4 +4,4 @@ set(SOURCES ) serenity_lib(LibDeviceTree DeviceTree) -target_link_libraries(LibDeviceTree LibC LibCore) +target_link_libraries(LibDeviceTree LibCore) diff --git a/Userland/Libraries/LibDiff/CMakeLists.txt b/Userland/Libraries/LibDiff/CMakeLists.txt index 1276fc59cfc..46d97fe960e 100644 --- a/Userland/Libraries/LibDiff/CMakeLists.txt +++ b/Userland/Libraries/LibDiff/CMakeLists.txt @@ -6,4 +6,3 @@ set(SOURCES ) serenity_lib(LibDiff diff) -target_link_libraries(LibDiff LibC) diff --git a/Userland/Libraries/LibEDID/CMakeLists.txt b/Userland/Libraries/LibEDID/CMakeLists.txt index e50d8022d13..34d461047a0 100644 --- a/Userland/Libraries/LibEDID/CMakeLists.txt +++ b/Userland/Libraries/LibEDID/CMakeLists.txt @@ -8,5 +8,4 @@ set(SOURCES ) serenity_lib(LibEDID edid) -target_link_libraries(LibEDID LibC) target_compile_definitions(LibEDID PRIVATE ENABLE_PNP_IDS_DATA=$) diff --git a/Userland/Libraries/LibIPC/CMakeLists.txt b/Userland/Libraries/LibIPC/CMakeLists.txt index 9b23d388c7d..31c3b597e9b 100644 --- a/Userland/Libraries/LibIPC/CMakeLists.txt +++ b/Userland/Libraries/LibIPC/CMakeLists.txt @@ -5,4 +5,4 @@ set(SOURCES ) serenity_lib(LibIPC ipc) -target_link_libraries(LibIPC LibC LibCore) +target_link_libraries(LibIPC LibCore) diff --git a/Userland/Libraries/LibLine/CMakeLists.txt b/Userland/Libraries/LibLine/CMakeLists.txt index 41da2dee0ba..7e2ee63b059 100644 --- a/Userland/Libraries/LibLine/CMakeLists.txt +++ b/Userland/Libraries/LibLine/CMakeLists.txt @@ -7,4 +7,4 @@ set(SOURCES ) serenity_lib(LibLine line) -target_link_libraries(LibLine LibC LibCore) +target_link_libraries(LibLine LibCore) diff --git a/Userland/Libraries/LibMain/CMakeLists.txt b/Userland/Libraries/LibMain/CMakeLists.txt index 580f001c20d..5096b8afc15 100644 --- a/Userland/Libraries/LibMain/CMakeLists.txt +++ b/Userland/Libraries/LibMain/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib_static(LibMain main) -target_link_libraries(LibMain LibC) diff --git a/Userland/Libraries/LibPCIDB/CMakeLists.txt b/Userland/Libraries/LibPCIDB/CMakeLists.txt index 07dd0a2f08a..2517aee6e6d 100644 --- a/Userland/Libraries/LibPCIDB/CMakeLists.txt +++ b/Userland/Libraries/LibPCIDB/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib(LibPCIDB pcidb) -target_link_libraries(LibPCIDB LibC) diff --git a/Userland/Libraries/LibPDF/CMakeLists.txt b/Userland/Libraries/LibPDF/CMakeLists.txt index a9973e65995..47e50a169da 100644 --- a/Userland/Libraries/LibPDF/CMakeLists.txt +++ b/Userland/Libraries/LibPDF/CMakeLists.txt @@ -19,4 +19,4 @@ set(SOURCES ) serenity_lib(LibPDF pdf) -target_link_libraries(LibPDF LibC LibCore LibIPC LibGfx LibTextCodec LibCrypto) +target_link_libraries(LibPDF LibCore LibIPC LibGfx LibTextCodec LibCrypto) diff --git a/Userland/Libraries/LibRegex/CMakeLists.txt b/Userland/Libraries/LibRegex/CMakeLists.txt index 44c0fc8bbe4..f402757eacc 100644 --- a/Userland/Libraries/LibRegex/CMakeLists.txt +++ b/Userland/Libraries/LibRegex/CMakeLists.txt @@ -11,4 +11,4 @@ if(SERENITYOS) endif() serenity_lib(LibRegex regex) -target_link_libraries(LibRegex LibC LibCore LibUnicode) +target_link_libraries(LibRegex LibCore LibUnicode) diff --git a/Userland/Libraries/LibSyntax/CMakeLists.txt b/Userland/Libraries/LibSyntax/CMakeLists.txt index 0da883f4978..9064767f4fb 100644 --- a/Userland/Libraries/LibSyntax/CMakeLists.txt +++ b/Userland/Libraries/LibSyntax/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib(LibSyntax syntax) -target_link_libraries(LibSyntax LibC) diff --git a/Userland/Libraries/LibTest/CMakeLists.txt b/Userland/Libraries/LibTest/CMakeLists.txt index c5ba7222183..0800106eb40 100644 --- a/Userland/Libraries/LibTest/CMakeLists.txt +++ b/Userland/Libraries/LibTest/CMakeLists.txt @@ -6,7 +6,6 @@ set(SOURCES ) serenity_lib(LibTest test) -target_link_libraries(LibTest LibC) add_library(LibTestMain OBJECT TestMain.cpp) add_library(JavaScriptTestRunnerMain OBJECT JavaScriptTestRunnerMain.cpp) diff --git a/Userland/Libraries/LibTextCodec/CMakeLists.txt b/Userland/Libraries/LibTextCodec/CMakeLists.txt index f99a6caa032..3249ac9c25f 100644 --- a/Userland/Libraries/LibTextCodec/CMakeLists.txt +++ b/Userland/Libraries/LibTextCodec/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib(LibTextCodec textcodec) -target_link_libraries(LibTextCodec LibC) diff --git a/Userland/Libraries/LibThreading/CMakeLists.txt b/Userland/Libraries/LibThreading/CMakeLists.txt index a02d6f66148..f33d2eb923e 100644 --- a/Userland/Libraries/LibThreading/CMakeLists.txt +++ b/Userland/Libraries/LibThreading/CMakeLists.txt @@ -4,4 +4,4 @@ set(SOURCES ) serenity_lib(LibThreading threading) -target_link_libraries(LibThreading LibC LibCore) +target_link_libraries(LibThreading LibCore) diff --git a/Userland/Libraries/LibUSBDB/CMakeLists.txt b/Userland/Libraries/LibUSBDB/CMakeLists.txt index 5dd0ea9933d..b3b9de07dd0 100644 --- a/Userland/Libraries/LibUSBDB/CMakeLists.txt +++ b/Userland/Libraries/LibUSBDB/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib(LibUSBDB usbdb) -target_link_libraries(LibUSBDB LibC) diff --git a/Userland/Libraries/LibVT/CMakeLists.txt b/Userland/Libraries/LibVT/CMakeLists.txt index 394a66728b5..4de378ec8a5 100644 --- a/Userland/Libraries/LibVT/CMakeLists.txt +++ b/Userland/Libraries/LibVT/CMakeLists.txt @@ -11,4 +11,4 @@ set(GENERATED_SOURCES generate_state_machine(StateMachine.txt EscapeSequenceStateMachine.h) serenity_lib(LibVT vt) -target_link_libraries(LibVT LibC LibCore LibGUI LibGfx LibDesktop LibConfig) +target_link_libraries(LibVT LibCore LibGUI LibGfx LibDesktop LibConfig) diff --git a/Userland/Libraries/LibWasm/CMakeLists.txt b/Userland/Libraries/LibWasm/CMakeLists.txt index be48143aef0..3c5b12b062d 100644 --- a/Userland/Libraries/LibWasm/CMakeLists.txt +++ b/Userland/Libraries/LibWasm/CMakeLists.txt @@ -8,4 +8,4 @@ set(SOURCES ) serenity_lib(LibWasm wasm) -target_link_libraries(LibWasm LibC LibCore) +target_link_libraries(LibWasm LibCore) diff --git a/Userland/Libraries/LibX86/CMakeLists.txt b/Userland/Libraries/LibX86/CMakeLists.txt index 2f5dad92147..0e86d4357f9 100644 --- a/Userland/Libraries/LibX86/CMakeLists.txt +++ b/Userland/Libraries/LibX86/CMakeLists.txt @@ -3,4 +3,3 @@ set(SOURCES ) serenity_lib(LibX86 x86) -target_link_libraries(LibX86 LibC) diff --git a/Userland/Libraries/LibXML/CMakeLists.txt b/Userland/Libraries/LibXML/CMakeLists.txt index 8ab9576e317..a13ad641d65 100644 --- a/Userland/Libraries/LibXML/CMakeLists.txt +++ b/Userland/Libraries/LibXML/CMakeLists.txt @@ -4,4 +4,3 @@ set(SOURCES ) serenity_lib(LibXML xml) -target_link_libraries(LibXML LibC) diff --git a/Userland/Services/CrashDaemon/CMakeLists.txt b/Userland/Services/CrashDaemon/CMakeLists.txt index 639c501a2fe..341e42a90b3 100644 --- a/Userland/Services/CrashDaemon/CMakeLists.txt +++ b/Userland/Services/CrashDaemon/CMakeLists.txt @@ -9,4 +9,4 @@ set(SOURCES ) serenity_bin(CrashDaemon) -target_link_libraries(CrashDaemon LibC LibCompress LibCore LibCoredump LibMain) +target_link_libraries(CrashDaemon LibCompress LibCore LibCoredump LibMain) diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 6f04ebb49df..26bed7db37e 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -41,12 +41,14 @@ foreach(CMD_SRC ${CMD_SOURCES}) if (CMD_NAME IN_LIST SPECIAL_TARGETS) add_executable(${TARGET_NAME} ${CMD_SRC}) target_link_libraries(${TARGET_NAME} LibCore LibMain) + serenity_set_implicit_links(${TARGET_NAME}) install(TARGETS ${TARGET_NAME} RUNTIME DESTINATION bin) install(CODE "file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME}-bin ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME})") else() add_executable(${CMD_NAME} ${CMD_SRC}) set_target_properties(${CMD_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE) target_link_libraries(${CMD_NAME} LibCore) + serenity_set_implicit_links(${TARGET_NAME}) install(TARGETS ${CMD_NAME} RUNTIME DESTINATION bin OPTIONAL) endif() endforeach()