如何使用 cpack 打包符号链接?

How can I package a symlink with cpack?

我见过许多 linux 应用程序与它们的二进制文件一起打包在某些路径中,例如 /opt/mypkg/myexecutable/usr/bin 中的符号link。我在打包文件中看到了这些 symlinks。

我想在用 cpack 打包我的软件时做同样的事情,用 CPackDEB 和 CPackRPM 创建 deb 和 rpm 包。

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

看看下面的例子:

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 ...) 安装它。