【发布时间】:2020-05-09 01:25:51
【问题描述】:
我已经看到了在 Cmake 中设置/使用缓存变量的不同方法。 标准是什么?
为缓存变量设置一个空字符串 ("") 有什么意义?
例子
set(NVTX_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA NVTX")
【问题讨论】:
标签: cmake cmake-language
我已经看到了在 Cmake 中设置/使用缓存变量的不同方法。 标准是什么?
为缓存变量设置一个空字符串 ("") 有什么意义?
例子
set(NVTX_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA NVTX")
【问题讨论】:
标签: cmake cmake-language
为缓存变量设置一个空字符串(“”)有什么意义?
这不仅仅是设置 CACHE 变量的值。
命令流set(CACHE) 通常执行两件事:
CACHE 变量的空值可能意味着此变量表示的参数未设置。根据使用它的项目,这可以解释为:
在 CMake 代码中检查参数可以用简单的if(VAR) 来实现:
if(NVTX_ROOT_DIR)
# The parameter is set
else()
# The parameter is not set
endif()
虽然if(NVTX_ROOT_DIR) 为假,即使变量 未设置,但如果不设置其值,则无法声明该参数。所以空字符串作为默认值是一个合理的选择,可以使用简单的if(NVTX_ROOT_DIR) 来检查参数设置是否缺失。
【讨论】: