mirror of
https://github.com/LMMS/lmms.git
synced 2025-12-23 22:58:33 -05:00
Simplify CMake Policies Per https://github.com/LMMS/lmms/pull/6758#discussion_r1271346366
32 lines
1.4 KiB
CMake
32 lines
1.4 KiB
CMake
# This functions forwards a variable to
|
|
# the install stage.
|
|
# Parameters:
|
|
# CONTENT: Variable content.
|
|
# NAME: Variable name.
|
|
# Options:
|
|
# GENERATOR_EXPRESSION: Support generator expression for CONTENT.
|
|
function(DEFINE_INSTALL_VAR)
|
|
set(options GENERATOR_EXPRESSION)
|
|
set(oneValueArgs NAME )
|
|
set(multiValueArgs CONTENT)
|
|
cmake_parse_arguments(VAR "${options}" "${oneValueArgs}"
|
|
"${multiValueArgs}" ${ARGN} )
|
|
|
|
# install(CODE) does not support generator expression in ver<3.14
|
|
if(VAR_GENERATOR_EXPRESSION AND ${CMAKE_VERSION} VERSION_LESS "3.14.0")
|
|
include(CreateTempFile)
|
|
if(CMAKE_CONFIGURATION_TYPES) # in case of multi-config generators like MSVC generators
|
|
CreateTempFilePath(OUTPUT_VAR file_path TAG "${VAR_NAME}" CONTENT "${VAR_CONTENT}" CONFIG_SUFFIX)
|
|
install(CODE "file(READ \"${file_path}_\${CMAKE_INSTALL_CONFIG_NAME}\" \"${VAR_NAME}\")")
|
|
else()
|
|
CreateTempFilePath(OUTPUT_VAR file_path TAG "${VAR_NAME}" CONTENT "${VAR_CONTENT}")
|
|
install(CODE "file(READ \"${file_path}\" \"${VAR_NAME}\")")
|
|
endif()
|
|
else()
|
|
if(VAR_GENERATOR_EXPRESSION)
|
|
cmake_policy(SET CMP0087 NEW) # install(CODE) and install(SCRIPT) support generator expressions.
|
|
endif()
|
|
install(CODE "set(\"${VAR_NAME}\" \"${VAR_CONTENT}\")")
|
|
endif()
|
|
endfunction()
|