2016-01-03 25 views
1

我見過很多linux應用程序,它們的二進制文件包裝在/opt/mypkg/myexecutable之類的路徑中,並且在/usr/bin中有一個符號鏈接。我在打包的文件中看到了這些符號鏈接。如何使用cpack打包符號鏈接?

我想在使用cpack打包我的軟件時做同樣的事情,使用CPackDEB和CPackRPM創建deb和rpm包。

  • 是否有可能創建一個符號鏈接到一個任意的,可能不存在的路徑?

  • 我可以使用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) 

您可以簡單地創建一個符號鏈接到一個不存在的位置和怎麼寫,安裝與安裝(文件...)。