在make install
期间制作CMake副本文件很简单:
install(TARGETS foo DESTINATION lib)
install(DIRECTORY Include/ DESTINATION include)
但是有可能编写make symlink
来制作符号链接而不是复制文件吗?如果是这样,怎么样?
答案 0 :(得分:0)
编写创建所需符号链接的CMake脚本:
<强> symlink_include_dir.cmake.in 强>:
execute_process(COMMAND cmake -E create_symlink
"@CMAKE_SOURCE_DIR@/include" # Old name
"@CMAKE_INSTALL_PREFIX@/include" # New name
)
在CMakeLists.txt
中配置此脚本以针对实际源和安装路径进行调整,并从install(SCRIPT)
调用它:
<强>的CMakeLists.txt 强>:
# This will copy original script with @variable@ replaced with variable's value.
configure_file("symlink_include_dir.cmake.in" "symlink_include_dir.cmake"
@ONLY)
# Tell CMake to use the script at install stage
install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/symlink_include_dir.cmake")
答案 1 :(得分:0)
好的,在阅读了建议的答案并做了几次尝试之后,我设法写了代码:
add_custom_target(symlink
${CMAKE_COMMAND} -E create_symlink ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/libfoo.a ${CMAKE_INSTALL_PREFIX}/lib/libfoo.a
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/Include ${CMAKE_INSTALL_PREFIX}/include)