CPackRPM
Встроенный (бинарный) генератор пакетов CPack RPM (только для Unix)
Переменные, специфичные для генератора CPack RPM
CPackRPM может использоваться для создания пакетов RPM с помощью CPack. CPackRPM — это CPack генератор, поэтому он использует переменные CPACK_XXX, используемые CPack.
CPackRPM имеет специфические функции, которые контролируются специфическими CPACK_RPM_XXX переменными.
CPACK_RPM_<COMPONENT>_XXXX переменные могут использоваться для получения компонент-специфичных значений. Однако обратите внимание, что <COMPONENT> относится к имени группировки, написанному заглавными буквами. Это может быть либо имя компонента, либо имя группы компонентов. Обычно эти переменные соответствуют сущностям файла спецификации RPM. Информацию о файлах спецификации можно найти здесь http://www.rpm.org/wiki/Docs
Примечание
Часть переменных <COMPONENT> предпочтительно использовать заглавными буквами (например, если компонент называется foo, используйте имя переменной CPACK_RPM_FOO_XXXX). В целях обратной совместимости (CMake/CPack версии 3.5 и ниже) поддерживается использование компонентных переменных с одинаковым регистром (например, fOo будет использоваться как CPACK_RPM_fOo_XXXX). Переменные, определенные в старых версиях CMake/CPack, все еще поддерживаются, но не гарантируется поддержка для переменных, которые будут добавлены в будущем. В целях обратной совместимости переменные компонентных имен с одинаковым регистром также переопределяют переменные с заглавными буквами, если обе присутствуют.
Вот некоторые ресурсы CPackRPM вики, которые здесь из исторических соображений и больше не поддерживаются, но могут оказаться полезными:
- https://cmake.org/Wiki/CMake:CPackConfiguration
- https://cmake.org/Wiki/CMake:CPackPackageGenerators#RPM_.28Unix_Only.29
Список переменных, специфичных для CPackRPM:
-
CPACK_RPM_PACKAGE_COMPONENT -
Включить упаковку компонентов для CPackRPM
- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Если включено (ВКЛ.), генерируются несколько пакетов. По умолчанию генерируется один пакет, содержащий файлы всех компонентов.
-
CPACK_RPM_PACKAGE_SUMMARY -
CPACK_RPM_<component>_PACKAGE_SUMMARY -
Резюме пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_DESCRIPTION_SUMMARY
-
CPACK_RPM_PACKAGE_NAME -
CPACK_RPM_<component>_PACKAGE_NAME -
Имя пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_NAME
-
CPACK_RPM_FILE_NAME -
CPACK_RPM_<component>_FILE_NAME -
Имя файла пакета.
- Обязательно : ДА
-
-
Default : <CPACK_PACKAGE_FILE_NAME>[-<component>].rpm with spaces -
заменяется на ‘-‘
-
Может быть установлено в
RPM-DEFAULT, чтобы позволить инструменту rpmbuild самому сгенерировать имя файла пакета. В качестве альтернативы, предоставленное имя файла пакета должно заканчиваться на.rpmсуффикс.Примечание
Используя пользовательский файл спецификации, макросы rpm, такие как для генерации пакетов debuginfo или просто с помощью нескольких компонентов, может быть сгенерировано более одного файла rpm, либо из одного файла спецификации, либо из нескольких файлов спецификации (каждое выполнение компонента генерирует свой собственный файл спецификации). В таких случаях могут возникнуть дублирующиеся имена файлов в результате установки этой переменной или структуры файла спецификации. Дублирующиеся файлы перезаписываются, и разработчику пакета необходимо установить переменные таким образом, чтобы избежать таких ошибок.
-
CPACK_RPM_PACKAGE_VERSION -
Версия пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_PACKAGE_VERSION
-
CPACK_RPM_PACKAGE_ARCHITECTURE -
CPACK_RPM_<component>_PACKAGE_ARCHITECTURE -
Архитектура пакета RPM.
- Обязательно : ДА
- По умолчанию : Родная архитектура, выводимая
uname -m
Можно установить значение в
noarch, если вы знаете, что создаёте пакет noarch.
-
CPACK_RPM_PACKAGE_RELEASE -
Релиз пакета RPM.
- Обязательно : ДА
- По умолчанию : 1
Это номер самого пакета RPM, т.е. версия упаковки, а не версия содержимого (см.
CPACK_RPM_PACKAGE_VERSION). Можно изменить значение по умолчанию, если предыдущая упаковка имела ошибки и/или вы хотите указать здесь номер, специфичный для дистрибутива Linux.
Примечание
Это строка, которая попадает в поле Release: RPM. Некоторые дистрибутивы (например, Fedora, CentOS) требуют формата 1%{?dist}, а не только числа. %{?dist} часть может быть добавлена установкой CPACK_RPM_PACKAGE_RELEASE_DIST.
-
CPACK_RPM_PACKAGE_RELEASE_DIST -
Тег dist, добавляемый в поле
Release:RPM.- Обязательно : НЕТ
- По умолчанию : ВЫКЛ.
Это отчётный
%{dist}тег из текущего дистрибутива или пустая строка%{dist}, если макрос RPM не установлен. Если эта переменная установлена, то значение поля RPMRelease:устанавливается в${CPACK_RPM_PACKAGE_RELEASE}%{?dist}.
-
CPACK_RPM_PACKAGE_LICENSE -
Лицензионная политика пакета RPM.
- Обязательно : ДА
- По умолчанию : “unknown”
-
CPACK_RPM_PACKAGE_GROUP -
CPACK_RPM_<component>_PACKAGE_GROUP -
Группа пакета RPM.
- Обязательно : ДА
- По умолчанию : “unknown”
-
CPACK_RPM_PACKAGE_VENDOR -
Производитель пакета RPM.
- Обязательно : ДА
- По умолчанию : CPACK_PACKAGE_VENDOR, если установлено, или “unknown”
-
CPACK_RPM_PACKAGE_URL -
CPACK_RPM_<component>_PACKAGE_URL -
URL проекта.
- Обязательно : НЕТ
- По умолчанию : -
-
CPACK_RPM_PACKAGE_DESCRIPTION -
CPACK_RPM_<component>_PACKAGE_DESCRIPTION -
Описание пакета RPM.
- Обязательно : ДА
- По умолчанию :
CPACK_COMPONENT_<compName>_DESCRIPTION(только для установщиков на основе компонентов), если установлено,CPACK_PACKAGE_DESCRIPTION_FILE, если установлено, или “описание пакета недоступно”
-
CPACK_RPM_COMPRESSION_TYPE -
Тип сжатия RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для переопределения типа сжатия RPM, используемого при создании RPM. Например, некоторые дистрибутивы Linux теперь по умолчанию используют сжатие lzma или xz, в то время как более старые не могут использовать такие RPM. С помощью этой переменной можно принудительно использовать определённый тип сжатия.
Возможные значения:
- lzma
- xz
- bzip2
- gzip
-
CPACK_RPM_PACKAGE_AUTOREQ -
CPACK_RPM_<component>_PACKAGE_AUTOREQ -
Поле autoreq спецификации RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для включения (1, да) или выключения (0, нет) автоматического обнаружения зависимости общих библиотек. Зависимости добавляются в список required.
Примечание
По умолчанию автоматическое обнаружение зависимостей включено генератором rpm.
-
CPACK_RPM_PACKAGE_AUTOPROV -
CPACK_RPM_<component>_PACKAGE_AUTOPROV -
Поле autoprov спецификации RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может использоваться для включения (1, да) или выключения (0, нет) автоматического создания списка общих библиотек, предоставляемых пакетом. Общие библиотеки добавляются в список provides.
Примечание
По умолчанию автоматическое обнаружение предоставителей включено генератором rpm.
-
CPACK_RPM_PACKAGE_AUTOREQPROV -
CPACK_RPM_<component>_PACKAGE_AUTOREQPROV -
Поле RPM-спецификации autoreqprov.
- Обязательное : НЕТ
- Значение по умолчанию : -
Переменная включает/выключает autoreq и autoprov одновременно. См.
CPACK_RPM_PACKAGE_AUTOREQиCPACK_RPM_PACKAGE_AUTOPROVдля получения более подробной информации.Примечание
По умолчанию функция автоматического обнаружения включена в rpm.
-
CPACK_RPM_PACKAGE_REQUIRES -
CPACK_RPM_<component>_PACKAGE_REQUIRES -
Поле RPM-спецификации requires.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM (requires). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8")
Список необходимых пакетов файла RPM можно вывести командой:
rpm -qp --requires file.rpm
-
CPACK_RPM_PACKAGE_CONFLICTS -
CPACK_RPM_<component>_PACKAGE_CONFLICTS -
Поле RPM-спецификации conflicts.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания отрицательных зависимостей RPM (conflicts). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_CONFLICTS "libxml2")
Список конфликтующих пакетов файла RPM можно вывести командой:
rpm -qp --conflicts file.rpm
-
CPACK_RPM_PACKAGE_REQUIRES_PRE -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PRE -
Поле RPM-спецификации requires(pre).
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM preinstall (requires(pre)). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POST -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POST -
Поле RPM-спецификации requires(post).
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM postinstall (requires(post)). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POST "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_POSTUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_POSTUN -
Поле RPM-спецификации requires(postun).
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM postuninstall (requires(postun)). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_POSTUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_REQUIRES_PREUN -
CPACK_RPM_<component>_PACKAGE_REQUIRES_PREUN -
Поле RPM-спецификации requires(preun).
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM preuninstall (requires(preun)). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки, например:
set(CPACK_RPM_PACKAGE_REQUIRES_PREUN "shadow-utils, initscripts")
-
CPACK_RPM_PACKAGE_SUGGESTS -
CPACK_RPM_<component>_PACKAGE_SUGGESTS -
Поле RPM-спецификации suggest.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания слабых зависимостей RPM (suggests). Обратите внимание, что вам необходимо заключить всю строку requires в кавычки.
-
CPACK_RPM_PACKAGE_PROVIDES -
CPACK_RPM_<component>_PACKAGE_PROVIDES -
Поле RPM-спецификации provides.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания зависимостей RPM (provides). Список предоставляемых пакетов файла RPM можно вывести командой:
rpm -qp --provides file.rpm
-
CPACK_RPM_PACKAGE_OBSOLETES -
CPACK_RPM_<component>_PACKAGE_OBSOLETES -
Поле RPM-спецификации obsoletes.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для задания пакетов RPM, которые устарели в связи с этим пакетом.
-
CPACK_RPM_PACKAGE_RELOCATABLE -
Создание перемещаемого пакета RPM.
- Обязательное : НЕТ
- Значение по умолчанию : CPACK_PACKAGE_RELOCATABLE
Если эта переменная установлена в TRUE или ON, CPackRPM попытается создать перемещаемый пакет RPM. Перемещаемый пакет RPM можно установить командой:
rpm --prefix or --relocate
Чтобы установить его в другое место, см. rpm(8). В настоящее время это может не сработать, если
CPACK_SET_DESTDIRустановлено вON. ЕслиCPACK_SET_DESTDIRустановлено, будет выведено сообщение об ошибке, но если есть файл, установленный с абсолютным путем, вы получите непредсказуемое поведение.
-
CPACK_RPM_SPEC_INSTALL_POST -
Устарело - используйте
CPACK_RPM_POST_INSTALL_SCRIPT_FILEвместо этого.- Обязательное : НЕТ
- Значение по умолчанию : -
- Устарело: ДА
Этот способ задания скрипта пост-установки устарел, используйте
CPACK_RPM_POST_INSTALL_SCRIPT_FILE. Может использоваться для задания команды post-установки RPM внутри файла spec. Например, установка в/bin/trueможет использоваться для предотвращения stripping библиотек rpmbuild.
-
CPACK_RPM_SPEC_MORE_DEFINE -
Строки расширенных определений RPM-спецификации.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для добавления любых
%defineстрок в сгенерированный файл spec.
-
CPACK_RPM_PACKAGE_DEBUG -
Включить/выключить вывод отладки CPackRPM.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть установлено при вызове cpack для отслеживания информации отладки во время выполнения CPack RPM. Например, вы можете запустить CPack так:
cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -G RPM
-
CPACK_RPM_USER_BINARY_SPECFILE -
CPACK_RPM_<componentName>_USER_BINARY_SPECFILE -
Файл spec, предоставленный пользователем.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может быть установлен пользователем для указания файла spec USER бинарного файла, который будет использоваться CPackRPM вместо генерации файла. Указанный файл будет обработан configure_file( @ONLY).
-
CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE -
Шаблон файла spec.
- Обязательное : НЕТ
- Значение по умолчанию : -
Если установлено, CPack сгенерирует шаблон для файла spec USER бинарного файла и завершится с ошибкой. Например, запустите CPack так:
cpack -D CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE=1 -G RPM
Затем пользователь может использовать этот файл, чтобы вручную создать собственный бинарный файл spec, который можно использовать с
CPACK_RPM_USER_BINARY_SPECFILE.
-
CPACK_RPM_PRE_INSTALL_SCRIPT_FILE -
CPACK_RPM_PRE_UNINSTALL_SCRIPT_FILE -
Путь к файлу со скриптом pre (un)установки.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для вставки скрипта pre (un)установки в файл spec. Ссылаемый файл скрипта (или оба) будет прочитан и помещен непосредственно после раздела
%preили%preun. ЕслиCPACK_RPM_PACKAGE_COMPONENTустановлено в ON, скрипт (un)установки для каждого компонента может быть переопределён сCPACK_RPM_<COMPONENT>_PRE_INSTALL_SCRIPT_FILEиCPACK_RPM_<COMPONENT>_PRE_UNINSTALL_SCRIPT_FILE. Можно проверить, какой скрипт был включён с помощью:rpm -qp --scripts package.rpm
-
CPACK_RPM_POST_INSTALL_SCRIPT_FILE -
CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE -
Путь к файлу со скриптом post (un)установки.
- Обязательное : НЕТ
- Значение по умолчанию : -
Может использоваться для вставки скрипта post (un)установки в файл spec. Ссылаемый файл скрипта (или оба) будут прочитаны и помещены непосредственно после раздела
%postили%postun. ЕслиCPACK_RPM_PACKAGE_COMPONENTустановлено в ON, скрипт (un)установки для каждого компонента может быть переопределён сCPACK_RPM_<COMPONENT>_POST_INSTALL_SCRIPT_FILEиCPACK_RPM_<COMPONENT>_POST_UNINSTALL_SCRIPT_FILE. Можно проверить, какой скрипт был включён с помощью:rpm -qp --scripts package.rpm
-
CPACK_RPM_USER_FILELIST -
CPACK_RPM_<COMPONENT>_USER_FILELIST -
- Обязательно : НЕТ
- По умолчанию : -
Может быть использован для явного указания строки файла
%(<directive>)в файле спецификаций. Например,%config(noreplace)или любой другой директивы, которая может быть найдена в разделе%files. Поскольку CPackRPM генерирует список файлов (и каталогов), указанные пользователем файлы из спискаCPACK_RPM_<COMPONENT>_USER_FILELISTбудут удалены из сгенерированного списка.
-
CPACK_RPM_CHANGELOG_FILE -
Файл changelog RPM.
- Обязательно : НЕТ
- По умолчанию : -
Может быть использован для вставки changelog в файл спецификаций. Указанный файл будет прочитан и помещен непосредственно после раздела
%changelog.
-
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST -
Список путей, которые нужно исключить.
- Обязательно : НЕТ
- По умолчанию : /etc /etc/init.d /usr /usr/share /usr/share/doc /usr/bin /usr/lib /usr/lib64 /usr/include
Может быть использован для исключения путей (каталогов или файлов) из автоматически сгенерированного списка путей, обнаруженных CPack RPM. Значение по умолчанию содержит разумный набор значений, если переменная не определена пользователем. Если переменная определена пользователем, CPackRPM не будет использовать стандартные пути. Если вы хотите добавить пути к стандартному списку, вы можете использовать переменную
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION.
-
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION -
Дополнительный список путей, которые нужно исключить.
- Обязательно : НЕТ
- По умолчанию : -
Может быть использован для добавления дополнительных путей исключения (каталогов или файлов) к начальному стандартному списку исключаемых путей. См.
CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST.
-
CPACK_RPM_RELOCATION_PATHS -
Список путей перемещения пакетов.
- Обязательно : НЕТ
- По умолчанию : -
Может быть использован для указания более одного пути перемещения для переносимого RPM-пакета. Переменная содержит список путей перемещения, которые, если относительные, предваряются значением
CPACK_RPM_<COMPONENT>_PACKAGE_PREFIXили значениемCPACK_PACKAGING_INSTALL_PREFIX, если версия компонента не указана. Переменная не зависит от компонента, так как её содержимое может быть использовано для задания разного префикса пути, например, для каталога бинарных файлов и каталога документации одновременно. К конкретному компоненту добавляются только префиксы, необходимые для этого компонента. Компонент должен содержать по крайней мере один файл/каталог/символическую ссылку с префиксомCPACK_RPM_RELOCATION_PATHSдля добавления определенного пути перемещения. Пакет не будет содержать пути перемещения, если нет файлов/каталогов/символических ссылок в указанных местах. Пакеты, которые либо не содержат пути перемещения, либо содержат файлы/каталоги/символические ссылки, которые находятся вне путей перемещения, выводят сообщениеAUTHOR_WARNING, что RPM будет частично переносимым.
-
CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX -
Префикс пути установки для каждого компонента.
- Обязательно : НЕТ
- По умолчанию : CPACK_PACKAGING_INSTALL_PREFIX
Может быть использован для установки префикса пути установки
CPACK_PACKAGING_INSTALL_PREFIXдля переносимых RPM-пакетов.
-
CPACK_RPM_NO_INSTALL_PREFIX_RELOCATION -
CPACK_RPM_NO_<COMPONENT>_INSTALL_PREFIX_RELOCATION -
Удаление стандартного префикса пути установки из списка путей перемещения.
- Обязательно : НЕТ
-
-
Default : CPACK_PACKAGING_INSTALL_PREFIX or CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX - рассматриваются как один из путей перемещения
-
Может быть использован для удаления CPACK_PACKAGING_INSTALL_PREFIX и CPACK_RPM_<COMPONENT>_PACKAGE_PREFIX из путей префиксов переносимых RPM.
-
CPACK_RPM_ADDITIONAL_MAN_DIRS -
- Обязательно : НЕТ
- По умолчанию : -
Может быть использован для установки дополнительных каталогов man, которые могут быть сжаты макросом brp-compress RPM. Содержимое переменной должно быть списком регулярных выражений, которые указывают на каталоги, содержащие файлы man, или на сами файлы man. Обратите внимание, что для сжатия страниц man путь также должен присутствовать в скрипте brp-compress RPM, и скрипт brp-compress должен быть добавлен в конфигурацию RPM операционной системой.
Регулярные выражения, которые добавляются по умолчанию, были взяты из макроса brp-compress RPM:
- /usr/man/man.*
- /usr/man/.*/man.*
- /usr/info.*
- /usr/share/man/man.*
- /usr/share/man/.*/man.*
- /usr/share/info.*
- /usr/kerberos/man.*
- /usr/X11R6/man/man.*
- /usr/lib/perl5/man/man.*
- /usr/share/doc/.*/man/man.*
- /usr/lib/.*/man/man.*
-
CPACK_RPM_DEFAULT_USER -
CPACK_RPM_<compName>_DEFAULT_USER -
Владелец по умолчанию содержимого RPM.
- Обязательно : НЕТ
- По умолчанию : root
Значение должно быть именем пользователя, а не идентификатором пользователя. Обратите внимание, что <compName> должен быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_GROUP -
CPACK_RPM_<compName>_DEFAULT_GROUP -
Группа по умолчанию для владения содержимым RPM.
- Обязательно : НЕТ
- По умолчанию : root
Значение должно быть именем группы, а не идентификатором группы. Обратите внимание, что <compName> должен быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_FILE_PERMISSIONS -
CPACK_RPM_<compName>_DEFAULT_FILE_PERMISSIONS -
Права доступа по умолчанию для упакованных файлов.
- Обязательно : НЕТ
- По умолчанию : - (стандартные системные права)
Допустимые значения — списки с
PERMISSIONS. Допустимые права:- OWNER_READ
- OWNER_WRITE
- OWNER_EXECUTE
- GROUP_READ
- GROUP_WRITE
- GROUP_EXECUTE
- WORLD_READ
- WORLD_WRITE
- WORLD_EXECUTE
Обратите внимание, что <compName> должен быть в верхнем регистре.
-
CPACK_RPM_DEFAULT_DIR_PERMISSIONS -
CPACK_RPM_<compName>_DEFAULT_DIR_PERMISSIONS -
Права доступа по умолчанию для упакованных каталогов.
- Обязательно : НЕТ
- По умолчанию : - (стандартные системные права)
Допустимые значения — списки с PERMISSIONS. Допустимые права такие же, как для
CPACK_RPM_DEFAULT_FILE_PERMISSIONS. Обратите внимание, что <compName> должен быть в верхнем регистре.
Упаковка символьных ссылок
CPackRPM поддерживает упаковку символьных ссылок:
execute_process(COMMAND ${CMAKE_COMMAND}
-E create_symlink <relative_path_location> <symlink_name>)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/<symlink_name>
DESTINATION <symlink_location> COMPONENT libraries)
Символические ссылки будут оптимизированы (пути будут укорочены, если это возможно), прежде чем быть добавлены в пакет, или, если обнаружено несколько путей перемещения, будет сгенерирован скрипт перемещения символьных ссылок после установки.
Символические ссылки могут указывать на расположения, которые не упаковываются тем же пакетом (другой компонент или даже вообще не упакован), но эти расположения будут обрабатываться так, как будто они являются частью пакета, при определении, должна ли символьная ссылка быть создана или присутствовать в скрипте после установки - в зависимости от путей перемещения.
Символические ссылки, которые указывают на расположения за пределами пути пакета, генерируют предупреждение и обрабатываются как непереносимые постоянные символьные ссылки.
В настоящее время есть несколько ограничений:
- Для упаковки компонентов на основе компонентов взаимозависимость компонентов не проверяется при обработке символьных ссылок. Символические ссылки, указывающие на содержимое другого компонента, обрабатываются так же, как если бы они указывали на расположение, которое не будет упаковано.
- Символические ссылки, указывающие на расположение через одну или несколько промежуточных символьных ссылок, не будут обрабатываться по-другому. Если промежуточная(ые) символьная(ые) ссылка(и) также находится(ются) на переносимом пути, перенос во время установки пакета может привести к тому, что начальная символьная ссылка укажет на недействительное расположение.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.6/module/CPackRPM.html