Module: kamailio
Branch: master
Commit: eeffe798b85d4f8c580c221b0e655b1b49a7420f
URL:
https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
Author: Xenofon Karamanos <xk(a)gilawa.com>
Committer: Xenofon Karamanos <xk(a)gilawa.com>
Date: 2025-01-17T14:56:31Z
cmake: Fix ignoring excluded module
- When adding groups, we now also check if they contain a user-excluded module.
---
Modified: src/modules/CMakeLists.txt
---
Diff:
https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
Patch:
https://github.com/kamailio/kamailio/commit/eeffe798b85d4f8c580c221b0e655b1…
---
diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt
index 22c1341db8a..be55da5f065 100644
--- a/src/modules/CMakeLists.txt
+++ b/src/modules/CMakeLists.txt
@@ -4,6 +4,7 @@ set(MODULES_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
# Initialize a global property to track added modules
set_property(GLOBAL PROPERTY ADDED_MODULES_LIST "")
set_property(GLOBAL PROPERTY ALL_MODULE_DOC_TARGETS "")
+set_property(GLOBAL PROPERTY EXCLUDED_MODULES_LIST "")
include(${CMAKE_SOURCE_DIR}/cmake/groups.cmake)
@@ -52,9 +53,12 @@ function(add_module_group group_modules)
foreach(module_name IN LISTS group_modules)
# Check if the module has already been added
get_property(ALREADY_ADDED GLOBAL PROPERTY ADDED_MODULES_LIST)
- if(";${ALREADY_ADDED};" MATCHES ";${module_name};")
+ if("${module_name}" IN_LIST ALREADY_ADDED)
message(
STATUS "Module ${module_name} has already been added. Skipping...")
+ elseif("${module_name}" IN_LIST EXCLUDED_MODULES_LIST)
+ message(STATUS "Module ${module_name} is excluded. Skipping...")
+ list(REMOVE_ITEM ADDED_MODULES_LIST ${module_name})
else()
# Construct the path to the module
set(module_path "${MODULES_DIR}/${module_name}")
@@ -108,28 +112,6 @@ function(add_module_group group_modules)
endforeach()
endfunction()
-list(APPEND FINAL_MODULES_LIST "")
-
-# Parse and add extra modules specified by the user
-separate_arguments(INCLUDE_MODULES_LIST UNIX_COMMAND "${INCLUDE_MODULES}")
-message(
- STATUS
- "Extra modules (if module already included already from group is ignored):
- ${INCLUDE_MODULES_LIST}")
-list(APPEND FINAL_MODULES_LIST ${INCLUDE_MODULES_LIST})
-
-# Exclude modules that were explicitly excluded by the user
-separate_arguments(EXCLUDE_MODULES_LIST UNIX_COMMAND "${EXCLUDE_MODULES}")
-message(STATUS "Excluded modules (exlcude even if in included modules):
- ${EXCLUDE_MODULES_LIST}")
-foreach(module_name IN LISTS EXCLUDE_MODULES_LIST)
- # if in list remove it and print a message
- if(";${FINAL_MODULES_LIST};" MATCHES ";${module_name};")
- list(REMOVE_ITEM FINAL_MODULES_LIST ${module_name})
- message(STATUS "Removed module: ${module_name}")
- endif()
-endforeach()
-
# Define targets before adding the groups and modules, so that we can add
# dependencies to them.
add_custom_target(
@@ -140,8 +122,19 @@ add_custom_target(
add_custom_target(kamailio_docs_man COMMENT "Generating man pages")
+# Parse and add extra modules specified by the user
+separate_arguments(INCLUDE_MODULES_LIST UNIX_COMMAND "${INCLUDE_MODULES}")
+message(
+ STATUS
+ "Extra modules (if module already included already from group is ignored):
+ ${INCLUDE_MODULES_LIST}")
+list(APPEND USER_MODULES_LIST ${INCLUDE_MODULES_LIST})
+
+separate_arguments(EXCLUDED_MODULES_LIST UNIX_COMMAND "${EXCLUDE_MODULES}")
+message(STATUS "Excluded modules (exlcude even if in included modules):
+ ${EXCLUDED_MODULES_LIST}")
+
# Add each group of modules
-add_module_group("${FINAL_MODULES_LIST}")
foreach(group IN LISTS FULL_MODULE_GROUP_NAMES)
get_property(MODULES_IN_GROUP VARIABLE PROPERTY "${group}")
if(VERBOSE)
@@ -149,10 +142,12 @@ foreach(group IN LISTS FULL_MODULE_GROUP_NAMES)
endif()
add_module_group("${MODULES_IN_GROUP}")
endforeach()
+add_module_group("${USER_MODULES_LIST}")
get_property(ADDED_MODULES_LIST GLOBAL PROPERTY ADDED_MODULES_LIST)
message(STATUS "Modules to be built: ${ADDED_MODULES_LIST}")
# TODO: Comment is not showing. probably a bug in CMAKE
+#
https://gitlab.kitware.com/cmake/cmake/-/issues/26571
add_custom_target(modules COMMENT "Building modules")
add_dependencies(modules ${ADDED_MODULES_LIST})