Как я могу скопировать файлы, содержащие специальные символы в CMake, если copy_if_different не работает? - PullRequest
0 голосов
/ 07 августа 2020

Я хочу скопировать файлы / папки, содержащие специальные символы для дальнейшего использования в модульных тестах, и хочу, чтобы файлы перезаписывались при изменении.

ОС - Windows, ОС Стандартный язык - English, версия CMake - 3.18.0, генератор - Ninja

Это соответствующее содержимое CMakeLists.txt

...
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/data/"
    COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_SOURCE_DIR}/data/abcüßöϴABC.txt" "${CMAKE_CURRENT_BINARY_DIR}/data/abcüßöϴABC.txt"
...

Это результат cmake при работе в CMD:

...
Error copying file (if different) from "D:/source_folder/data/abcÔö£ÔòØÔö£ãÆÔö£├é┬ñÔöñABC.txt" to "D:/binary_folder/data/abcÔö£ÔòØÔö£ãÆÔö£├é┬ñÔöñABC.txt".
Batch file failed at line 28 with errorcode 1

Согласно Notepad ++, CMakeLists.txt закодирован в UTF-8 и имеет Windows окончания строк (CR LF).

Использование ${CMAKE_COMMAND} -E copy_directory I не увидел никаких изменений в целевом файле, когда исходный файл был обновлен.

Я обнаружил Проблема относительно этого c, но я не уверен, смогу ли я обойти проблема с использованием разных cmake-команд.

...