summaryrefslogtreecommitdiffstats
path: root/Modules/CPackIFW.cmake
diff options
context:
space:
mode:
authorKonstantin Podsvirov <konstantin@podsvirov.pro>2014-08-12 18:44:02 (GMT)
committerBrad King <brad.king@kitware.com>2014-08-12 19:20:59 (GMT)
commite6496b6023a8f3c471e81b1938580d50b52d3222 (patch)
treedc8d3a9f32a93f6d883cfa5efe463f3479e5c2c2 /Modules/CPackIFW.cmake
parent1f8cfc3b5f4bd87216e48c6bf909b59f10b9065e (diff)
downloadCMake-e6496b6023a8f3c471e81b1938580d50b52d3222.zip
CMake-e6496b6023a8f3c471e81b1938580d50b52d3222.tar.gz
CMake-e6496b6023a8f3c471e81b1938580d50b52d3222.tar.bz2
CPackIFW: Revise this generator
CPack IFW generator updates: - Group now can have script; - Root package (for monolithic or one package installers) can be configured from group. CMake updates: - Native installation (no Unspecified component).
Diffstat (limited to 'Modules/CPackIFW.cmake')
-rw-r--r--Modules/CPackIFW.cmake48
1 files changed, 32 insertions, 16 deletions
diff --git a/Modules/CPackIFW.cmake b/Modules/CPackIFW.cmake
index 29a0047..8463b5d 100644
--- a/Modules/CPackIFW.cmake
+++ b/Modules/CPackIFW.cmake
@@ -74,6 +74,15 @@
#
# You can use predefined variables.
#
+# .. variable:: CPACK_IFW_PACKAGE_GROUP
+#
+# The group, which will be used to configure the root package
+#
+# .. variable:: CPACK_IFW_PACKAGE_NAME
+#
+# The root package name, which will be used if configuration group is not
+# specified
+#
# Components
# """"""""""
#
@@ -122,11 +131,10 @@
#
# ::
#
-# cpack_ifw_configure_component(<compname>
-# [COMMON]
+# cpack_ifw_configure_component(<compname> [COMMON]
+# [NAME <name>]
# [VERSION <version>]
# [SCRIPT <script>]
-# [NAME <name>]
# [PRIORITY <priority>]
# [DEPENDS <com_id> ...]
# [LICENSES <display_name> <file_path> ...])
@@ -163,6 +171,7 @@
# cpack_ifw_configure_component_group(<grpname>
# [VERSION <version>]
# [NAME <name>]
+# [SCRIPT <script>]
# [PRIORITY <priority>]
# [LICENSES <display_name> <file_path> ...])
#
@@ -174,6 +183,9 @@
# ``NAME`` is used to create domain-like identification for this component group.
# By default used origin component group name.
#
+# ``SCRIPT`` is relative or absolute path to operations script
+# for this component group.
+#
# ``PRIORITY`` is priority of the component group in the tree.
#
# ``LICENSES`` pair of <display_name> and <file_path> of license text for this
@@ -329,6 +341,20 @@ if(NOT __CMAKE_PARSE_ARGUMENTS_INCLUDED)
include(CMakeParseArguments)
endif()
+# Resolve full filename for script file
+macro(_cpack_ifw_resolve_script _variable)
+ set(_ifw_script_macro ${_variable})
+ set(_ifw_script_file ${${_ifw_script_macro}})
+ if(DEFINED ${_ifw_script_macro})
+ get_filename_component(${_ifw_script_macro} ${_ifw_script_file} ABSOLUTE)
+ set(_ifw_script_file ${${_ifw_script_macro}})
+ if(NOT EXISTS ${_ifw_script_file})
+ message(WARNING "CPack IFW: script file \"${_ifw_script_file}\" is not exists")
+ set(${_ifw_script_macro})
+ endif()
+ endif()
+endmacro()
+
# Resolve full path to lisense file
macro(_cpack_ifw_resolve_lisenses _variable)
if(${_variable})
@@ -357,18 +383,7 @@ macro(cpack_ifw_configure_component compname)
set(_IFW_MULTI_ARGS DEPENDS LICENSES)
cmake_parse_arguments(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
- # Resolve full filename for script file
- set(_IFW_SCRIPT_MACRO CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
- set(_IFW_SCRIPT_FILE ${${_IFW_SCRIPT_MACRO}})
- if(DEFINED ${_IFW_SCRIPT_MACRO})
- get_filename_component(${_IFW_SCRIPT_MACRO} ${_IFW_SCRIPT_FILE} ABSOLUTE)
- set(_IFW_SCRIPT_FILE ${${_IFW_SCRIPT_MACRO}})
- if(NOT EXISTS ${_IFW_SCRIPT_FILE})
- message(WARNING "CPack IFW: script file \"${_IFW_SCRIPT_FILE}\" for component \"${compname}\" is not exists" )
- set(${_IFW_SCRIPT_MACRO})
- endif()
- endif()
-
+ _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_SCRIPT)
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_${_CPACK_IFWCOMP_UNAME}_LICENSES)
set(_CPACK_IFWCOMP_STR "\n# Configuration for IFW component \"${compname}\"\n")
@@ -403,10 +418,11 @@ macro(cpack_ifw_configure_component_group grpname)
string(TOUPPER ${grpname} _CPACK_IFWGRP_UNAME)
set(_IFW_OPT)
- set(_IFW_ARGS VERSION NAME PRIORITY)
+ set(_IFW_ARGS NAME VERSION SCRIPT PRIORITY)
set(_IFW_MULTI_ARGS LICENSES)
cmake_parse_arguments(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME} "${_IFW_OPT}" "${_IFW_ARGS}" "${_IFW_MULTI_ARGS}" ${ARGN})
+ _cpack_ifw_resolve_script(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_SCRIPT)
_cpack_ifw_resolve_lisenses(CPACK_IFW_COMPONENT_GROUP_${_CPACK_IFWGRP_UNAME}_LICENSES)
set(_CPACK_IFWGRP_STR "\n# Configuration for IFW component group \"${grpname}\"\n")