Spec-Zone.ru › CMake 3.23

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/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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/module/CPackComponent.html

Spec-Zone.ru

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