就像一般的程序设计一样,在设计cmake脚本时有时我们希望一个变量的值限定在一个范围内。如下图,cmake-gui中用户可以选择输出日志的级别,肯定我们不希望用户乱输一气。
这时就要用到CACHE 的属性STRINGS
# 日志输出级别
set(LOG_LEVEL FL_LOG_DEBUG CACHE STRING "application log level")
# 设置CACHE 的属性STRINGS,指定LOG_LEVEL 可选的值范围
set_property(CACHE LOG_LEVEL PROPERTY STRINGS FL_LOG_NO FL_LOG_ERROR FL_LOG_WARN FL_LOG_INFO FL_LOG_DEBUG)
关于CACHE 的属性STRINGS参见cmake官方手册说明:《Property of CACHE : STRINGS》,如下图
注意根据手册说明,cmake并不限定用户提供的值必须在STRINGS的范围,这个属性只是用来在cmake-gui界面中提供输入提示。如果在命令行执行cmake -DLOG_LEVEL=HELLO
为LOG_LEVEL 指定任意值,cmake不会报错。