我已经看到在 Cmake 中设置/使用缓存变量的不同方法。标准是什么?
将空字符串 ( ""
) 设置为缓存变量有什么意义?
例子
set(NVTX_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA NVTX")
我已经看到在 Cmake 中设置/使用缓存变量的不同方法。标准是什么?
将空字符串 ( ""
) 设置为缓存变量有什么意义?
例子
set(NVTX_ROOT_DIR "" CACHE PATH "Folder contains NVIDIA NVTX")
将空字符串 ("") 设置为缓存变量有什么意义?
它不仅仅是为 CACHE 变量设置值。
命令流set(CACHE)
通常执行两件事:
CACHE 变量的空值可能意味着此变量表示的参数未设置。根据使用它的项目,这可以解释为:
在 CMake 代码检查中,参数可以通过简单的方式实现if(VAR)
:
if(NVTX_ROOT_DIR)
# The parameter is set
else()
# The parameter is not set
endif()
Whileif(NVTX_ROOT_DIR)
为假,即使变量未设置,也无法在不设置其值的情况下声明参数。因此,空字符串作为默认值是能够使用 simpleif(NVTX_ROOT_DIR)
来检查参数设置是否缺失的合理选择。