CMake扩展环境变量具有自定义文件的默认值

时间:2018-12-11 11:28:51

标签: cmake

使用CMake,我正在尝试在自定义文件中扩展系统环境变量值。 我执行以下命令:

configure_file(config.cnf.in config.cnf)

config.cnf.in 内容:

[options]
some_value1 = $ENV{SYSTEM_ENV_VAR}

问题是: 如果未定义 SYSTEM_ENV_VAR 变量,是否可以设置默认值?

我试图这样做:

   some_value1 = $ENV{SYSTEM_ENV_VAR:-defaultValue}

并出现cmake错误: 变量名称“ SYSTEM_ENV_VAR”中的无效字符(':')

我在文档中找不到答案: https://cmake.org/cmake/help/v3.2/command/configure_file.html

1 个答案:

答案 0 :(得分:1)

您不能为变量设置默认值,但是可以将环境变量存储在普通的cmake变量中,如果未设置,请定义默认值。 我对此进行了测试:

set(EXIST $ENV{HOME})
set(NOT_EXIST $ENV{NOT_EXIST})

if(EXIST)
    message("Variable EXIST exist")
else()
    message("Variable EXIST DOES NOT exist, setting default value")
    set(EXIST "Default value")
endif()

if(NOT_EXIST)
    message("Variable NOT_EXIST exist")
else()
    message("Variable NOT_EXIST DOES NOT exist, setting default value")
    set(NOT_EXIST "Default value")
endif()

message ("EXIST: ${EXIST}")
message ("NOT_EXIST: ${NOT_EXIST}")

我的输出是

Variable EXIST exist
Variable NOT_EXIST DOES NOT exist, setting default value
EXIST: /home/user
NOT_EXIST: Default value