CPack
Создание установочных пакетов для двоичных и исходных файлов.
Переменные, общие для всех генераторов CPack
Модуль CPack генерирует установочные пакеты для двоичных и исходных файлов в различных форматах с помощью программы cpack. Включение модуля CPack добавляет две новые цели в итоговые makefile: 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 -
Краткое описание проекта (несколько слов). Значение по умолчанию:
${PROJECT_DESCRIPTION}если DESCRIPTION указана в вызове project() или CMake сгенерировала строку с PROJECT_NAME, иначе.
-
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_PACKAGE_CHECKSUM -
Алгоритм, который будет использоваться для генерации дополнительного файла с контрольной суммой пакета. Имя выходного файла:
${CPACK_PACKAGE_FILE_NAME}.${CPACK_PACKAGE_CHECKSUM}Поддерживаемые алгоритмы – те, что перечислены командой string(<HASH>).
-
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 -
Отключает механизм установки компонентов. При установке значение игнорируется, и все установленные элементы помещаются в один пакет «МОНОЛИТНЫЙ». Некоторые генераторы 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.9/module/CPack.html