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