Spec-Zone.ru › CMake 3.27

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 указывает, что этот компонент по умолчанию должен быть отключен (не выбран). Пользователь свободен выбирать этот компонент для установки, если только он не скрыт (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/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.27/module/CPackComponent.html

Spec-Zone.ru

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