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()