CPack
Создание установочных пакетов двоичных и исходных файлов.
Переменные, общие для всех генераторов CPack
Модуль CPack генерирует установочные пакеты двоичных и исходных файлов в различных форматах с помощью программы cpack. Включение модуля CPack добавляет две новые цели в сгенерированные makefiles: package и package_source, которые строят соответственно установочные пакеты двоичных и исходных файлов. Сгенерированные двоичные установочные пакеты содержат всё, что установлено с помощью команды INSTALL CMake (и устаревших команд INSTALL_FILES, INSTALL_PROGRAMS и INSTALL_TARGETS).
Для некоторых типов двоичных установочных пакетов (включая графические установщики на Mac OS X и Windows), CPack генерирует установщики, которые позволяют пользователю выбирать отдельные компоненты приложения для установки. Смотрите модуль CPackComponent для получения дополнительной информации.
Переменная CPACK_GENERATOR имеет различное значение в разных контекстах. В файле CMakeLists.txt CPACK_GENERATOR — это список генераторов: при запуске без дополнительных аргументов CPack будет перебирать этот список и генерировать один пакет для каждого генератора. В файле CPACK_PROJECT_CONFIG_FILE, однако, CPACK_GENERATOR — это строка, содержащая имя одного генератора. Если вам необходима логика для управления другими настройками cpack для каждого генератора, то вам нужен файл CPACK_PROJECT_CONFIG_FILE.
В самой структуре исходных файлов CMake содержится файл CPACK_PROJECT_CONFIG_FILE. Обратитесь к файлу CMakeCPackOptions.cmake.in верхнего уровня для примера.
Если задан, файл CPACK_PROJECT_CONFIG_FILE включается автоматически для каждого генератора. Он должен содержать только переопределения.
Вот как это работает:
- Запускается cpack
- он включает CPackConfig.cmake
- он перебирает список генераторов, указанных в переменной CPACK_GENERATOR этого файла (если не указан конкретный генератор через -G в командной строке…)
- для каждого генератора:
- переменная CPACK_GENERATOR устанавливается на текущий генератор
- включается файл CPACK_PROJECT_CONFIG_FILE
- генерируется пакет для этого генератора
Ключевой момент: для каждого генератора, указанного в CPACK_GENERATOR в файле CPackConfig.cmake, cpack сбросит внутреннее значение CPACK_GENERATOR на текущий и затем включит файл CPACK_PROJECT_CONFIG_FILE.
Прежде чем включать этот модуль CPack в файл CMakeLists.txt, можно задать ряд переменных для настройки создаваемых установочных пакетов. Наиболее часто используемые переменные:
-
CPACK_PACKAGE_NAME -
Имя пакета (или приложения). Если не указано, по умолчанию используется имя проекта.
-
CPACK_PACKAGE_VENDOR -
Имя поставщика пакета. (например, «Kitware»).
-
CPACK_PACKAGE_DIRECTORY -
Директория, в которой CPack выполняет создание пакета. Если не задана, по умолчанию используется (внутри) директория сборки. Эта переменная может быть определена в файле конфигурации CPack или в качестве опции командной строки cpack «-B». Если задана опция командной строки, она переопределяет значение, найденное в файле конфигурации.
-
CPACK_PACKAGE_VERSION_MAJOR -
Главная версия пакета
-
CPACK_PACKAGE_VERSION_MINOR -
Дополнительная версия пакета
-
CPACK_PACKAGE_VERSION_PATCH -
Исправительная версия пакета
-
CPACK_PACKAGE_DESCRIPTION_FILE -
Текстовый файл, используемый для описания проекта. Используется, например, на начальном экране установочного пакета Windows, сгенерированного CPack, для описания проекта.
-
CPACK_PACKAGE_DESCRIPTION_SUMMARY -
Краткое описание проекта (несколько слов).
-
CPACK_PACKAGE_FILE_NAME -
Имя генерируемого файла пакета без расширения. Например, cmake-2.6.1-Linux-i686. Значение по умолчанию:
${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_SYSTEM_NAME}.
-
CPACK_PACKAGE_INSTALL_DIRECTORY -
Директория установки на целевой системе. Это может быть использовано некоторыми генераторами CPack, например, NSIS, для создания директории установки, например, «CMake 2.5», ниже префикса установки. Все устанавливаемые элементы будут помещены в эту директорию.
-
CPACK_PACKAGE_ICON -
Изображение бренда, которое будет отображаться в установщике (используется в графических установщиках).
-
CPACK_PROJECT_CONFIG_FILE -
Файл конфигурации проекта CPack во время выполнения CPack. Этот файл включается во время cpack, один раз на генератор, после того как CPack установил CPACK_GENERATOR на фактически используемый генератор. Он позволяет задавать переменные CPACK_* для каждого генератора в момент работы cpack.
-
CPACK_RESOURCE_FILE_LICENSE -
Лицензия, которая будет встроена в установщик. Обычно она отображается пользователю установщиком (часто с явной кнопкой «Принять», для графических установщиков) перед установкой. Этот файл лицензии НЕ добавляется к устанавливаемым файлам, но используется некоторыми генераторами CPack, например, NSIS. Если вы хотите установить файл лицензии (который может быть таким же) вместе с вашим проектом, вы должны добавить соответствующую команду INSTALL CMake в CMakeLists.txt.
-
CPACK_RESOURCE_FILE_README -
Файл ReadMe, который будет вставлен в установщик. Он обычно подробно описывает назначение проекта во время установки. Не все генераторы CPack используют этот файл.
-
CPACK_RESOURCE_FILE_WELCOME -
Файл приветствия, который будет вставлен в установщик. Он приветствует пользователей этого установщика. Обычно используется в графических установщиках на Windows и Mac OS X.
-
CPACK_MONOLITHIC_INSTALL -
Отключает механизм установки компонентов. При установке значение игнорируется, и все устанавливаемые элементы помещаются в один пакет «MONOLITHIC». Некоторые генераторы CPack по умолчанию выполняют монолитную установку и могут быть попрошены выполнить установку компонентов, установив CPACK_<GENNAME>_COMPONENT_INSTALL в 1/TRUE.
-
CPACK_GENERATOR -
Список генераторов CPack для использования. Если не указано, CPack создаст набор опций CPACK_BINARY_<GENNAME> (например, CPACK_BINARY_NSIS), позволяющий пользователю включать/отключать отдельные генераторы. Эта переменная может использоваться как в командной строке, так и в:
cpack -D CPACK_GENERATOR="ZIP;TGZ" /path/to/build/tree
-
CPACK_OUTPUT_CONFIG_FILE -
Имя файла конфигурации CPack для двоичных установщиков. Этот файл — конфигурация CPack, сгенерированная модулем CPack для двоичных установщиков. По умолчанию — CPackConfig.cmake.
-
CPACK_PACKAGE_EXECUTABLES -
Перечисляет каждый из исполняемых файлов и соответствующую текстовую метку, используемые для создания ярлыков в меню Пуск. Например, установив это на список ccmake;CMake, будет создан ярлык с именем «CMake», который будет запускать установленный исполняемый файл ccmake. Не все генераторы CPack его используют (по крайней мере, NSIS, WIX и OSXX11 — нет).
-
CPACK_STRIP_FILES -
Список файлов, которые нужно удалить. Начиная с CMake 2.6.0, CPACK_STRIP_FILES будет логической переменной, которая включает удаление всех файлов (список файлов оценивается как TRUE в CMake, поэтому это изменение совместимо).
-
CPACK_VERBATIM_VARIABLES -
Если установлено в TRUE, значения переменных с префиксом CPACK будут экранированы перед записью в конфигурационные файлы, так что программа cpack получит их точно так, как они были указаны. В противном случае, символы, такие как кавычки и обратные косые черты, могут привести к ошибкам парсинга или изменить значение, полученное программой cpack. По умолчанию — FALSE для обратной совместимости.
- Обязательно: НЕТ
- По умолчанию: FALSE
Следующие переменные CPack специфичны для пакетов исходных кодов и не повлияют на двоичные пакеты:
-
CPACK_SOURCE_PACKAGE_FILE_NAME -
Имя пакета исходных кодов. Например, cmake-2.6.1.
-
CPACK_SOURCE_STRIP_FILES -
Список файлов в дереве исходных кодов, которые будут удалены. Начиная с CMake 2.6.0, CPACK_SOURCE_STRIP_FILES будет логической переменной, которая включает удаление всех файлов (список файлов оценивается как TRUE в CMake, поэтому это изменение совместимо).
-
CPACK_SOURCE_GENERATOR -
Список генераторов, используемых для пакетов исходных кодов. Как и CPACK_GENERATOR, если это не указано, CPack создаст набор опций (например, CPACK_SOURCE_ZIP), позволяющих пользователю выбирать, какие пакеты будут сгенерированы.
-
CPACK_SOURCE_OUTPUT_CONFIG_FILE -
Имя файла конфигурации CPack для исходных установщиков. Этот файл — конфигурация CPack, сгенерированная модулем CPack для исходных установщиков. По умолчанию — CPackSourceConfig.cmake.
-
CPACK_SOURCE_IGNORE_FILES -
Шаблон файлов в дереве исходных кодов, которые не будут включены в пакет при создании пакета исходных кодов. Это список шаблонов регулярных выражений (которые необходимо должным образом экранировать), например, /CVS/;/.svn/;.swp$;.#;/#;.*~;cscope.*
Следующие переменные предназначены для расширенного использования CPack:
-
CPACK_CMAKE_GENERATOR -
Какой генератор CMake следует использовать, если проект является проектом CMake. По умолчанию используется значение CMAKE_GENERATOR. Некоторым пользователям может потребоваться изменить это значение.
-
CPACK_INSTALL_CMAKE_PROJECTS -
Список из четырёх значений, определяющих, какой проект установить. Четыре значения: директория сборки, имя проекта, компонент проекта, директория. Если не указано, CPack создаст установщик, который установит всё.
-
CPACK_SYSTEM_NAME -
Имя системы, по умолчанию используется значение ${CMAKE_SYSTEM_NAME}.
-
CPACK_PACKAGE_VERSION -
Полная версия пакета, используется внутри. По умолчанию она строится из CPACK_PACKAGE_VERSION_MAJOR, CPACK_PACKAGE_VERSION_MINOR и CPACK_PACKAGE_VERSION_PATCH.
-
CPACK_TOPLEVEL_TAG -
Директория для установленных файлов.
-
CPACK_INSTALL_COMMANDS -
Дополнительные команды для установки компонентов.
-
CPACK_INSTALLED_DIRECTORIES -
Дополнительные каталоги для установки.
-
CPACK_PACKAGE_INSTALL_REGISTRY_KEY -
Ключ реестра, используемый при установке этого проекта. Используется только установщиком для Windows. Значение по умолчанию основано на каталоге установки.
-
CPACK_CREATE_DESKTOP_LINKS -
Список ярлыков рабочего стола для создания. Каждый ярлык рабочего стола требует соответствующую ярлык в меню Пуск, созданную с помощью
CPACK_PACKAGE_EXECUTABLES.
-
CPACK_BINARY_<GENNAME> -
Сгенерированные CPack опции для генераторов библиотек. Модуль CPack.cmake (если CPACK_GENERATOR не задан) генерирует набор опций CMake (см. команду опции CMake), которые могут быть использованы для выбора генератора(ов) CPack для запуска целевого пакета.
Предоставьте опции для выбора генераторов. Мы можем проверить здесь наличие необходимых инструментов для генераторов и установить значения по умолчанию в соответствии с результатами
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/module/CPack.html