【发布时间】:2016-09-21 09:43:40
【问题描述】:
我需要指定一些变量并存在于环境中。 如果它不存在需要停止构建。
例子
if ( "${VARMUSTEXIST}" STREQUAL "ON" )
message(STATUS is ON)
elif ("${VARMUSTEXIST}" STREQUAL "OFF")
message(STATUS is OFF)
endif()
我不想在脚本的任何地方都添加if (defined VARMUSTEXIST)。
在 bash 中有一个“set -u”选项。
【问题讨论】:
-
取消引用时,CMake 将所有未定义的变量视为具有空值。据我所知,没有办法影响这种行为。顺便说一句,如果没有定义变量,简单的
if(VARMUSTEXIST)将被视为false。相同的条件可用于在“ON”和“OFF”之间进行选择 - 这些字符串对于if 命令具有特殊含义。