使用cmake在安装期间强制复制最新的符号链接

时间:2015-03-27 18:50:28

标签: cmake

有没有办法让cmake复制它在安装阶段最新时通常省略的符号链接?

基本上,即使新构建的符号链接相同,我也希望在每次构建时更新时间戳。

我目前生成的所有.cmake文件都是类似的:

  IF(EXISTS "${file}" AND
   NOT IS_SYMLINK "${file}")
   FILE(RPATH_CHECK
       FILE "${file}"
       RPATH "")

CmakeLists.txt的相关部分:

INSTALL(TARGETS mylib EXPORT mylib-export
   LIBRARY DESTINATION ${LIB_INSTALL_DIR}
   RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
   ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
   FRAMEWORK DESTINATION ${FRAMEWORK_INSTALL_DIR}
   PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR}/mylib
)

我能找到的与符号链接相关的唯一两个选项是NAMELINK_ONLYNAMELINK_SKIP。也不做我想要的。

1 个答案:

答案 0 :(得分:0)

我最终为它编写了一个自定义命令。

set ( mylink ${LIB_INSTALL_DIR}/mylib.so) 
add_custom_command (TARGET mylib
                    POST_BUILD
                    COMMAND touch -h ${mylink}
                    COMMENT "Updating date on symbolic link" )

它有效,但它不是很优雅。

我宁愿找一些东西来改变cmake对安装行为的更新。