author:
name: zhengzhibing
link: https://azmddy.top
option() 可以定义一个简单的bool变量。
语法:
option( "" [value])
如果没有设置value
,默认是OFF,value
除了ON之外,都是OFF。
如果variable
已经被设置值了,后续在**option()**就对它不起作用了。
变量的用法示例:
option(FLAG "compile flag" ON)
message("FLAG: ${FLAG}")
# 已经被设置成ON,后续在使用option()不起作用
option(FLAG "compile flag" OFF)
message("FLAG: ${FLAG}")
结果如下:
FLAG: ON
FLAG: ON
我们可以通过cmake . -D
的方式改变它的值。
option(FLAG "compile flag" ON)
message("FLAG: ${FLAG}")
执行:
cmake . -DFLAG=OFF
结果如下:
FLAG: OFF
值得注意的是,在没有清除cmake缓存文件时,如果手动改了CMakeLists.txt中**option()**的值,实际上是不生效的,因为选项的值被保存到缓存中去了。通过cmake . -D
的方式没有这个问题。