2021-01-12 13:57:58 +03:00
|
|
|
file(GLOB CMD_SOURCES CONFIGURE_DEPENDS "*.cpp")
|
2021-06-15 16:16:32 +03:00
|
|
|
list(APPEND SPECIAL_TARGETS test install)
|
|
|
|
list(APPEND REQUIRED_TARGETS
|
2021-09-16 05:28:04 +03:00
|
|
|
arp base64 basename cat chmod chown clear comm cp cut date dd df diff dirname dmesg du echo env expr false fgrep
|
2021-10-21 23:28:38 +03:00
|
|
|
file find grep groups head host hostname id ifconfig kill killall ln logout ls mkdir mount mv nproc
|
2021-07-04 12:49:10 +03:00
|
|
|
pgrep pidof ping pmap ps readlink realpath reboot rm rmdir seq shutdown sleep sort stat stty su tail test
|
2021-07-06 07:37:16 +03:00
|
|
|
touch tr true umount uname uniq uptime w wc which whoami xargs yes less
|
2021-06-15 16:16:32 +03:00
|
|
|
)
|
|
|
|
list(APPEND RECOMMENDED_TARGETS
|
2021-08-19 01:22:28 +03:00
|
|
|
adjtime aplay asctl bt checksum chres cksum copy fortune gunzip gzip init keymap lsirq lsof lspci man mknod mktemp
|
2021-07-06 09:30:34 +03:00
|
|
|
modload modunload nc netstat notify ntpquery open pape passwd pls printf pro shot tar tt unzip zip
|
2021-06-15 16:16:32 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
# FIXME: Support specifying component dependencies for utilities (e.g. WebSocket for telws)
|
2021-01-12 13:57:58 +03:00
|
|
|
|
|
|
|
foreach(CMD_SRC ${CMD_SOURCES})
|
|
|
|
get_filename_component(CMD_NAME ${CMD_SRC} NAME_WE)
|
|
|
|
if (CMD_NAME IN_LIST SPECIAL_TARGETS)
|
2021-06-15 16:16:32 +03:00
|
|
|
set(TARGET_NAME "${CMD_NAME}-bin")
|
|
|
|
else()
|
|
|
|
set(TARGET_NAME "${CMD_NAME}")
|
|
|
|
endif()
|
|
|
|
if(CMD_NAME IN_LIST REQUIRED_TARGETS)
|
|
|
|
serenity_component(
|
|
|
|
${CMD_NAME}
|
|
|
|
REQUIRED
|
|
|
|
TARGETS ${TARGET_NAME}
|
|
|
|
)
|
|
|
|
elseif(CMD_NAME IN_LIST RECOMMENDED_TARGETS)
|
|
|
|
serenity_component(
|
|
|
|
${CMD_NAME}
|
|
|
|
RECOMMENDED
|
|
|
|
TARGETS ${TARGET_NAME}
|
|
|
|
)
|
|
|
|
else()
|
|
|
|
serenity_component(
|
|
|
|
${CMD_NAME}
|
|
|
|
TARGETS ${TARGET_NAME}
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
if (CMD_NAME IN_LIST SPECIAL_TARGETS)
|
|
|
|
add_executable(${TARGET_NAME} ${CMD_SRC})
|
|
|
|
target_link_libraries(${TARGET_NAME} LibCore)
|
|
|
|
install(TARGETS ${TARGET_NAME} RUNTIME DESTINATION bin)
|
2021-01-22 09:31:06 +03:00
|
|
|
install(CODE "file(RENAME ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME}-bin ${CMAKE_INSTALL_PREFIX}/bin/${CMD_NAME})")
|
|
|
|
else()
|
2021-01-12 13:57:58 +03:00
|
|
|
add_executable(${CMD_NAME} ${CMD_SRC})
|
2021-06-15 16:16:32 +03:00
|
|
|
set_target_properties(${CMD_NAME} PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(${CMD_NAME} LibCore)
|
2021-06-15 16:16:32 +03:00
|
|
|
install(TARGETS ${CMD_NAME} RUNTIME DESTINATION bin OPTIONAL)
|
2021-01-12 13:57:58 +03:00
|
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
target_link_libraries(aplay LibAudio)
|
2021-08-19 01:22:28 +03:00
|
|
|
target_link_libraries(asctl LibAudio)
|
2021-05-22 18:15:18 +03:00
|
|
|
target_link_libraries(bt LibSymbolication)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(checksum LibCrypto)
|
2021-01-15 22:12:34 +03:00
|
|
|
target_link_libraries(chres LibGUI)
|
2021-04-24 12:46:30 +03:00
|
|
|
target_link_libraries(cksum LibCrypto)
|
2021-08-26 11:24:14 +03:00
|
|
|
target_link_libraries(config LibConfig)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(copy LibGUI)
|
2021-09-16 05:28:04 +03:00
|
|
|
target_link_libraries(diff LibDiff)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(disasm LibX86)
|
|
|
|
target_link_libraries(expr LibRegex)
|
2021-10-18 04:10:47 +03:00
|
|
|
target_link_libraries(fdtdump LibDeviceTree)
|
2021-05-08 09:19:44 +03:00
|
|
|
target_link_libraries(file LibGfx LibIPC LibCompress)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(functrace LibDebug LibX86)
|
|
|
|
target_link_libraries(gml-format LibGUI)
|
2021-05-08 12:07:11 +03:00
|
|
|
target_link_libraries(grep LibRegex)
|
|
|
|
target_link_libraries(gunzip LibCompress)
|
|
|
|
target_link_libraries(gzip LibCompress)
|
2021-11-22 18:03:06 +03:00
|
|
|
target_link_libraries(id LibMain)
|
2021-11-22 22:25:30 +03:00
|
|
|
target_link_libraries(js LibJS LibLine LibMain)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(keymap LibKeyboard)
|
|
|
|
target_link_libraries(lspci LibPCIDB)
|
2021-06-09 17:24:04 +03:00
|
|
|
target_link_libraries(lsusb LibUSBDB)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(man LibMarkdown)
|
2021-09-10 22:37:42 +03:00
|
|
|
target_link_libraries(markdown-check LibMarkdown)
|
2021-06-05 23:12:06 +03:00
|
|
|
target_link_libraries(matroska LibVideo)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(md LibMarkdown)
|
|
|
|
target_link_libraries(notify LibGUI)
|
2021-11-22 21:43:26 +03:00
|
|
|
target_link_libraries(nproc LibMain)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(open LibDesktop)
|
|
|
|
target_link_libraries(pape LibGUI)
|
|
|
|
target_link_libraries(passwd LibCrypt)
|
|
|
|
target_link_libraries(paste LibGUI)
|
2021-07-04 12:49:10 +03:00
|
|
|
target_link_libraries(pgrep LibRegex)
|
2021-04-14 05:23:55 +03:00
|
|
|
target_link_libraries(pls LibCrypt)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(pro LibProtocol)
|
2021-06-27 23:22:25 +03:00
|
|
|
target_link_libraries(run-tests LibRegex)
|
2021-03-26 21:55:40 +03:00
|
|
|
target_link_libraries(shot LibGUI)
|
2021-06-29 04:20:15 +03:00
|
|
|
target_link_libraries(sql LibLine LibSQL LibIPC)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(su LibCrypt)
|
2021-03-18 17:22:05 +03:00
|
|
|
target_link_libraries(tar LibArchive LibCompress)
|
2021-04-24 02:47:40 +03:00
|
|
|
target_link_libraries(telws LibProtocol LibLine)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(test-crypto LibCrypto LibTLS LibLine)
|
2021-02-20 23:59:23 +03:00
|
|
|
target_link_libraries(test-fuzz LibCore LibGemini LibGfx LibHTTP LibIPC LibJS LibMarkdown LibShell)
|
2021-06-11 10:12:23 +03:00
|
|
|
target_link_libraries(test-imap LibIMAP)
|
2021-05-22 19:47:42 +03:00
|
|
|
target_link_libraries(test-pthread LibThreading)
|
2021-01-12 13:57:58 +03:00
|
|
|
target_link_libraries(tt LibPthread)
|
2021-03-18 23:39:23 +03:00
|
|
|
target_link_libraries(unzip LibArchive LibCompress)
|
2021-05-08 12:07:11 +03:00
|
|
|
target_link_libraries(zip LibArchive LibCompress LibCrypto)
|
2021-08-20 15:05:11 +03:00
|
|
|
target_link_libraries(cpp-lexer LibCpp)
|
2021-05-17 11:10:18 +03:00
|
|
|
target_link_libraries(cpp-parser LibCpp LibGUI)
|
2021-08-08 21:05:34 +03:00
|
|
|
target_link_libraries(cpp-preprocessor LibCpp LibGUI)
|
2021-11-22 21:40:27 +03:00
|
|
|
target_link_libraries(w LibMain)
|
2021-05-21 19:40:44 +03:00
|
|
|
target_link_libraries(wasm LibWasm LibLine)
|
2021-07-07 23:54:58 +03:00
|
|
|
target_link_libraries(wsctl LibGUI)
|