Предположим, кто-то хочет использовать переменную окружения MY_VAR
в CMake. Это может быть достигнуто простым использованием set(myVar $ENV{MY_VAR})
.
Но что, если MY_VAR
содержит управляющие символы, скажем MY_VAR="/path/with/escaped\ chars"
? CMake обрабатывает \
с последующим пробелом как два отдельных символа вместо одного символа (пробел). Другими словами,
# CMakeLists.txt
set(myVar $ENV{MY_VAR})
message(${myVar})
печатает /path/with/escaped\ chars
, а не /path/with/escaped chars
. Как заставить CMake распознавать escape-символы в переменных окружения? Есть ли лучшие рекомендации по этой проблеме? Я использую CMake на macOS, но надеюсь, что существует независимое от платформы решение ...
Контекст: Cmake используется длянастроить C++
рамки перед установкой. MY_VAR
содержит путь, предоставленный пользователем, который используется (a) в Makefile для установки CMAKE_PREFIX_PATH
и (b) в Cmake на configure_file
файл конфигурации для сценария Python, который требуется платформой.