就像一般的程序设计一样,在设计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不会报错。

本文介绍如何在CMake中使用CACHE属性STRINGS来限制变量的可选值范围,通过实例演示如何设置日志输出级别的选项,以及如何在cmake-gui中为用户提供输入提示。
4005

被折叠的 条评论
为什么被折叠?



