CPack
Построение установочных пакетов для двоичных и исходных кодов.
Переменные, общие для всех генераторов CPack
Модуль CPack генерирует установочные пакеты для двоичных и исходных кодов в различных форматах с помощью программы cpack. Включение модуля CPack добавляет две новые цели в сгенерированные make файлы: 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_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 -
Отключает механизм установки по компонентам. При установке, спецификация компонентов игнорируется и все установленные элементы помещаются в один пакет «MONOLITHIC». Некоторые генераторы CPack по умолчанию выполняют монолитную упаковку и могут быть запрошены для упаковки по компонентам с помощью установки CPACK_
_COMPONENT_INSTALL в 1/TRUE.
-
CPACK_GENERATOR -
Список генераторов CPack для использования. Если не указано, CPack создаст набор опций CPACK_BINARY_
(например, 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_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.8/module/CPack.html