summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/CPackComponent.cmake14
-rw-r--r--Modules/CPackIFW.cmake4
-rw-r--r--Modules/CPackRPM.cmake4
3 files changed, 18 insertions, 4 deletions
diff --git a/Modules/CPackComponent.cmake b/Modules/CPackComponent.cmake
index 038a717..6a33086 100644
--- a/Modules/CPackComponent.cmake
+++ b/Modules/CPackComponent.cmake
@@ -360,6 +360,20 @@ macro(cpack_append_string_variable_set_command var strvar)
endif ()
endmacro()
+# Macro that appends a SET command for the given list variable name (var)
+# to the macro named strvar, but only if the variable named "var"
+# has been defined. It's like add variable, but wrap each item to quotes.
+# The string will eventually be appended to a CPack configuration file.
+macro(cpack_append_list_variable_set_command var strvar)
+ if (DEFINED ${var})
+ string(APPEND ${strvar} "set(${var}")
+ foreach(_val IN LISTS ${var})
+ string(APPEND ${strvar} "\n \"${_val}\"")
+ endforeach()
+ string(APPEND ${strvar} ")\n")
+ endif ()
+endmacro()
+
# Macro that appends a SET command for the given variable name (var)
# to the macro named strvar, but only if the variable named "var"
# has been set to true. The string will eventually be
diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake
index 083fc28..2f0e03e 100644
--- a/Modules/CPackIFW.cmake
+++ b/Modules/CPackIFW.cmake
@@ -571,7 +571,7 @@ macro(cpack_ifw_configure_component compname)
endforeach()
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_variable_set_command(
+ cpack_append_list_variable_set_command(
CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_${_IFW_ARG_NAME}
_CPACK_IFWCOMP_STR)
endforeach()
@@ -604,7 +604,7 @@ macro(cpack_ifw_configure_component_group grpname)
endforeach()
foreach(_IFW_ARG_NAME ${_IFW_MULTI_ARGS})
- cpack_append_variable_set_command(
+ cpack_append_list_variable_set_command(
CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_${_IFW_ARG_NAME}
_CPACK_IFWGRP_STR)
endforeach()
diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
index d231ff0..7706bbc 100644
--- a/Modules/CPackRPM.cmake
+++ b/Modules/CPackRPM.cmake
@@ -1683,8 +1683,8 @@ function(cpack_rpm_generate_package)
set(CPACK_RPM_USER_INSTALL_FILES "")
foreach(F IN LISTS CPACK_RPM_USER_FILELIST_INTERNAL)
- string(REGEX REPLACE "%[A-Za-z0-9\(\),-]* " "" F_PATH ${F})
- string(REGEX MATCH "%[A-Za-z0-9\(\),-]*" F_PREFIX ${F})
+ string(REGEX REPLACE "%[A-Za-z]+(\\([^()]*\\))? " "" F_PATH ${F})
+ string(REGEX MATCH "%[A-Za-z]+(\\([^()]*\\))?" F_PREFIX ${F})
if(CPACK_RPM_PACKAGE_DEBUG)
message("CPackRPM:Debug: F_PREFIX=<${F_PREFIX}>, F_PATH=<${F_PATH}>")