2016-01-03 5 views
1

Я видел много приложений linux, упакованных со своими двоичными файлами, в некотором пути, например /opt/mypkg/myexecutable, и символическую ссылку на него в /usr/bin. Я видел эти символические ссылки в упакованных файлах.Как я могу упаковать символическую ссылку с помощью cpack?

Я хочу сделать то же самое при упаковке моего программного обеспечения с помощью cpack, создав пакеты deb и rpm с помощью CPackDEB и CPackRPM.

  • Возможно ли создать символическую ссылку на произвольный, возможно, не существующий путь?

  • Могу ли я затем использовать INSTALL(FILES "mysymlink" DESTINATION /usr/bin/myapp COMPONENT MyComponent)? (Будут ли проблемы с симлинками соблюдаются, когда на самом деле существует назначения?)

  • Могу ли я изменить назначение ссылки с чем-то вроде CONFIGURE_FILE()

Или я просто отсутствует директива CPack, что делает работу правильно?

ответ

2

Посмотрите на следующий примере:

cmake_minimum_required(VERSION 3.0) 
project(myls NONE) 

execute_process(COMMAND ln -s /opt/myapp/superls myls) 

install(FILES ${CMAKE_BINARY_DIR}/myls DESTINATION /usr/bin/myapp COMPONENT MyComponent) 

SET(CPACK_PACKAGE_CONTACT dmarquant) 
include(CPack) 

Вы можете просто создать символическую ссылку на несуществующее место и, как вы написали установить его с помощью установки (файлов ...).