CPACK_CUSTOM_INSTALL_VARIABLES
Добавлен в версии 3.21.
Переменные CPack (устанавливаются, например, с помощью cpack -D, CPackConfig.cmake или CPACK_PROJECT_CONFIG_FILE скриптов) не отображаются непосредственно в скриптах установки. Вместо этого можно передать список пар varName=value в переменную CPACK_CUSTOM_INSTALL_VARIABLES. При установке каждый элемент списка приведет к установке переменной указанного имени (varName) в заданное значение (value). Список может быть пустым (value) — для этого = можно опустить.
CPACK_CUSTOM_INSTALL_VARIABLES позволяет управлять установкой пакета пользователем или управляющим скриптом во время выполнения CPack, не прибегая к необходимости перегенерировать скрипты установки.
Пример
install(FILES large.txt DESTINATION data)
install(CODE [[
if(ENABLE_COMPRESSION)
# "run-compressor" is a fictional tool that produces
# large.txt.xz from large.txt and then removes the input file
execute_process(COMMAND run-compressor $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/large.txt)
endif()
]])
В приведённом примере, cpack по умолчанию выполнит скрипт установки с ENABLE_COMPRESSION не установленным, что приведёт к созданию пакета с неархивированным large.txt. Это можно переопределить, вызвав cpack следующим образом:
cpack -D "CPACK_CUSTOM_INSTALL_VARIABLES=ENABLE_COMPRESSION=TRUE"
Тогда скрипт установки будет выполнен с ENABLE_COMPRESSION установленным в значение TRUE, что приведёт к созданию пакета с архивированным large.txt.xz вместо этого.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CPACK_CUSTOM_INSTALL_VARIABLES.html