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 одной или нескольких команд INSTALL CMake.
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–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/module/CPackComponent.html