CMake не может переходить по символическим ссылкам - PullRequest
0 голосов
/ 20 мая 2019

Обновление: выясняется, что проблема связана не с агентом Дженкинса, а с CMake. Это легко воспроизвести из командной строки. Здесь уже сообщалось однажды: CMake не может следовать символическим ссылкам в 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 в новый каталог «Справка» в рабочей области. Каталог 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 голосов
/ 28 мая 2019

К счастью, для этого есть простой (хотя и не элегантный) обходной путь: замените символическую ссылку реальным путем в файле CMakeLists:

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

Хотелось бы, чтобы CMake работал с символическими ссылками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...