使用CMake,我尝试在自定义文件中扩展环境变量值。 我执行以下操作
configure_file(config.cnf.in config.cnf)
我不使用@ONLY属性。
config.cnf.in
内容:
[options]
some_value1 = @VAR_FROM_CMAKE@ // ok
some_value2 = ${SYSTEM_ENV_VAR} // empty result
some_value2 = ${VAR_FROM_CMAKE} // ok -- from CMake?!
@VAR_FROM_CMAKE@
成功展开,但是
${SYSTEM_ENV_VAR}
不是-空值。
我很困惑-@VAR@
和${VAR}
-仅导致CMAKE变量,而不导致系统env?
所以我的问题是: 是否可以使用CMake在自定义文件中扩展系统环境变量?
答案 0 :(得分:2)
您没有正确评估系统变量:正确的命令是$ENV{SYSTEM_ENV_VAR}
(在这里查看:https://cmake.org/cmake/help/latest/variable/ENV.html)
[options]
some_value1 = @VAR_FROM_CMAKE@
some_value2 = $ENV{SYSTEM_ENV_VAR}
some_value2 = ${VAR_FROM_CMAKE}