如何用cpack打包符号链接?

时间:2016-01-03 15:45:36

标签: cmake symlink packaging deb cpack

我已经看到许多Linux应用程序在其/opt/mypkg/myexecutable之类的路径中打包了二进制文件,并在/usr/bin中使用了符号链接。我在打包文件中看到了这些符号链接。

我想用cpack打包我的软件,用CPackDEB和CPackRPM创建deb和rpm包。

  • 是否可以为任意的,可能不存在的路径创建符号链接?

  • 我可以使用INSTALL(FILES "mysymlink" DESTINATION /usr/bin/myapp COMPONENT MyComponent)吗? (当目的地实际存在时,是否会出现符号链接问题?)

  • 我可以使用CONFIGURE_FILE()

  • 之类的内容更改链接目的地

或者我只是缺少一个正确完成工作的cpack指令?

1 个答案:

答案 0 :(得分:3)

看一下以下示例:

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)

您可以简单地创建一个指向非现有位置的符号链接,并且在您编写时使用install(FILES ...)安装它。