我正在阅读我能找到的所有教程,而它们基本上只是说
option(<option_variable> "help string describing option" [initial value])
将其设置为ON或OFF。我想知道的是,如果它是<variable>
,那么为什么只能将其设置为ON或OFF?为什么不5?或者其他的东西”?它是BOOLEAN类型变量吗?到底是什么另外,是否应该将option()
代码中指定的变量声明为“预先”在其他位置?还是以前从未声明过的全新的新鲜变量?
答案 0 :(得分:0)
在CMake option()
中,命令与BOOLEAN类型的“选项”有关,可由用户设置。呼吁
option(<option_variable> "help string describing option" [initial value])
等同于呼叫
set(<option_variable> <initial_value> CACHE BOOLEAN "help string describing option")
其他类型的“选项”包括PATH,FILEPATH和STRING,有关更多信息,请参见set(CACHE)文档。类型主要影响CMake GUI中的选择器对话框。因此,对于option
,它将是具有ON
和OFF
值的简单选择器。
对option
的调用可以视为对变量的赋值。但是,如果用户设置此变量(通过-D
可执行文件的cmake
选项或通过CMake GUI),则将保留用户指定的值。
用法示例:
option(USE_FOO "Whether to use FOO functionality" OFF)
# ...
if(USE_FOO)
# User set the option to ON. Process this setting.
else()
# User set the option to OFF or didn't set it at all. Process this setting.
endif()