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>_REQUIRED -
Истина, если этот компонент обязателен.
-
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])
Команда cmake_add_component описывает компонент установки, который пользователь может выбрать для установки или удаления в рамках графического процесса установки. compname — это имя компонента, предоставляемое аргументу COMPONENT одной или нескольких команд INSTALL CMake.
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.
-
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 будет создавать различные архивы для каждого компонента. Содержимое этого каталога должно быть загружено в место, доступное по 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–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.6/module/CPackComponent.html