Add cpack_ifw_configure_file command
This commit is contained in:
parent
914728f8d7
commit
6310f7c3a0
@ -59,6 +59,7 @@ All Modules
|
||||
/module/CPackDeb
|
||||
/module/CPackDMG
|
||||
/module/CPackIFW
|
||||
/module/CPackIFWConfigureFile
|
||||
/module/CPackNSIS
|
||||
/module/CPackPackageMaker
|
||||
/module/CPackProductBuild
|
||||
|
1
Help/module/CPackIFWConfigureFile.rst
Normal file
1
Help/module/CPackIFWConfigureFile.rst
Normal file
@ -0,0 +1 @@
|
||||
.. cmake-module:: ../../Modules/CPackIFWConfigureFile.cmake
|
9
Help/release/dev/cpack-ifw-configure-file.rst
Normal file
9
Help/release/dev/cpack-ifw-configure-file.rst
Normal file
@ -0,0 +1,9 @@
|
||||
cpack-ifw-configure-file
|
||||
------------------------
|
||||
|
||||
* The :command:`cpack_ifw_configure_file` command was added
|
||||
(in :module:`CPackIFWConfigureFile`) to configure file templates prepared
|
||||
in QtIFW/SDK/Creator style.
|
||||
|
||||
* The :module:`CPackIFWConfigureFile` module was added to define
|
||||
:command:`cpack_ifw_configure_file` command.
|
65
Modules/CPackIFWConfigureFile.cmake
Normal file
65
Modules/CPackIFWConfigureFile.cmake
Normal file
@ -0,0 +1,65 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#.rst:
|
||||
# CPackIFWConfigureFile
|
||||
# ---------------------
|
||||
#
|
||||
# The module defines :command:`configure_file` similar command to
|
||||
# configure file templates prepared in QtIFW/SDK/Creator style.
|
||||
#
|
||||
#
|
||||
# Commands
|
||||
# ^^^^^^^^
|
||||
#
|
||||
# The module defines the following commands:
|
||||
#
|
||||
# .. command:: cpack_ifw_configure_file
|
||||
#
|
||||
# Copy a file to another location and modify its contents.
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# cpack_ifw_configure_file(<input> <output>)
|
||||
#
|
||||
# Copies an ``<input>`` file to an ``<output>`` file and substitutes variable
|
||||
# values referenced as ``%{VAR}`` or ``%VAR%`` in the input file content.
|
||||
# Each variable reference will be replaced with the current value of the
|
||||
# variable, or the empty string if the variable is not defined.
|
||||
#
|
||||
|
||||
# NOTE: This file used to himself packaging via CPack IFW generator and
|
||||
# should be compatible with minimal CMake version defined in
|
||||
# ../CMakeLists.txt file.
|
||||
|
||||
if(NOT DEFINED CPackIFWConfigureFile_CMake_INCLUDED)
|
||||
set(CPackIFWConfigureFile_CMake_INCLUDED 1)
|
||||
|
||||
macro(cpack_ifw_configure_file INPUT OUTPUT)
|
||||
file(READ "${INPUT}" _tmp)
|
||||
foreach(_tmp_regex "%{([^%}]+)}" "%([^%]+)%")
|
||||
string(REGEX MATCHALL "${_tmp_regex}" _tmp_vars "${_tmp}")
|
||||
while(_tmp_vars)
|
||||
foreach(_tmp_var ${_tmp_vars})
|
||||
string(REGEX REPLACE "${_tmp_regex}" "\\1"
|
||||
_tmp_var_name "${_tmp_var}")
|
||||
if(DEFINED ${_tmp_var_name})
|
||||
set(_tmp_var_value "${${_tmp_var_name}}")
|
||||
elseif(NOT "$ENV{${_tmp_var_name}}" STREQUAL "")
|
||||
set(_tmp_var_value "$ENV{${_tmp_var_name}}")
|
||||
else()
|
||||
set(_tmp_var_value "")
|
||||
endif()
|
||||
string(REPLACE "${_tmp_var}" "${_tmp_var_value}" _tmp "${_tmp}")
|
||||
endforeach()
|
||||
string(REGEX MATCHALL "${_tmp_regex}" _tmp_vars "${_tmp}")
|
||||
endwhile()
|
||||
endforeach()
|
||||
if(IS_ABSOLUTE "${OUTPUT}")
|
||||
file(WRITE "${OUTPUT}" "${_tmp}")
|
||||
else()
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT}" "${_tmp}")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
endif() # NOT DEFINED CPackIFWConfigureFile_CMake_INCLUDED
|
Loading…
Reference in New Issue
Block a user