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 b35493ee94..1a524287e5 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 3ec015b2c3..a91b4e0979 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 64924b06ba..7939865761 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 140a20afe5..0f8b6ffddb 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 875cbcd9a9..621423ac13 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 5ee209de7f..337e45e42c 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 06e7bae7a8..38ca0bdcdb 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 07c6a5aa47..a5e8a23dd5 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 1169c0be17..802a42b91b 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 564f76e6ac..fdabd5ad49 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 b5151a2121..3c5525e29d 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 d13ab18ef3..18095ffa61 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 0b5aa8db7d..831613f955 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 c1ae774dd6..16858a3e4f 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 87aee2093f..65b91ac238 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 0def784740..76eb50b683 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 21fa07adb5..7ee5ddb9e3 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 56af3efa5d..bd9318ce3f 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 e2cc975fd8..b983fdfe2f 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 f81192fc3c..d643ca7a2a 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 1276fc59cf..46d97fe960 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 e50d8022d1..34d461047a 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 9b23d388c7..31c3b597e9 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 41da2dee0b..7e2ee63b05 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 580f001c20..5096b8afc1 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 07dd0a2f08..2517aee6e6 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 a9973e6599..47e50a169d 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 44c0fc8bbe..f402757eac 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 0da883f497..9064767f4f 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 c5ba722218..0800106eb4 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 f99a6caa03..3249ac9c25 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 a02d6f6614..f33d2eb923 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 5dd0ea9933..b3b9de07dd 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 394a66728b..4de378ec8a 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 be48143aef..3c5b12b062 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 2f5dad9214..0e86d4357f 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 8ab9576e31..a13ad641d6 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 639c501a2f..341e42a90b 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 6f04ebb49d..26bed7db37 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()