Browse Source

cmake: Add support for custom binary and cfg name

Xenofon Karamanos 9 months ago
parent
commit
abb0448c11
3 changed files with 19 additions and 13 deletions
  1. 8 2
      CMakeLists.txt
  2. 9 6
      src/CMakeLists.txt
  3. 2 5
      utils/kamctl/CMakeLists.txt

+ 8 - 2
CMakeLists.txt

@@ -27,9 +27,15 @@ set(CMAKE_C_STANDARD_REQUIRED True)
 # Main project name
 # Main project name
 # -----------------------
 # -----------------------
 # main binary name
 # main binary name
-set(MAIN_NAME "kamailio")
+set(MAIN_NAME
+    "kamailio"
+    CACHE STRING "Main binary name"
+)
 # use kamailio config
 # use kamailio config
-set(CFG_NAME "kamailio")
+set(CFG_NAME
+    "kamailio"
+    CACHE STRING "Config name"
+)
 
 
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
 
 

+ 9 - 6
src/CMakeLists.txt

@@ -100,7 +100,9 @@ add_dependencies(kamailio GenerateParser)
 
 
 # Enable ENABLE_EXPORTS property so modules can link from symbols found in
 # Enable ENABLE_EXPORTS property so modules can link from symbols found in
 # main.c and core/*.
 # main.c and core/*.
-set_target_properties(kamailio PROPERTIES ENABLE_EXPORTS TRUE)
+set_target_properties(
+  kamailio PROPERTIES ENABLE_EXPORTS TRUE OUTPUT_NAME ${MAIN_NAME}
+)
 
 
 # Add the MODS_DIR definition required by main.c ---
 # Add the MODS_DIR definition required by main.c ---
 target_compile_definitions(
 target_compile_definitions(
@@ -117,25 +119,26 @@ install(
   COMPONENT kamailio-core
   COMPONENT kamailio-core
 )
 )
 
 
-# Install the configuration file (kamailio.cfg) using a CODE block to check
+# Install the configuration file (kamailio.cfg) ${CFG_NAME} using a CODE block to check
 # existence at install time instead of configure time
 # existence at install time instead of configure time
 # If(EXISTS ..) require full path
 # If(EXISTS ..) require full path
 install(
 install(
   CODE "
   CODE "
-    if(EXISTS \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}/kamailio.cfg\")
-        message(STATUS \"kamailio.cfg already exists in  \${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}/kamailio.cfg. Installing as kamailio.cfg.sample\")
+    if(EXISTS \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}/${CFG_NAME}.cfg\")
+        message(STATUS \"${CFG_NAME} already exists in  \${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}/${CFG_NAME}. Installing as ${CFG_NAME}.sample\")
       file(INSTALL \"${CMAKE_SOURCE_DIR}/etc/kamailio.cfg\"
       file(INSTALL \"${CMAKE_SOURCE_DIR}/etc/kamailio.cfg\"
         DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}\"
         DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}\"
-        RENAME \"kamailio.cfg.sample\"
+        RENAME \"${CFG_NAME}.cfg.sample\"
         PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
         PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
       )
       )
     else()
     else()
         file(INSTALL \"${CMAKE_SOURCE_DIR}/etc/kamailio.cfg\"
         file(INSTALL \"${CMAKE_SOURCE_DIR}/etc/kamailio.cfg\"
           DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}\"
           DESTINATION \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}\"
           PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
           PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+          RENAME \"${CFG_NAME}.cfg\"
         )
         )
     endif()
     endif()
 
 
 "
 "
-  COMPONENT kamailio-cfg
+  COMPONENT kamailio-utils-cfg
 )
 )

+ 2 - 5
utils/kamctl/CMakeLists.txt

@@ -6,9 +6,7 @@ project(kamailio_utils)
 # "${basedir}") endif()
 # "${basedir}") endif()
 
 
 set(KAMCTL_TMP_DIR "${CMAKE_BINARY_DIR}/kamctltmp")
 set(KAMCTL_TMP_DIR "${CMAKE_BINARY_DIR}/kamctltmp")
-message(
-  STATUS "kamctltmpdir: ${KAMCTL_TMP_DIR} BINARY_DIR: ${CMAKE_BINARY_DIR}"
-)
+message(STATUS "Temporary kamctl.{db} files in : ${KAMCTL_TMP_DIR}")
 
 
 file(MAKE_DIRECTORY ${KAMCTL_TMP_DIR})
 file(MAKE_DIRECTORY ${KAMCTL_TMP_DIR})
 
 
@@ -17,9 +15,8 @@ set(BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SBINDIR}")
 set(LIB_DIR
 set(LIB_DIR
     "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl"
     "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl"
 )
 )
-set(CFG_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/kamailio")
+set(CFG_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_SYSCONFDIR}/${MAIN_NAME}")
 set(SHARE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}")
 set(SHARE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}")
-message(STATUS "BIN_DIR: ${BIN_DIR} LIB_DIR: ${LIB_DIR} CFG_DIR: ${CFG_DIR}")
 
 
 # Install kamctl
 # Install kamctl
 add_custom_command(
 add_custom_command(