CPackComponent
Создание установочных файлов двоичных и исходных пакетов
Переменные, относящиеся к компонентам CPack
Модуль CPackComponent обрабатывает компоненты в CPack. Для общей информации о CPack см. модуль CPack.
Для некоторых типов установочных файлов (включая графические установщики на Mac OS X и 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 указывает, что этот компонент должен быть отключён (не выбран) по умолчанию. Пользователь может выбрать этот компонент для установки, если он также не скрыт (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
В Mac OS X установщики, которые загружают компоненты во время работы, могут быть построены и установлены только на системах, использующих Mac OS X 10.5 или более позднюю версию.
Аргумент site — это URL, где будут храниться архивы загружаемых компонентов, например, https://cmake.org/files/2.6.1/installer/. Все архивы, созданные CPack, должны быть загружены по этому адресу.
UPLOAD_DIRECTORY — это локальный каталог, в котором CPack будет создавать различные архивы для каждого компонента. Содержимое этого каталога должно быть загружено по адресу, указанному в аргументе site. Если этот аргумент опущен, CPack будет использовать каталог CPackUploads в каталоге библиотек CMake для хранения созданных архивов.
Флаг ALL указывает на то, что должны быть загружены все компоненты. В противном случае будут загружены только те компоненты, которые явно помечены как DOWNLOADED или для которых указан ARCHIVE_FILE. Кроме того, опция ALL подразумевает ADD_REMOVE (если не указан NO_ADD_REMOVE).
ADD_REMOVE указывает, что CPack должен установить копию установщика, который можно вызвать из диалогового окна «Добавить/Удалить программы» Windows (через кнопку «Изменить») для изменения набора установленных компонентов. NO_ADD_REMOVE отключает это поведение. Эта опция игнорируется в macOS.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.12/module/CPackComponent.html