Warning, /frameworks/extra-cmake-modules/modules/ECMConfiguredInstall.cmake is written in an unsupported language. File is not indexed.
0001 # SPDX-FileCopyrightText: 2020 David Edmundson <davidedmundson@kde.org> 0002 # 0003 # SPDX-License-Identifier: BSD-3-Clause 0004 0005 #[=======================================================================[.rst: 0006 ECMConfiguredInstall 0007 -------------------- 0008 0009 Takes a list of files, runs ``configure_file`` on each and installs the resultant configured files in the given location. 0010 0011 Any suffix of ".in" in the passed file names will be stripped from the file name at the installed location. 0012 0013 :: 0014 0015 ecm_install_configured_files( 0016 INPUT <file> [<file2> [...]] 0017 DESTINATION <INSTALL_DIRECTORY> 0018 [COPYONLY] 0019 [ESCAPE_QUOTES] 0020 [@ONLY] 0021 [COMPONENT <component>]) 0022 0023 Example usage: 0024 0025 .. code-block:: cmake 0026 0027 ecm_install_configured_files(INPUT foo.txt.in DESTINATION ${KDE_INSTALL_DATADIR} @ONLY) 0028 0029 This will install the file as foo.txt with any cmake variable replacements made into the data directory. 0030 0031 Since 5.73.0. 0032 #]=======================================================================] 0033 0034 function(ecm_install_configured_files) 0035 set(options COPYONLY ESCAPE_QUOTES @ONLY) 0036 set(oneValueArgs DESTINATION COMPONENT) 0037 set(multiValueArgs INPUT) 0038 0039 cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" 0040 "${multiValueArgs}" ${ARGN}) 0041 0042 0043 if(ARGS_UNPARSED_ARGUMENTS) 0044 message(FATAL_ERROR "Unknown arguments given to ecm_install_configured_file(): \"${ARGS_UNPARSED_ARGUMENTS}\"") 0045 endif() 0046 0047 if (NOT ARGS_DESTINATION) 0048 message(FATAL_ERROR "missing DESTINATION argument to ECMConfiguredInstall") 0049 endif() 0050 0051 foreach(_input ${ARGS_INPUT}) 0052 # convert absolute paths 0053 get_filename_component(_name ${_input} NAME) 0054 0055 string(REGEX REPLACE "\\.in$" "" _name ${_name}) 0056 0057 set(_out_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}) 0058 0059 set(_configure_args) 0060 if (ARGS_COPY_ONLY) 0061 list(APPEND _configure_args COPY_ONLY) 0062 endif() 0063 if (ARGS_ESCAPE_QUOTES) 0064 list(APPEND _configure_args ESCAPE_QUOTES) 0065 endif() 0066 if (ARGS_@ONLY) 0067 list(APPEND _configure_args @ONLY) 0068 endif() 0069 0070 configure_file(${_input} ${_out_file} ${_configure_args}) 0071 0072 if (DEFINED ARGS_COMPONENT) 0073 set(_component COMPONENT ${ARGS_COMPONENT}) 0074 else() 0075 set(_component) 0076 endif() 0077 0078 install(FILES ${_out_file} DESTINATION ${ARGS_DESTINATION} ${_component}) 0079 endforeach() 0080 endfunction()