浏览代码

cmake: Add kamcmd util

Xenofon Karamanos 8 月之前
父节点
当前提交
37bb0d05f5
共有 1 个文件被更改,包括 40 次插入0 次删除
  1. 40 0
      utils/kamcmd/CMakeLists.txt

+ 40 - 0
utils/kamcmd/CMakeLists.txt

@@ -0,0 +1,40 @@
+set(KAMCMD_RELEASE 1.5)
+set(KAMCMD_UTIL_SRC_NAME "kamcmd")
+
+set(KAMCMD_CUSTOM_NAME
+    ""
+    CACHE STRING "Custom name for the kamcmd util")
+
+if(NOT KAMCMD_CUSTOM_NAME)
+  set(NAME "kamcmd") # Hardcoded name if empty
+elseif()
+  set(NAME "${KAMCMD_CUSTOM_NAME}")
+endif()
+
+add_executable(${NAME})
+
+# detect libreadline
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(READLINE REQUIRED IMPORTED_TARGET readline)
+add_library(readline::readline ALIAS PkgConfig::READLINE)
+
+if(READLINE_FOUND)
+  target_compile_definitions(${NAME} PRIVATE USE_READLINE)
+endif()
+
+include(${CMAKE_SOURCE_DIR}/cmake/utils.cmake)
+
+target_sources(${NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/kamcmd.c
+                               ${CMAKE_CURRENT_SOURCE_DIR}/parse_listen_id.c)
+# target_include_directories(${NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
+# target_link_libraries(${NAME} PRIVATE common)
+target_link_libraries(${NAME} PRIVATE readline::readline resolv)
+target_link_libraries(${NAME} PRIVATE common_utils)
+
+target_compile_definitions(
+  ${NAME}
+  PRIVATE NAME="${NAME}" SRNAME="${MAIN_NAME}" VERSION="${KAMCMD_RELEASE}"
+          RUN_DIR="/${CMAKE_INSTALL_LOCALSTATEDIR}/run/${MAIN_NAME}"
+          __OS_${OS_LOWER})
+
+install(TARGETS ${NAME} DESTINATION ${CMAKE_INSTALL_SBINDIR})