CMake 设置开关选项

简介: CMake 设置开关选项用于启用或弃用某一部分功能

CMake 设置开关选项

有时候为了方便调试,方便条件式的构建工程项目,则可在 CMakeLists.txt 文件中添加开开关选项,并将一系列如自定义的宏定义,和构建或者不构建的工程写入其中,这样仅通过修改 CMakeLists.txt 文件中的指定开关选项,则可 cmake 构建 便捷开关管理一些列的自定义选项。

常使用 option 命令,它的语法如下:

option(<variable> "<help_text>" [value])

option 中的三个参数,

  • <variable> 表示变量名
  • "<help_text>" 表示帮助信息,如解释这个自定义的变量的用途
  • [value] 则表示此变量的值,如设置为 ON 或者 OFF

注:对于为 [value] 设置的所有非 ON 的值均被视作 OFF 来处理。

示例
如创建选项 PRINT_INFO,在选项启用时用输出消息并添加预处理宏定义 PRINT_INFO ,这样在代码中我们就可以通过判断宏定义来开关我们的调试打印。

CMakeLists.txt 中

option(PRINT_INFO "print debug info" ON)

if (PRINT_INFO)
    message("option PRINT_INFO is on")
    add_definitions(-DPRINT_INFO)  
endif()

代码中

#ifdef PRINT_INFO
#define LOG(info) std::cout << "[" << __func__ << "]:" << __LINE__ << info << std::endl
#else
#define LOG(info)
#endif

void MyFunction(MyStruct* stru)
{
   
    if (!stru)
    {
   
        LOG("stru is nullptr.");
        return;
    }
    // ...
}

这样就可以通过 CMakeLists.txt 文件中 PRINT_INFO 选项的 ONOFF 来控制 C++ 的条件编译。


参考链接

目录
相关文章
|
7月前
|
存储
201403-3 命令行选项
201403-3 命令行选项
|
7月前
|
Unix 编译器 开发工具
Cmake 命令行参数:探索 Cmake 的设置和配置选项
Cmake 命令行参数:探索 Cmake 的设置和配置选项
606 1
|
存储 缓存 监控
启动选项和系统变量
启动选项和系统变量
150 0
|
NoSQL 编译器 C语言
GCC的使用和一些常用选项
GCC的使用和一些常用选项
115 0
|
C++ Windows
设置软件的默认打开方式
设置软件的默认打开方式
设置软件的默认打开方式
|
Arthas 安全 测试技术
Options 全局选项的查看和设置 | 学习笔记
快速学习 Options 全局选项的查看和设置
Options 全局选项的查看和设置 | 学习笔记
SwiftUI—使用Toggle开关控件开启或取消某个选项
SwiftUI—使用Toggle开关控件开启或取消某个选项
493 0
SwiftUI—使用Toggle开关控件开启或取消某个选项
关于PhpStorm设置点击编辑文件自动定位源文件
关于PhpStorm设置点击编辑文件自动定位源文件
167 0
关于PhpStorm设置点击编辑文件自动定位源文件
【PhpStorm】取消参数前的类型显示
【PhpStorm】取消参数前的类型显示
177 0
【PhpStorm】取消参数前的类型显示
|
Python
如何优雅地解析命令行选项(下)
随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定、改变程序的行为;而不必一层层找到相应的配置文件,然后还要定位到相应内容、修改、保存、退出……
278 0