ZhiBing's blog(码上看世界) ZhiBing's blog(码上看世界)
首页
  • Linux工具链

    • shell命令
  • 构建

    • CMake
    • Makefile
  • 版本管理

    • Git
    • Github
  • IDE及工具

    • vscode
    • CLion
  • 设计模式

    • 设计原则
  • 编程语言

    • C++
    • Go
    • Python
    • Shell
  • 调试

    • gdb
  • 开发者测试

    • gtest
  • 系统支撑

    • 操作系统
  • 性能优化

    • 编译优化选项
    • perf
    • valgrind
  • 容器

    • Docker
  • 微服务

    • Rancher
  • 其他
  • 随笔
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

ZhiBing Zheng

时间会回答成长
首页
  • Linux工具链

    • shell命令
  • 构建

    • CMake
    • Makefile
  • 版本管理

    • Git
    • Github
  • IDE及工具

    • vscode
    • CLion
  • 设计模式

    • 设计原则
  • 编程语言

    • C++
    • Go
    • Python
    • Shell
  • 调试

    • gdb
  • 开发者测试

    • gtest
  • 系统支撑

    • 操作系统
  • 性能优化

    • 编译优化选项
    • perf
    • valgrind
  • 容器

    • Docker
  • 微服务

    • Rancher
  • 其他
  • 随笔
  • 友情链接
收藏
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • Linux工具链

  • 构建

    • CMake

      • CMake Day 1 —— 初识 CMake
      • CMake Day 2 —— 指定 C/C++的标准
      • CMake Day 3 —— 编译二进制或库
      • CMake Day 4 —— 设置头文件路径和链接库
      • CMake Day 5 —— 从 CMakeLists.txt 传递变量到源文件
      • CMake Day 6 —— 安装规则(install rules)
      • CMake Day 7 —— option
      • CMake Day 8 —— 编译成一个库(利用OBJECT)
    • Makefile

  • 版本管理

  • IDE及工具

  • 基础领域
  • 构建
  • CMake
zhengzhibing
2022-11-06

CMake Day 7 —— option

# CMake Day 7 —— option

option() 可以定义一个简单的bool变量。

语法:

option(<variable> "<help_text>" [value])
1
  • variable:变量名
  • help_text:帮助信息
  • 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}")
1
2
3
4
5

结果如下:

FLAG: ON
FLAG: ON
1
2

我们可以通过cmake . -D<variable>=<value>的方式改变它的值。

option(FLAG "compile flag" ON)
message("FLAG: ${FLAG}")
1
2

执行:

cmake . -DFLAG=OFF
1

结果如下:

FLAG: OFF
1

值得注意的是,在没有清除cmake缓存文件时,如果手动改了CMakeLists.txt中**option()**的值,实际上是不生效的,因为选项的值被保存到缓存中去了。通过cmake . -D<variable>=<value>的方式没有这个问题。

上次更新: 2022/11/19, 20:31:36
CMake Day 6 —— 安装规则(install rules)
CMake Day 8 —— 编译成一个库(利用OBJECT)

← CMake Day 6 —— 安装规则(install rules) CMake Day 8 —— 编译成一个库(利用OBJECT)→

最近更新
01
HPE gen10 plus 安装ESXI 7
06-12
02
ESXI 7安装黑群晖
06-12
03
ESXI 7安装win10
06-12
更多文章>
Theme by Vdoing | Copyright © 2022-2024 ZhBing Zheng | 粤ICP备2022062743号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式