D. *_*lex 4 variables cmake defined
我需要指定一些变量并存在于环境中。如果它不存在,则需要停止构建。
例子
if ( "${VARMUSTEXIST}" STREQUAL "ON" )
message(STATUS is ON)
elif ("${VARMUSTEXIST}" STREQUAL "OFF")
message(STATUS is OFF)
endif()
Run Code Online (Sandbox Code Playgroud)
我不想if (defined VARMUSTEXIST)在脚本中随处放置。在 bash 中,有一个“set -u”选项。
一些初步的观点:
if ( "${VARMUSTEXIST}" STREQUAL "ON" ) [...] elif(AGAIN LONG EXPRESSION) [...] endif()if (VARMUSTEXIST) [...] else() [...] endif()if (DEFINED VARMUSTEXIST)需要DEFINED大写。$ENV{VARIABLE_NAME}对于环境变量,您将执行以下操作:
if(NOT DEFINED ENV{VARMUSTEXIST})
message(FATAL_ERROR "You must set VARMUSTEXIST environment variable")
endif()
Run Code Online (Sandbox Code Playgroud)你说:
我不想
if (defined VARMUSTEXIST)在脚本中到处放置
我不清楚:对于每个变量,您只需要检查一次,可能在主 CMakeLists.txt 中。当然,您需要添加NOT:if (NOT DEFINED VARMUSTEXIST) [stop]
如果您可以更精确地解决您的问题,我们可以设计一个宏来检查是否定义了一个或一组变量。