CMake无法跟随符号链接

时间:2019-05-20 01:22:55

标签: cmake

更新:事实证明,该问题与Jenkins代理无关,而与CMake有关。它可以从命令行轻松复制。 以前曾在这里报道过: CMake cannot follow symlinks on Windows 10 但是,此问题与操作系统无关。我们也在Linux上遇到过它。

我正在调试以下错误:

CMake Error at C:/jenkins/trial/workspace/WWB6-6.13.0/wwb-Pilot_Build_BB/wwb6/build/cmake_install.cmake:48 (file):
 file INSTALL cannot read symlink
  "C:/jenkins/trial/workspace/WWB6-6.13.0/wwb6-Build-Pilot-Windows/wwb6/wwb6/HelpFiles"
to duplicate at
  "C:/jenkins/trial/workspace/WWB6-6.13.0/wwb6-Build-Pilot-Windows/wwb6/build/_CPack_Packages/win64/NSIS/WWB6 Setup/./Help".

make文件中的相关行是:

file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/./Help" TYPE DIRECTORY FILES "C:/jenkins/trial/workspace/WWB6-6.13.0/wwb-Pilot_Build_BB/wwb6/wwb6/HelpFiles/")

目的是将HelpFiles目录的内容复制到工作空间中的新目录“ Help”中。在这种情况下,HelpFiles目录是到源存储库中另一个目录的符号链接:

Directory of C:\jenkins\trial\workspace\WWB6-6.13.0\wwb6-Build-Pilot-Windows\wwb6\wwb6
05/17/2019  03:09 PM    <SYMLINKD>     HelpFiles [..\helpwwb6]

从命令行遍历此符号链接可以正常工作:

C:\jenkins\trial\workspace\WWB6-6.13.0\wwb6-Build-Pilot-Windows\wwb6\wwb6>cd HelpFiles
C:\jenkins\trial\workspace\WWB6-6.13.0\wwb6-Build-Pilot-Windows\wwb6\wwb6\HelpFiles>

有人知道解决此问题的方法吗?我们正在运行的CMake版本是3.12.0。

1 个答案:

答案 0 :(得分:0)

幸运的是,有一个简单的解决方法(尽管不是很优雅):用CMakeLists文件中的实际路径替换符号链接:

install ( DIRECTORY ${CMAKE_SOURCE_DIR}/../helpwwb6/
      DESTINATION ${BINARY_INSTALL_LOCATION}/Help
      COMPONENT Runtime
      PATTERN ".svn" EXCLUDE
      PATTERN ".git" EXCLUDE
    )

宁愿看到CMake与符号链接一起工作。