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