假设有人要在CMake中使用环境变量MY_VAR
。只需使用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识别环境变量中的转义字符?是否有关于此问题的最佳实践?我正在macOS上运行CMake,但希望有一个独立于平台的解决方案...
上下文:Cmake用于在安装之前配置C++
框架。 MY_VAR
包含用户提供的路径,该路径在Makefile中用于(a)将CMAKE_PREFIX_PATH
设置,而(b)由Cmake设置为configure_file
用于python脚本的配置文件。是框架要求的。