From cd1415b548cd19652d71056dff09f0c31a8260a0 Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 28 Jun 2016 22:06:17 +0300 Subject: [PATCH 1/2] CPackComponents: add cpack_append_list_variable_set_command It's like add variable, but wrap each item to quotes. Can be used for multi args properties. --- Modules/CPackComponent.cmake | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Modules/CPackComponent.cmake b/Modules/CPackComponent.cmake index 038a71734..6a330867e 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 From 9e505285e3c5fc2556d8638c0e0d0228aaeee95d Mon Sep 17 00:00:00 2001 From: Konstantin Podsvirov Date: Tue, 28 Jun 2016 22:19:05 +0300 Subject: [PATCH 2/2] CPackIFW: Using cpack_append_list_variable_set_command This is necessary for proper processing of the list items. --- Modules/CPackIFW.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake index 083fc28ae..2f0e03efd 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()