Spec-Zone.ru › CMake 3.11

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API