Răsfoiți Sursa

cmake: Use components to install groups

- kamailio-core for anything related to core
- group_name as defined in groups.cmake
- Preferably use K-variants instead of DEFAULT,STANDARD
Xenofon Karamanos 7 luni în urmă
părinte
comite
f7b31f7914

+ 3 - 3
cmake/modules-docs.cmake

@@ -77,7 +77,7 @@ set(DOCS_LYNX_FLAGS
     CACHE STRING "Lynx readme generator flags")
     CACHE STRING "Lynx readme generator flags")
 
 
 # Function to add a module docs entry
 # Function to add a module docs entry
-function(docs_add_module module_name)
+function(docs_add_module group_name module_name)
   # message(STATUS "Adding documentation for module ${MODULE_NAME}")
   # message(STATUS "Adding documentation for module ${MODULE_NAME}")
   set(module_path "${MODULES_DIR}/${module_name}")
   set(module_path "${MODULES_DIR}/${module_name}")
   set(module_doc_path "${module_path}/doc")
   set(module_doc_path "${module_path}/doc")
@@ -174,12 +174,12 @@ function(docs_add_module module_name)
       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/README
       RENAME README.${module_name}
       RENAME README.${module_name}
       DESTINATION ${CMAKE_INSTALL_DOCDIR}/modules
       DESTINATION ${CMAKE_INSTALL_DOCDIR}/modules
-      COMPONENT kamailio_docs)
+      COMPONENT ${group_name})
 
 
     install(
     install(
       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.7
       FILES ${CMAKE_CURRENT_SOURCE_DIR}/${module_name}/${module_name}.7
       DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man7
       DESTINATION ${CMAKE_INSTALL_DATADIR}/man/man7
-      COMPONENT kamailio_docs
+      COMPONENT ${group_name}
       OPTIONAL)
       OPTIONAL)
   endif()
   endif()
 endfunction()
 endfunction()

+ 6 - 7
src/CMakeLists.txt

@@ -127,14 +127,13 @@ target_compile_definitions(
 install(
 install(
   TARGETS kamailio
   TARGETS kamailio
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
-  COMPONENT kamailio-core
-)
+  COMPONENT kamailio-core)
 
 
 # Install the docs of core
 # Install the docs of core
 install(
 install(
   FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/INSTALL
   FILES ${CMAKE_SOURCE_DIR}/README ${CMAKE_SOURCE_DIR}/INSTALL
   DESTINATION ${CMAKE_INSTALL_DOCDIR}
   DESTINATION ${CMAKE_INSTALL_DOCDIR}
-  COMPONENT kamailio-docs)
+  COMPONENT kamailio-core)
 
 
 # ----------
 # ----------
 # Create and install the man pages for kamailio
 # Create and install the man pages for kamailio
@@ -172,14 +171,15 @@ add_dependencies(man kamailio_docs_man)
 install(
 install(
   FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
   FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
-  COMPONENT kamailio_man
+  COMPONENT kamailio-core
   OPTIONAL)
   OPTIONAL)
 
 
 install(
 install(
   FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5
   FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAIN_NAME}.cfg.5
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man5
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man5
-  COMPONENT kamailio_man
+  COMPONENT kamailio-core
   OPTIONAL)
   OPTIONAL)
+
 # ----------
 # ----------
 
 
 # Install the configuration file (kamailio.cfg) ${CFG_NAME} using a CODE block
 # Install the configuration file (kamailio.cfg) ${CFG_NAME} using a CODE block
@@ -206,5 +206,4 @@ install(
     endif()
     endif()
 
 
 "
 "
-  COMPONENT kamailio-utils-cfg
-)
+  COMPONENT kamailio-core)

+ 13 - 5
src/modules/CMakeLists.txt

