我已经看到了在Cmake中设置/使用Cache变量的不同方法。标准是什么?
""
为缓存变量设置空字符串()有什么意义?
例
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()
虽然if(NVTX_ROOT_DIR)
是假的,即使变量是没有设置,宣告参数没有设置它的值是不可能的。因此,将空字符串作为默认值是一个逻辑选择,因为它可以使用simpleif(NVTX_ROOT_DIR)
来检查是否缺少参数设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句