CPackComponent
Создание установочных пакетов двоичных и исходных файлов
Переменные, относящиеся к компонентам CPack
Модуль CPackComponent обрабатывает часть компонентов в CPack. Для общей информации о CPack см. модуль CPack.
Для некоторых типов двоичных установочных пакетов (включая графические установщики на Mac OS X и Windows) CPack генерирует установщики, которые позволяют пользователям выбирать отдельные компоненты приложения для установки. Содержимое каждого компонента определяется аргументом COMPONENT команды INSTALL CMake. Эти компоненты могут быть снабжены понятными пользователю именами и описаниями, зависимостями между компонентами и т. д., а также группироваться различными способами для настройки результирующего установщика. Более подробная информация о компонентах установки содержится в командах cpack_add_*, описанных ниже.
Установка компонентов позволяет пользователям выбирать определенные наборы компонентов для установки в процессе установки. Компоненты установки определяются аргументом COMPONENT команд INSTALL CMake и должны быть дополнительно описаны следующими командами CPack:
-
CPACK_COMPONENTS_ALL -
Список компонентов для установки.
Значение по умолчанию этой переменной вычисляется CPack и содержит все компоненты, определенные проектом. Пользователь может установить его, чтобы включить только указанные компоненты.
-
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
В Mac OS X установщики, загружающие компоненты во время установки, могут быть построены и установлены только на системах с Mac OS X 10.5 или более поздней версии.
Аргумент site — URL, на котором будут храниться архивы загружаемых компонентов, например, https://cmake.org/files/2.6.1/installer/ Все архивы, созданные CPack, должны быть загружены на этот сайт.
UPLOAD_DIRECTORY — локальный каталог, в котором CPack создаст различные архивы для каждого компонента. Содержимое этого каталога должно быть загружено на сайт, доступный по указанному в аргументе site URL. Если не указано, CPack будет использовать каталог CPackUploads в каталоге библиотек CMake для хранения сгенерированных архивов.
Флаг ALL указывает, что все компоненты должны быть загружены. В противном случае загружаются только те компоненты, которые явно помечены как DOWNLOADED или имеют указанный ARCHIVE_FILE. Кроме того, опция ALL подразумевает ADD_REMOVE (если не указано NO_ADD_REMOVE).
END_OF_DOCUMENT_MARKERADD_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.9/module/CPackComponent.html