замена create_symlink в windows - PullRequest
       46

замена create_symlink в windows

0 голосов
/ 16 апреля 2020

В настоящее время я использую WSL для разработки проекта, который является оригинальным в linux проекте. Я заметил, что create_symlink в cmake может вызвать проблемы в windows.

  1. в linux: хорошо, конечно.
  2. в WSL: кажется хорошо, можно увидеть символ c ссылка по типу ls -al и может cd к папке. Допустим, папка A
  3. использует windows OS для проверки папки A, это просто файл в файловом браузере, который не может получить к нему доступ или войти в папку.

Также можно найти некоторое обсуждение в inte rnet, но я хотел бы знать, есть ли что-нибудь, что является хорошей заменой для create_symlink в windows?

заранее спасибо.

1 Ответ

0 голосов
/ 16 апреля 2020

Начиная с CMake 3.13 ( Замечания к выпуску ), это должно работать и на Windows.

Если вам требуется поддержка более старых версий CMake, вы можете использовать команду mklink из командной строки на Windows. Но учтите, что команда mklink ожидает пути Windows (разделенные \), поэтому вам необходимо преобразовать пути CMake в собственные пути. Смотрите следующий фрагмент:

if (UNIX)
    execute_process(COMMAND "${CMAKE_COMMAND}" -E create_symlink "${_sourceDirectory}" "${_destinationDirectory}")
else()
    file(TO_NATIVE_PATH "${_destinationDirectory}" _dstDir)
    file(TO_NATIVE_PATH "${_sourceDirectory}" _srcDir)
    execute_process(COMMAND cmd.exe /c mklink /J "${_dstDir}" "${_srcDir}")
endif()
...