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_PACKAGE_CHECKSUM -
Алгоритм, который будет использоваться для генерации дополнительного файла с контрольной суммой пакета. Имя выходного файла будет:
${CPACK_PACKAGE_FILE_NAME}.${CPACK_PACKAGE_CHECKSUM}В настоящее время поддерживаются алгоритмы: MD5|SHA1|SHA224|SHA256|SHA384|SHA512.
-
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 option), которые затем могут быть использованы для выбора генератора(ов) CPack, который будет использован при запуске целевого пакета.
Предлагает параметры для выбора генераторов, мы можем проверить здесь, если требуемые инструменты для генераторов существуют, и установить значения по умолчанию в соответствии с результатами.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.7/module/CPack.html