@@ -49,7 +49,10 @@ set(EXCLUDE_MODULES
 include(${CMAKE_SOURCE_DIR}/cmake/modules-docs.cmake)
 include(${CMAKE_SOURCE_DIR}/cmake/modules-docs.cmake)
 
 
 # Function to add modules from a list
 # Function to add modules from a list
-function(add_module_group group_modules)
+function(add_module_group group_name group_modules)
+  # message(STATUS "Adding modules for group: ${group_name}")
+  # message(STATUS "Modules: ${group_modules}")
+
   foreach(module_name IN LISTS group_modules)
   foreach(module_name IN LISTS group_modules)
     # Check if the module has already been added
     # Check if the module has already been added
     get_property(ALREADY_ADDED GLOBAL PROPERTY ADDED_MODULES_LIST)
     get_property(ALREADY_ADDED GLOBAL PROPERTY ADDED_MODULES_LIST)
@@ -99,10 +102,10 @@ function(add_module_group group_modules)
         install(
         install(
           TARGETS ${module_name}
           TARGETS ${module_name}
           DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/modules
           DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/modules
-          COMPONENT kamailio_modules)
+          COMPONENT ${group_name})
         # Add the module to the list of added modules
         # Add the module to the list of added modules
         set_property(GLOBAL APPEND PROPERTY ADDED_MODULES_LIST ${module_name})
         set_property(GLOBAL APPEND PROPERTY ADDED_MODULES_LIST ${module_name})
-        docs_add_module(${module_name})
+        docs_add_module(${group_name} ${module_name})
         set_property(GLOBAL APPEND PROPERTY ALL_MODULE_DOC_TARGETS
         set_property(GLOBAL APPEND PROPERTY ALL_MODULE_DOC_TARGETS
                                             ${module_name}_doc)
                                             ${module_name}_doc)
       else()
       else()
@@ -140,9 +143,14 @@ foreach(group IN LISTS FULL_MODULE_GROUP_NAMES)
   if(VERBOSE)
   if(VERBOSE)
     message(STATUS "Modules in ${group}: ${MODULES_IN_GROUP}")
     message(STATUS "Modules in ${group}: ${MODULES_IN_GROUP}")
   endif()
   endif()
-  add_module_group("${MODULES_IN_GROUP}")
+  # remove module_group_prefix.
+  # TODO: This feels like a hack since user already provided
+  # the group name. Move the check above in these for maybe?
+  string(REPLACE "MODULE_GROUP_" "" group_name "${group}")
+  # message(WARNING "Adding module group: ${group_name}")
+  add_module_group("${group_name}" "${MODULES_IN_GROUP}")
 endforeach()
 endforeach()
-add_module_group("${USER_MODULES_LIST}")
+add_module_group(" " "${USER_MODULES_LIST}")
 
 
 get_property(ADDED_MODULES_LIST GLOBAL PROPERTY ADDED_MODULES_LIST)
 get_property(ADDED_MODULES_LIST GLOBAL PROPERTY ADDED_MODULES_LIST)
 message(STATUS "Modules to be built: ${ADDED_MODULES_LIST}")
 message(STATUS "Modules to be built: ${ADDED_MODULES_LIST}")

+ 2 - 1
src/modules/auth_radius/CMakeLists.txt

@@ -27,8 +27,9 @@ install(
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
     endif()
     endif()
 "
 "
-  COMPONENT ${module_name}-cfg)
+  COMPONENT ${group_name})
 
 
+# Custom target to install only the specific config file
 add_custom_target(
 add_custom_target(
   ${module_name}-install-cfg
   ${module_name}-install-cfg
   COMMENT "Installing auth_radius dictionary.${CFG_NAME} configuration file"
   COMMENT "Installing auth_radius dictionary.${CFG_NAME} configuration file"

+ 3 - 1
src/modules/snmpstats/CMakeLists.txt

@@ -8,7 +8,9 @@ find_package(NETSNMP REQUIRED)
 # TODO: Compiles fine but need to do some more verifcation
 # TODO: Compiles fine but need to do some more verifcation
 target_link_libraries(${module_name} PRIVATE NETSNMP::NETSNMP)
 target_link_libraries(${module_name} PRIVATE NETSNMP::NETSNMP)
 
 
+message(WARNING "group_name is: ${group_name}")
 install(
 install(
   DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mibs
   DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mibs
   DESTINATION ${CMAKE_INSTALL_DATADIR}/snmp/
   DESTINATION ${CMAKE_INSTALL_DATADIR}/snmp/
-  OPTIONAL)
+  OPTIONAL
+  COMPONENT ${group_name})

+ 1 - 1
src/modules/tls/CMakeLists.txt

@@ -58,7 +58,7 @@ install(
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
     endif()
     endif()
 "
 "
-  COMPONENT tls-cfg)
+  COMPONENT ${group_name})
 
 
 add_custom_command(
 add_custom_command(
   OUTPUT tls.cfg.sample
   OUTPUT tls.cfg.sample

+ 1 - 1
src/modules/xhttp_pi/CMakeLists.txt

@@ -26,7 +26,7 @@ install(
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
     endif()
     endif()
 "
 "
-  COMPONENT xhttp_pi-cfg)
+  COMPONENT ${group_name})
 
 
 add_custom_target(
 add_custom_target(
   xhttp_pi-install-cfg
   xhttp_pi-install-cfg

+ 1 - 1
utils/kamcmd/CMakeLists.txt

@@ -55,5 +55,5 @@ add_custom_target(kamcmd_man DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8)
 install(
 install(
   FILES ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8
   FILES ${CMAKE_CURRENT_BINARY_DIR}/kamcmd.8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
-  COMPONENT kamailio_man
+  COMPONENT kamailio-core
   OPTIONAL)
   OPTIONAL)

+ 8 - 7
utils/kamctl/CMakeLists.txt

@@ -46,7 +46,7 @@ foreach(file IN LISTS KAMCTL_BASE_FILES KAMCTL_DB_FILES)
   install(
   install(
     PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${file}
     PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${file}
     DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
     DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
-    COMPONENT kamailio-utils-bin)
+    COMPONENT kamailio-core)
 endforeach()
 endforeach()
 
 
 # Kamctl target to depend on all kamctl files
 # Kamctl target to depend on all kamctl files
@@ -64,7 +64,7 @@ add_custom_target(
 install(
 install(
   PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kamctl
   PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kamctl
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
-  COMPONENT kamailio-utils-bin)
+  COMPONENT kamailio-core)
 
 
 # Setup and install kamdbctl stuff
 # Setup and install kamdbctl stuff
 set(KAMDBCTL_BASE_FILES kamdbctl.base)
 set(KAMDBCTL_BASE_FILES kamdbctl.base)
@@ -107,7 +107,7 @@ foreach(file IN LISTS KAMDBCTL_BASE_FILES KAMDBCTL_DB_FILES)
   install(
   install(
     PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${file}
     PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${file}
     DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
     DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
-    COMPONENT kamailio-utils-bin)
+    COMPONENT kamailio-core)
 endforeach()
 endforeach()
 
 
 add_custom_target(
 add_custom_target(
@@ -123,7 +123,7 @@ add_custom_target(
 install(
 install(
   PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl
   PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
   DESTINATION ${CMAKE_INSTALL_SBINDIR}
-  COMPONENT kamailio-utils-bin)
+  COMPONENT kamailio-core)
 
 
 # Install the configuration file (kamctlrc) using a CODE block to check
 # Install the configuration file (kamctlrc) using a CODE block to check
 # existence at install time instead of configure time
 # existence at install time instead of configure time
@@ -145,7 +145,7 @@ install(
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
             PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
     endif()
     endif()
 "
 "
-  COMPONENT kamailio-utils-cfg)
+  COMPONENT kamailio-core)
 
 
 # Man pages generation and installation
 # Man pages generation and installation
 add_custom_command(
 add_custom_command(
@@ -178,7 +178,7 @@ install(
   FILES ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8
   FILES ${CMAKE_CURRENT_BINARY_DIR}/kamctl.8
         ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8
         ${CMAKE_CURRENT_BINARY_DIR}/kamdbctl.8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
   DESTINATION ${CMAKE_INSTALL_MANDIR}/man8
-  COMPONENT kamailio_man
+  COMPONENT kamailio-core
   OPTIONAL)
   OPTIONAL)
 
 
 # Install targets
 # Install targets
@@ -297,7 +297,8 @@ else()
     install(
     install(
       DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${db_name_folder}
       DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${db_name_folder}
       DESTINATION ${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}
       DESTINATION ${CMAKE_INSTALL_DATADIR}/${MAIN_NAME}
-      OPTIONAL)
+      OPTIONAL
+      COMPONENT kamailio-core)
 
 
     add_custom_target(
     add_custom_target(
       dbschema_${db_name}_clean
       dbschema_${db_name}_clean