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, вам потребуется 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 -
Главная версия пакета. Значение по умолчанию 0.
-
CPACK_PACKAGE_VERSION_MINOR -
Второстепенная версия пакета. Значение по умолчанию 1.
-
CPACK_PACKAGE_VERSION_PATCH -
Дополняющая версия пакета. Значение по умолчанию 1.
-
CPACK_PACKAGE_DESCRIPTION_FILE -
Текстовый файл, используемый для описания проекта. Используется, например, в стартовом экране установщика Windows, сгенерированного CPack, для описания проекта.
-
CPACK_PACKAGE_DESCRIPTION_SUMMARY -
Краткое описание проекта (несколько слов). Значение по умолчанию:
${PROJECT_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 -
Отключает механизм установки компонентов. При установке значение игнорируется, и все устанавливаемые элементы помещаются в один пакет «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:
-
CPACK_CMAKE_GENERATOR -
Генератор CMake, который следует использовать, если проект является проектом CMake. По умолчанию это значение CMAKE_GENERATOR, мало кто захочет изменить это значение.
-
CPACK_INSTALL_CMAKE_PROJECTS -
Список из четырёх значений, определяющих, какой проект установить. Четыре значения: директория построения, имя проекта, компонент проекта, директория. Если не указано, CPack построит установщик, устанавливающий все элементы.
-
CPACK_SYSTEM_NAME -
Имя системы, по умолчанию принимает значение ${CMAKE_SYSTEM_NAME}, за исключением Windows, где будет «win32» или «win64».
-
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.11/module/CPack.html