Spec-Zone.ru › CMake 3.31

CPackComponent

Настройка компонентов для установочных файлов и исходных пакетов.

  • Введение
  • Переменные
  • Команды

    • Добавить компонент
    • Добавить группу компонентов
    • Добавить тип установки
    • Настроить загрузки

Введение

Этот модуль автоматически включается CPack.

Некоторые установочные файлы (особенно графические) , генерируемые CPack, позволяют пользователю выбирать отдельные компоненты приложения для установки. Этот модуль позволяет разработчикам настраивать упаковку таких компонентов.

Содержимое назначается компонентам аргументом COMPONENT команды CMake install(). Компоненты могут быть снабжены понятными названиями и описаниями, зависимостями между компонентами и т.д., а также группироваться различными способами для настройки конечного установщика, используя команды, описанные ниже.

Для указания различных группировок для разных генераторов CPack используйте CPACK_PROJECT_CONFIG_FILE.

Переменные

Следующие переменные влияют на упаковку, специфичную для компонентов:

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 (по умолчанию): создать один пакет на каждую группу компонентов
  • IGNORE: создать один пакет на каждый компонент (игнорировать группы)
  • ALL_COMPONENTS_IN_ONE: создать один пакет со всеми необходимыми компонентами
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_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])

compname — имя установочного компонента, определенного аргументом COMPONENT одной или нескольких команд CMake install(). С помощью команды cpack_add_component можно установить имя, описание и другие атрибуты установочного компонента. Также можно назначить компонент группе компонентов.

DISPLAY_NAME — отображаемое имя компонента, используемое в графических установщиках для отображения имени компонента. Это значение может быть любой строкой.

DESCRIPTION — расширенное описание компонента, используемое в графических установщиках для предоставления пользователю дополнительной информации о компоненте. Описания могут занимать несколько строк, используя \n в качестве разделителя строк. Обычно эти описания должны занимать не более нескольких строк.

HIDDEN указывает, что этот компонент будет скрыт в графическом установщике, поэтому пользователь не может напрямую изменять, установлен ли он или нет.

REQUIRED указывает, что этот компонент необходим и, следовательно, всегда будет установлен. Он будет виден в графическом установщике, но его нельзя сбросить. (Как правило, обязательные компоненты отображаются серым цветом).

DISABLED указывает, что этот компонент по умолчанию должен быть отключён (не выбран). Пользователь свободен выбрать этот компонент для установки, если только он не скрыт.

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/v3.25/. Все архивы, созданные 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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.31/module/CPackComponent.html

Spec-Zone.ru

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