Utilities: Clean up CMakeLists.txt

We previously had a lot of duplication (and mismatched settings) around
whether a target was "special" or not, although the only special thing
about it was that its name was a reserved keyword and therefore had to
be renamed later.

Fix that by mostly consolidating the different configuration paths and
then purging all duplicated linking libraries from the bottom of the
file.
This commit is contained in:
Tim Schumacher 2022-10-25 21:15:07 +02:00 committed by Linus Groh
parent ce2f1b845f
commit 6490529ef7

View file

@ -38,18 +38,15 @@ foreach(CMD_SRC ${CMD_SOURCES})
TARGETS ${TARGET_NAME}
)
endif()
add_executable(${TARGET_NAME} ${CMD_SRC})
target_link_libraries(${TARGET_NAME} PRIVATE LibCore LibMain)
serenity_set_implicit_links(${TARGET_NAME})
set_target_properties(${TARGET_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE)
install(TARGETS ${TARGET_NAME} RUNTIME DESTINATION bin OPTIONAL)
if (CMD_NAME IN_LIST SPECIAL_TARGETS)
add_executable(${TARGET_NAME} ${CMD_SRC})
target_link_libraries(${TARGET_NAME} PRIVATE 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} PRIVATE LibCore)
serenity_set_implicit_links(${TARGET_NAME})
install(TARGETS ${CMD_NAME} RUNTIME DESTINATION bin OPTIONAL)
endif()
endforeach()
@ -70,188 +67,61 @@ endif()
install(CODE "file(CREATE_LINK grep ${CMAKE_INSTALL_PREFIX}/bin/egrep SYMBOLIC)")
install(CODE "file(CREATE_LINK grep ${CMAKE_INSTALL_PREFIX}/bin/rgrep SYMBOLIC)")
target_link_libraries(abench PRIVATE LibAudio LibMain LibCore)
target_link_libraries(adjtime PRIVATE LibMain)
target_link_libraries(allocate PRIVATE LibMain)
target_link_libraries(aplay PRIVATE LibAudio LibIPC LibMain)
target_link_libraries(arp PRIVATE LibMain)
target_link_libraries(asctl PRIVATE LibAudio LibIPC LibMain)
target_link_libraries(base64 PRIVATE LibMain)
target_link_libraries(basename PRIVATE LibMain)
target_link_libraries(beep PRIVATE LibMain)
target_link_libraries(blockdev PRIVATE LibMain)
target_link_libraries(bt PRIVATE LibSymbolication LibMain)
target_link_libraries(cal PRIVATE LibMain)
target_link_libraries(cat PRIVATE LibMain)
target_link_libraries(checksum PRIVATE LibCrypto LibMain)
target_link_libraries(chgrp PRIVATE LibMain)
target_link_libraries(chmod PRIVATE LibMain)
target_link_libraries(chown PRIVATE LibMain)
target_link_libraries(chres PRIVATE LibGUI LibIPC LibMain)
target_link_libraries(cksum PRIVATE LibCrypto LibMain)
target_link_libraries(clear PRIVATE LibMain)
target_link_libraries(cmp PRIVATE LibMain)
target_link_libraries(comm PRIVATE LibMain)
target_link_libraries(config PRIVATE LibConfig LibIPC LibMain)
target_link_libraries(copy PRIVATE LibGUI LibMain)
target_link_libraries(cp PRIVATE LibMain)
target_link_libraries(cpp-lexer PRIVATE LibCpp LibMain)
target_link_libraries(cpp-parser PRIVATE LibCpp LibMain)
target_link_libraries(cpp-preprocessor PRIVATE LibCpp LibMain)
target_link_libraries(cut PRIVATE LibMain)
target_link_libraries(date PRIVATE LibMain)
target_link_libraries(dd PRIVATE LibMain)
target_link_libraries(df PRIVATE LibMain)
target_link_libraries(diff PRIVATE LibDiff LibMain)
target_link_libraries(dirname PRIVATE LibMain)
target_link_libraries(disasm PRIVATE LibX86 LibMain)
target_link_libraries(disk_benchmark PRIVATE LibMain)
target_link_libraries(dmesg PRIVATE LibMain)
target_link_libraries(du PRIVATE LibMain)
target_link_libraries(echo PRIVATE LibMain)
target_link_libraries(env PRIVATE LibMain)
target_link_libraries(errno PRIVATE LibMain)
target_link_libraries(expr PRIVATE LibRegex LibMain)
target_link_libraries(false PRIVATE LibMain)
target_link_libraries(fdtdump PRIVATE LibDeviceTree LibMain)
target_link_libraries(fgrep PRIVATE LibMain)
target_link_libraries(file PRIVATE LibGfx LibIPC LibCompress LibMain)
target_link_libraries(find PRIVATE LibMain)
target_link_libraries(flock PRIVATE LibMain)
target_link_libraries(fortune PRIVATE LibMain)
target_link_libraries(functrace PRIVATE LibDebug LibX86 LibMain)
target_link_libraries(gml-format PRIVATE LibGUI LibMain)
target_link_libraries(grep PRIVATE LibRegex LibMain)
target_link_libraries(gron PRIVATE LibMain)
target_link_libraries(groupadd PRIVATE LibMain)
target_link_libraries(groupdel PRIVATE LibMain)
target_link_libraries(groups PRIVATE LibMain)
target_link_libraries(gunzip PRIVATE LibCompress LibMain)
target_link_libraries(gzip PRIVATE LibCompress LibMain)
target_link_libraries(head PRIVATE LibMain)
target_link_libraries(headless-browser PRIVATE LibCore LibCrypto LibGemini LibGfx LibHTTP LibTLS LibWeb LibWebSocket LibMain)
target_link_libraries(hexdump PRIVATE LibMain)
target_link_libraries(host PRIVATE LibMain)
target_link_libraries(hostname PRIVATE LibMain)
target_link_libraries(id PRIVATE LibMain)
target_link_libraries(ifconfig PRIVATE LibMain)
target_link_libraries(ini PRIVATE LibMain)
target_link_libraries(install-bin PRIVATE LibMain)
target_link_libraries(js PRIVATE LibCrypto LibJS LibLine LibLocale LibMain LibTextCodec)
target_link_libraries(abench PRIVATE LibAudio)
target_link_libraries(aplay PRIVATE LibAudio LibIPC)
target_link_libraries(asctl PRIVATE LibAudio LibIPC)
target_link_libraries(bt PRIVATE LibSymbolication)
target_link_libraries(checksum PRIVATE LibCrypto)
target_link_libraries(chres PRIVATE LibGUI LibIPC)
target_link_libraries(cksum PRIVATE LibCrypto)
target_link_libraries(config PRIVATE LibConfig LibIPC)
target_link_libraries(copy PRIVATE LibGUI)
target_link_libraries(cpp-lexer PRIVATE LibCpp)
target_link_libraries(cpp-parser PRIVATE LibCpp)
target_link_libraries(cpp-preprocessor PRIVATE LibCpp)
target_link_libraries(diff PRIVATE LibDiff)
target_link_libraries(disasm PRIVATE LibX86)
target_link_libraries(expr PRIVATE LibRegex)
target_link_libraries(fdtdump PRIVATE LibDeviceTree)
target_link_libraries(file PRIVATE LibGfx LibIPC LibCompress)
target_link_libraries(functrace PRIVATE LibDebug LibX86)
target_link_libraries(gml-format PRIVATE LibGUI)
target_link_libraries(grep PRIVATE LibRegex)
target_link_libraries(gunzip PRIVATE LibCompress)
target_link_libraries(gzip PRIVATE LibCompress)
target_link_libraries(headless-browser PRIVATE LibCrypto LibGemini LibGfx LibHTTP LibTLS LibWeb LibWebSocket)
target_link_libraries(js PRIVATE LibCrypto LibJS LibLine LibLocale LibTextCodec)
link_with_locale_data(js)
target_link_libraries(json PRIVATE LibMain)
target_link_libraries(kcov-example PRIVATE LibMain)
target_link_libraries(keymap PRIVATE LibKeyboard LibMain)
target_link_libraries(kill PRIVATE LibMain)
target_link_libraries(killall PRIVATE LibCore LibMain)
target_link_libraries(less PRIVATE LibMain)
target_link_libraries(ln PRIVATE LibMain)
target_link_libraries(logout PRIVATE LibMain)
target_link_libraries(ls PRIVATE LibMain)
target_link_libraries(lscpu PRIVATE LibMain)
target_link_libraries(lsirq PRIVATE LibMain)
target_link_libraries(lsof PRIVATE LibMain)
target_link_libraries(lsblk PRIVATE LibMain)
target_link_libraries(lspci PRIVATE LibPCIDB LibMain)
target_link_libraries(lsusb PRIVATE LibUSBDB LibMain)
target_link_libraries(man PRIVATE LibMarkdown LibMain)
target_link_libraries(markdown-check PRIVATE LibMarkdown LibMain)
target_link_libraries(matroska PRIVATE LibMain LibVideo)
target_link_libraries(md PRIVATE LibMarkdown LibMain)
target_link_libraries(mkdir PRIVATE LibMain)
target_link_libraries(mkfifo PRIVATE LibMain)
target_link_libraries(mknod PRIVATE LibMain)
target_link_libraries(mktemp PRIVATE LibMain)
target_link_libraries(mv PRIVATE LibMain)
target_link_libraries(mount PRIVATE LibMain)
target_link_libraries(nc PRIVATE LibMain)
target_link_libraries(netstat PRIVATE LibMain)
target_link_libraries(nl PRIVATE LibMain)
target_link_libraries(nologin PRIVATE LibMain)
target_link_libraries(notify PRIVATE LibGfx LibGUI LibMain)
target_link_libraries(nproc PRIVATE LibMain)
target_link_libraries(ntpquery PRIVATE LibMain)
target_link_libraries(open PRIVATE LibDesktop LibMain)
target_link_libraries(passwd PRIVATE LibCrypt LibMain)
target_link_libraries(paste PRIVATE LibGUI LibCore LibMain)
target_link_libraries(pathchk PRIVATE LibMain)
target_link_libraries(pgrep PRIVATE LibRegex LibMain)
target_link_libraries(pidof PRIVATE LibMain)
target_link_libraries(ping PRIVATE LibMain)
target_link_libraries(pkill PRIVATE LibRegex LibMain)
target_link_libraries(pledge PRIVATE LibMain)
target_link_libraries(pls PRIVATE LibCrypt LibMain)
target_link_libraries(pmap PRIVATE LibMain)
target_link_libraries(pmemdump PRIVATE LibMain)
target_link_libraries(printf PRIVATE LibMain)
target_link_libraries(pro PRIVATE LibMain LibProtocol)
target_link_libraries(profile PRIVATE LibMain)
target_link_libraries(ps PRIVATE LibMain)
target_link_libraries(purge PRIVATE LibMain)
target_link_libraries(pwd PRIVATE LibMain)
target_link_libraries(readelf PRIVATE LibMain)
target_link_libraries(readlink PRIVATE LibMain)
target_link_libraries(realpath PRIVATE LibMain)
target_link_libraries(reboot PRIVATE LibMain)
target_link_libraries(rev PRIVATE LibMain)
target_link_libraries(rm PRIVATE LibMain)
target_link_libraries(rmdir PRIVATE LibMain)
target_link_libraries(route PRIVATE LibMain)
target_link_libraries(run-tests PRIVATE LibRegex LibCoredump LibDebug LibMain)
target_link_libraries(seq PRIVATE LibMain)
target_link_libraries(shot PRIVATE LibGfx LibGUI LibIPC LibMain)
target_link_libraries(shuf PRIVATE LibMain)
target_link_libraries(shutdown PRIVATE LibMain)
target_link_libraries(sleep PRIVATE LibMain)
target_link_libraries(sort PRIVATE LibMain)
target_link_libraries(sql PRIVATE LibLine LibMain LibSQL LibIPC)
target_link_libraries(stat PRIVATE LibMain)
target_link_libraries(strace PRIVATE LibMain)
target_link_libraries(stty PRIVATE LibMain)
target_link_libraries(su PRIVATE LibCrypt LibMain)
target_link_libraries(sync PRIVATE LibMain)
target_link_libraries(syscall PRIVATE LibMain LibSystem)
target_link_libraries(sysctl PRIVATE LibMain)
target_link_libraries(tac PRIVATE LibMain)
target_link_libraries(tail PRIVATE LibMain)
target_link_libraries(tar PRIVATE LibMain LibArchive LibCompress)
target_link_libraries(tee PRIVATE LibMain)
target_link_libraries(telws PRIVATE LibProtocol LibLine LibMain)
target_link_libraries(test-bindtodevice PRIVATE LibMain)
target_link_libraries(test-fuzz PRIVATE LibCore LibGemini LibGfx LibHTTP LibIPC LibJS LibMarkdown LibRegex LibShell LibMain)
target_link_libraries(test-imap PRIVATE LibIMAP LibMain)
target_link_libraries(test-pthread PRIVATE LibThreading LibMain)
target_link_libraries(test-unveil PRIVATE LibMain)
target_link_libraries(test_env PRIVATE LibMain)
target_link_libraries(timezone PRIVATE LibMain)
target_link_libraries(top PRIVATE LibMain)
target_link_libraries(touch PRIVATE LibMain)
target_link_libraries(tr PRIVATE LibMain)
target_link_libraries(traceroute PRIVATE LibMain)
target_link_libraries(tree PRIVATE LibMain)
target_link_libraries(true PRIVATE LibMain)
target_link_libraries(truncate PRIVATE LibMain)
target_link_libraries(tt PRIVATE LibMain)
target_link_libraries(tty PRIVATE LibMain)
target_link_libraries(umount PRIVATE LibMain)
target_link_libraries(uname PRIVATE LibMain)
target_link_libraries(uniq PRIVATE LibMain)
target_link_libraries(unzip PRIVATE LibArchive LibCompress LibMain)
target_link_libraries(update-cpp-test-results PRIVATE LibCpp LibCore LibMain)
target_link_libraries(uptime PRIVATE LibMain)
target_link_libraries(useradd PRIVATE LibCrypt LibMain)
target_link_libraries(userdel PRIVATE LibMain)
target_link_libraries(usermod PRIVATE LibMain)
target_link_libraries(utmpupdate PRIVATE LibMain)
target_link_libraries(w PRIVATE LibMain)
target_link_libraries(wallpaper PRIVATE LibGfx LibGUI LibMain)
target_link_libraries(wasm PRIVATE LibMain LibWasm LibLine)
target_link_libraries(watch PRIVATE LibMain)
target_link_libraries(wc PRIVATE LibMain)
target_link_libraries(which PRIVATE LibMain)
target_link_libraries(whoami PRIVATE LibMain)
target_link_libraries(wsctl PRIVATE LibGUI LibIPC LibMain)
target_link_libraries(xargs PRIVATE LibMain)
target_link_libraries(xml PRIVATE LibMain LibXML)
target_link_libraries(yes PRIVATE LibMain)
target_link_libraries(zip PRIVATE LibArchive LibCompress LibCrypto LibMain)
target_link_libraries(keymap PRIVATE LibKeyboard)
target_link_libraries(lspci PRIVATE LibPCIDB)
target_link_libraries(lsusb PRIVATE LibUSBDB)
target_link_libraries(man PRIVATE LibMarkdown)
target_link_libraries(markdown-check PRIVATE LibMarkdown)
target_link_libraries(matroska PRIVATE LibVideo)
target_link_libraries(md PRIVATE LibMarkdown)
target_link_libraries(notify PRIVATE LibGfx LibGUI)
target_link_libraries(open PRIVATE LibDesktop)
target_link_libraries(passwd PRIVATE LibCrypt)
target_link_libraries(paste PRIVATE LibGUI)
target_link_libraries(pgrep PRIVATE LibRegex)
target_link_libraries(pkill PRIVATE LibRegex)
target_link_libraries(pls PRIVATE LibCrypt)
target_link_libraries(pro PRIVATE LibProtocol)
target_link_libraries(run-tests PRIVATE LibRegex LibCoredump LibDebug)
target_link_libraries(shot PRIVATE LibGfx LibGUI LibIPC)
target_link_libraries(sql PRIVATE LibLine LibSQL LibIPC)
target_link_libraries(su PRIVATE LibCrypt)
target_link_libraries(syscall PRIVATE LibSystem)
target_link_libraries(tar PRIVATE LibArchive LibCompress)
target_link_libraries(telws PRIVATE LibProtocol LibLine)
target_link_libraries(test-fuzz PRIVATE LibGemini LibGfx LibHTTP LibIPC LibJS LibMarkdown LibRegex LibShell)
target_link_libraries(test-imap PRIVATE LibIMAP)
target_link_libraries(test-pthread PRIVATE LibThreading)
target_link_libraries(unzip PRIVATE LibArchive LibCompress)
target_link_libraries(update-cpp-test-results PRIVATE LibCpp)
target_link_libraries(useradd PRIVATE LibCrypt)
target_link_libraries(wallpaper PRIVATE LibGfx LibGUI)
target_link_libraries(wasm PRIVATE LibWasm LibLine)
target_link_libraries(wsctl PRIVATE LibGUI LibIPC)
target_link_libraries(xml PRIVATE LibXML)
target_link_libraries(zip PRIVATE LibArchive LibCompress LibCrypto)