cmake中怎么定义bool变量,并使用if进行判断
时间: 2024-10-13 12:07:19 浏览: 49
缓存变量的巧妙使用:CMake中缓存变量的深度指南
在CMake中,你可以使用`cmake`命令来定义布尔类型的变量。布尔变量通常用大写字母表示,例如`ENABLE_FEATURE`,并使用`SET`命令来设置其值。默认情况下,它会被认为是`OFF`(0或false)。如果你想将其设为`ON`(1或true),可以这样做:
```cmake
# 定义一个名为ENABLE_FEATURE的布尔变量,默认为关闭状态
SET(ENABLE_FEATURE OFF)
# 后续可以通过IF语句检查该变量的值
IF(ENABLE_FEATURE)
# 如果变量为ON,则执行这里的代码
MESSAGE("Feature is enabled")
ELSE()
# 变量为OFF,则执行这里的代码
MESSAGE("Feature is disabled")
ENDIF()
```
在`IF`条件语句中,CMake会根据`ENABLE_FEATURE`的值来选择执行哪部分代码。如果你想让用户通过命令行选项来动态设置这个变量,可以在添加选项时指定`BOOL`类型:
```cmake
# 用户可以通过-c或--enable-feature开关开启特征
ADD_EXECUTABLE(my_program main.cpp)
OPTION(ENABLE_FEATURE "Enable feature" FALSE)
```
然后在脚本中读取这个选项:
```cmake
# 从命令行参数获取用户设置
IF(${ENABLE_FEATURE})
SET(ENABLE_FEATURE ON)
ENDIF()
IF(ENABLE_FEATURE)
# ...
ENDIF()
```
阅读全文