CPackComponent
Сборка установочных пакетов бинарных и исходных кодов
Переменные, относящиеся к компонентам CPack
Модуль CPackComponent — это модуль, который обрабатывает часть компонентов в CPack. Для общей информации о CPack см. модуль CPack.
Для некоторых типов бинарных установочных пакетов (включая графические установщики на macOS и Windows), CPack генерирует установщики, которые позволяют пользователям выбирать отдельные компоненты приложения для установки. Содержимое каждого компонента определяется аргументом COMPONENT команды INSTALL CMake. Эти компоненты могут быть снабжены понятными названиями и описаниями, межкомпонентными зависимостями и т. д., а также группироваться различными способами для настройки результирующего установщика. Более подробную информацию об установке, специфичной для компонентов, можно найти в командах cpack_add_*, описанных ниже.
Установка, специфичная для компонентов, позволяет пользователям выбирать определенные наборы компонентов для установки во время процесса установки. Компоненты установки идентифицируются аргументом COMPONENT команд INSTALL CMake и должны быть дополнительно описаны следующими командами CPack:
-
CPACK_COMPONENTS_ALL -
Список компонентов для установки.
Значение по умолчанию этой переменной вычисляется CPack и содержит все компоненты, определенные проектом. Пользователь может установить его для включения только указанных компонентов.
Вместо указания всех необходимых компонентов можно получить список всех определённых компонентов и затем удалить ненужные из списка. Команда
get_cmake_property()может быть использована для получения свойстваCOMPONENTS, а затем командаlist(REMOVE_ITEM)может быть использована для удаления ненужных. Например, чтобы использовать все определенные компоненты, за исключениемfooиbar:get_cmake_property(CPACK_COMPONENTS_ALL COMPONENTS) list(REMOVE_ITEM CPACK_COMPONENTS_ALL "foo" "bar")
-
CPACK_<GENNAME>_COMPONENT_INSTALL -
Включить/выключить установку компонентов для генератора CPack <GENNAME>.
Каждый генератор CPack (RPM, DEB, ARCHIVE, NSIS, DMG и т. д.) имеет устаревшее поведение по умолчанию. Например, RPM создает монолитные пакеты, в то время как NSIS создает пакеты компонентов. Можно изменить поведение по умолчанию, установив эту переменную в 0/1 или OFF/ON.
-
CPACK_COMPONENTS_GROUPING -
Укажите, как компоненты группируются для многопакетных генераторов CPack, поддерживающих компоненты.
Некоторые генераторы, такие как RPM или семейство ARCHIVE (TGZ, ZIP, …), генерируют несколько файлов пакетов, когда запрашивается упаковка компонентов. Они группируют компоненты по-разному в зависимости от значения этой переменной:
- ONE_PER_GROUP (по умолчанию): создает один файл пакета на каждую группу компонентов
- ALL_COMPONENTS_IN_ONE: создает один пакет со всеми (запрашиваемыми) компонентами
- IGNORE: создает один пакет на компонент, т. е. игнорирует группировку компонентов
Можно указать различную группировку для разных генераторов CPack, используя CPACK_PROJECT_CONFIG_FILE.
-
CPACK_COMPONENT_<compName>_DISPLAY_NAME -
Имя, которое будет отображаться для компонента.
-
CPACK_COMPONENT_<compName>_DESCRIPTION -
Описание компонента.
-
CPACK_COMPONENT_<compName>_GROUP -
Группа компонента.
-
CPACK_COMPONENT_<compName>_DEPENDS -
Зависимости (список компонентов), от которых зависит этот компонент.
-
CPACK_COMPONENT_<compName>_HIDDEN -
Истина, если этот компонент скрыт от пользователя.
-
CPACK_COMPONENT_<compName>_REQUIRED -
Истина, если этот компонент необходим.
-
CPACK_COMPONENT_<compName>_DISABLED -
Истина, если этот компонент по умолчанию не выбран для установки.
-
cpack_add_component
Описывает компонент установки CPack, именованный аргументом COMPONENT команды INSTALL CMake.
cpack_add_component(compname
[DISPLAY_NAME name]
[DESCRIPTION description]
[HIDDEN | REQUIRED | DISABLED ]
[GROUP group]
[DEPENDS comp1 comp2 ... ]
[INSTALL_TYPES type1 type2 ... ]
[DOWNLOADED]
[ARCHIVE_FILE filename]
[PLIST filename])
Команда cmake_add_component описывает компонент установки, который пользователь может выбрать для установки или удаления в рамках графического процесса установки. compname — имя компонента, предоставляемое аргументу COMPONENT одной или нескольких команд CMake INSTALL.
DISPLAY_NAME — отображаемое имя компонента, используемое в графических установщиках для отображения имени компонента. Это значение может быть любой строкой.
DESCRIPTION — расширенное описание компонента, используемое в графических установщиках для предоставления пользователю дополнительной информации о компоненте. Описания могут занимать несколько строк, используя \n в качестве разделителя строк. Обычно эти описания должны быть не более нескольких строк.
HIDDEN указывает, что этот компонент будет скрыт в графическом установщике, так что пользователь не сможет напрямую изменить установку или отмену установки.
REQUIRED указывает, что этот компонент необходим и, следовательно, всегда будет установлен. Он будет виден в графическом установщике, но его нельзя отключить. (Как правило, необходимые компоненты отображаются серым цветом).
DISABLED указывает, что этот компонент по умолчанию должен быть отключен (не выбран). Пользователь свободно может выбрать этот компонент для установки, если он также не скрыт (HIDDEN).
DEPENDS перечисляет компоненты, от которых зависит этот компонент. Если этот компонент выбран, то каждый из перечисленных компонентов также должен быть выбран. Информация о зависимостях закодирована в самом установщике, так что пользователи не могут устанавливать несовместимые наборы компонентов.
GROUP — имя группы компонентов, частью которой является этот компонент. Если не указано, компонент будет автономным компонентом, не входящим ни в какую группу компонентов. Группы компонентов описываются командой cpack_add_component_group, описанной ниже.
INSTALL_TYPES перечисляет типы установки, частью которых является этот компонент. При выборе одного из этих типов установки этот компонент будет автоматически выбран. Типы установки описываются командой cpack_add_install_type, описанной ниже.
DOWNLOADED указывает, что этот компонент должен загружаться во время установки установщиком, а не включаться в сам установщик. Более подробная информация приведена в команде cpack_configure_downloads.
ARCHIVE_FILE предоставляет имя файла архива, созданного CPack для использования в загружаемых компонентах. Если не указано, CPack создаст файл с каким-то именем, основанным на CPACK_PACKAGE_FILE_NAME и имени компонента. Более подробная информация приведена в cpack_configure_downloads.
PLIST предоставляет имя файла, передаваемое команде pkgbuild с аргументом --component-plist при использовании генератора productbuild.
-
cpack_add_component_group
Описывает группу связанных компонентов установки CPack.
cpack_add_component_group(groupname
[DISPLAY_NAME name]
[DESCRIPTION description]
[PARENT_GROUP parent]
[EXPANDED]
[BOLD_TITLE])
Команда cpack_add_component_group описывает группу компонентов установки, которые будут размещены вместе в списке опций. Как правило, группы компонентов позволяют пользователю выбирать/снимать отметки со всех компонентов в одной группе с помощью одной опции на уровне группы. Используйте группы компонентов для уменьшения сложности установщиков с множеством опций. groupname — произвольное имя, используемое для идентификации группы в аргументе GROUP команды cpack_add_component, который используется для размещения компонента в группе. Имя группы не должно совпадать с именем компонента.
DISPLAY_NAME — отображаемое имя группы компонентов, используемое в графических установщиках для отображения имени группы компонентов. Это значение может быть любой строкой.
DESCRIPTION — расширенное описание группы компонентов, используемое в графических установщиках для предоставления пользователю дополнительной информации о компонентах в этой группе. Описания могут занимать несколько строк, используя \n в качестве разделителя строк. Обычно эти описания должны быть не более нескольких строк.
PARENT_GROUP, если указано, — имя родительской группы этой группы. Родительские группы используются для создания иерархии групп, обеспечивая произвольную иерархию групп.
EXPANDED указывает, что по умолчанию группа должна отображаться как «расширенная», так что пользователь сразу видит все компоненты в группе. В противном случае группа будет первоначально отображаться как один элемент.
BOLD_TITLE указывает, что заголовок группы должен отображаться полужирным шрифтом, чтобы привлечь внимание пользователя к группе.
-
cpack_add_install_type
Добавление нового типа установки, содержащего набор предопределенных выборов компонентов, в графический установщик.
cpack_add_install_type(typename
[DISPLAY_NAME name])
Команда cpack_add_install_type определяет набор предварительно выбранных компонентов, представляющих собой типичный случай использования приложения. Например, тип установки «Разработчик» может включать приложение вместе с его заголовочными файлами и библиотеками, в то время как тип установки «Конечный пользователь» может включать только исполняемый файл приложения. Каждый компонент идентифицирует себя одним или несколькими типами установки через аргумент INSTALL_TYPES к cpack_add_component.
DISPLAY_NAME — отображаемое имя типа установки, которое обычно отображается в раскрывающемся списке графического установщика. Это значение может быть любой строкой.
-
cpack_configure_downloads
Настройка CPack для загрузки выбранных компонентов во время процесса установки.
cpack_configure_downloads(site
[UPLOAD_DIRECTORY dirname]
[ALL]
[ADD_REMOVE|NO_ADD_REMOVE])
Команда cpack_configure_downloads настраивает загрузку выбранных компонентов во время установки. Для каждого загружаемого компонента CPack создаст архив, содержащий содержимое этого компонента, который должен быть загружен на указанный сайт. Когда пользователь выбирает этот компонент для установки, установщик загрузит и извлечёт компонент на место. Эта функция полезна для создания небольших установочных пакетов, которые загружают только необходимые компоненты, экономя пропускную способность. Кроме того, установщики достаточно малы, чтобы они могли быть установлены в рамках обычного процесса установки, и кнопка «Изменить» в окне «Установка и удаление программ» Windows позволит добавить или удалить части приложения после первоначальной установки. В Windows функциональность загружаемых компонентов требует плагина ZipDLL для NSIS, доступного по адресу:
http://nsis.sourceforge.net/ZipDLL_plug-in
На macOS установщики, которые загружают компоненты во время установки, могут быть созданы и установлены только на системах с macOS 10.5 или более поздней версии.
Аргумент site — URL, где будут храниться архивы для загружаемых компонентов, например, https://cmake.org/files/2.6.1/installer/ Все архивы, созданные CPack, должны быть загружены на этот сайт.
UPLOAD_DIRECTORY — это локальный каталог, в котором CPack будет создавать различные архивы для каждого компонента. Содержимое этого каталога должно быть загружено в расположение, доступное по URL, указанному в аргументе site. Если этот параметр опущен, CPack будет использовать каталог CPackUploads внутри каталога бинарных файлов CMake для хранения сгенерированных архивов.
Флаг ALL указывает на то, что должны быть загружены все компоненты. В противном случае будут загружены только те компоненты, которые явно помечены как DOWNLOADED или имеют указанный ARCHIVE_FILE. Кроме того, опция ALL подразумевает ADD_REMOVE (если не указано NO_ADD_REMOVE).
ADD_REMOVE указывает, что CPack должен установить копию установщика, которая может вызываться из диалогового окна «Добавить/Удалить программы» Windows (через кнопку «Изменить») для изменения набора установленных компонентов. NO_ADD_REMOVE отключает это поведение. Этот параметр игнорируется в Mac OS X.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.15/module/CPackComponent.html