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, можно задать различные переменные для настройки создаваемых установочных пакетов. Наиболее часто используемые переменные:
- Имя пакета (или приложения). Если не указано, по умолчанию используется имя проекта.
- Имя поставщика пакета (например, «Kitware»).
- Директория, в которой CPack выполняет создание пакета. Если не задана, по умолчанию используется директория сборки. Эта переменная может быть определена в файле конфигурации CPack или из параметра командной строки cpack «-B». Если задан параметр командной строки, он переопределяет значение, найденное в файле конфигурации.
- Основная версия пакета.
- Дополнительная версия пакета.
- Вспомогательная версия пакета.
- Текстовый файл, используемый для описания проекта. Например, используется в экранном представлении ввода-вывода окна установочного пакета CPack для Windows.
- Краткое описание проекта (несколько слов).
- Имя создаваемого файла пакета, без расширения. Например, cmake-2.6.1-Linux-i686. Значение по умолчанию:
- Директория установки на целевой системе. Может использоваться некоторыми генераторами CPack, например NSIS, для создания директории установки (например, «CMake 2.5») ниже префикса установки. Все установленные элементы будут помещены внутрь этой директории.
- Изображение бренда, которое будет отображаться в установщике (используется графическими установщиками).
- Файл конфигурации проекта CPack для времени работы CPack. Этот файл включается во время работы cpack, один раз на генератор, после того как CPack установил CPACK_GENERATOR в фактический используемый генератор. Он позволяет устанавливать переменные CPACK_* для каждого генератора во время работы cpack.
- Лицензия, которая будет добавлена в установщик. Она обычно отображается пользователю установщиком (часто с явной кнопкой «Принять» для графических установщиков) перед установкой. Этот файл лицензии НЕ добавляется в установленные файлы, но используется некоторыми генераторами CPack, например NSIS. Если вы хотите установить файл лицензии (возможно, тот же самый) вместе с вашим проектом, вы должны добавить соответствующую команду INSTALL CMake в CMakeLists.txt.
- Файл ReadMe, который будет добавлен в установщик. Он обычно подробно описывает назначение проекта во время установки. Данный файл не используется всеми генераторами CPack.
- Файл приветствия, который будет добавлен в установщик. Приветствует пользователей установщиком. Обычно используется в графических установщиках Windows и Mac OS X.
-
Отключает механизм установки на основе компонентов. При установке этот параметр игнорирует указание компонентов и помещает все установленные элементы в один пакет «MONOLITHIC». Некоторые генераторы CPack выполняют монолитную упаковку по умолчанию и могут быть запрошены на выполнение упаковки компонентов, установив CPACK_
_COMPONENT_INSTALL в 1/TRUE.
-
Список генераторов CPack для использования. Если не указан, CPack создаст набор опций CPACK_BINARY_
(например, CPACK_BINARY_NSIS), позволяя пользователю включать/отключать отдельные генераторы. Эта переменная может использоваться как в командной строке, так и в:
- Имя файла конфигурации CPack для бинарных установочных пакетов. Этот файл генерируется модулем CPack для бинарных установочных пакетов. По умолчанию используется CPackConfig.cmake.
- Перечисляет каждый из исполняемых файлов и соответствующие текстовые метки, используемые для создания ярлыков в меню Пуск. Например, задав значение ccmake;CMake, будет создан ярлык «CMake», который выполнит установленный исполняемый файл ccmake. Не все генераторы CPack используют этот параметр (хотя бы NSIS, WIX и OSXX11).
- Список файлов для удаления. Начиная с CMake 2.6.0, CPACK_STRIP_FILES будет булевой переменной, которая включает удаление всех файлов (список файлов оценивается как TRUE в CMake, поэтому это изменение совместимо).
- Если установлено в TRUE, значения переменных, начинающихся с CPACK, будут экранированы перед записью в конфигурационные файлы, чтобы программа cpack получила их точно так, как они были указаны. Если нет, символы, такие как кавычки и обратные косые черты, могут вызвать ошибки парсинга или изменить значение, полученное программой cpack. По умолчанию FALSE для обеспечения обратной совместимости.
- Обязательно: НЕТ
- По умолчанию: FALSE
Следующие переменные CPack специфичны для пакетов исходных кодов и не влияют на бинарные пакеты:
- Имя пакета исходных кодов. Например, cmake-2.6.1.
- Список файлов в дереве исходных кодов, которые будут удалены. Начиная с CMake 2.6.0, CPACK_SOURCE_STRIP_FILES будет булевой переменной, которая включает удаление всех файлов (список файлов оценивается как TRUE в CMake, поэтому это изменение совместимо).
- Список генераторов, используемых для пакетов исходных кодов. Как и для CPACK_GENERATOR, если это не указано, CPack создаст набор опций (например, CPACK_SOURCE_ZIP), позволяя пользователям выбирать, какие пакеты будут сгенерированы.
- Имя файла конфигурации CPack для пакетов исходных кодов. Этот файл генерируется модулем CPack для установочных пакетов исходных кодов. По умолчанию используется CPackSourceConfig.cmake.
- Шаблон файлов в дереве исходных кодов, которые не будут включены в пакет исходных кодов при его создании. Это список шаблонов регулярных выражений (которые должны быть должным образом экранированы), например, /CVS/;/.svn/;.swp$;.#;/#;.*~;cscope.*
Следующие переменные предназначены для расширенного использования CPack:
- Какой генератор CMake следует использовать, если проект является проектом CMake. По умолчанию используется значение CMAKE_GENERATOR, мало кто захочет изменить эту настройку.
- Список из четырёх значений, определяющих проект для установки. Четыре значения: каталог сборки, имя проекта, компонент проекта, директория. Если не указано, CPack создаст установщик, который установит всё.
- Имя системы, по умолчанию равно значению ${CMAKE_SYSTEM_NAME}.
- Полная версия пакета, используется внутренне. По умолчанию она строится из 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.6/module/CPack.html