我已经看到许多Linux应用程序在其/opt/mypkg/myexecutable
之类的路径中打包了二进制文件,并在/usr/bin
中使用了符号链接。我在打包文件中看到了这些符号链接。
我想用cpack打包我的软件,用CPackDEB和CPackRPM创建deb和rpm包。
是否可以为任意的,可能不存在的路径创建符号链接?
我可以使用INSTALL(FILES "mysymlink" DESTINATION /usr/bin/myapp COMPONENT MyComponent)
吗? (当目的地实际存在时,是否会出现符号链接问题?)
我可以使用CONFIGURE_FILE()
或者我只是缺少一个正确完成工作的cpack指令?
答案 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 ...)安装它。