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++ 的条件编译。


参考链接

目录
相关文章
|
6月前
|
存储
201403-3 命令行选项
201403-3 命令行选项
|
6月前
|
Unix 编译器 开发工具
Cmake 命令行参数:探索 Cmake 的设置和配置选项
Cmake 命令行参数:探索 Cmake 的设置和配置选项
367 1
|
存储 缓存 监控
启动选项和系统变量
启动选项和系统变量
145 0
|
NoSQL 编译器 C语言
GCC的使用和一些常用选项
GCC的使用和一些常用选项
108 0
|
编解码 测试技术 vr&ar
ffmpeg命令选项解释
ffmpeg作为媒体文件处理软件,基本用法如下: ffmpeg -i INPUTfile [OPTIONS] OUTPUTfile 输入输出文件通常就是待处理的多媒体文件了。可以是纯粹的音频文件,纯粹的视频文件,或者混合的。
1682 0
|
Python
如何优雅地解析命令行选项(下)
随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定、改变程序的行为;而不必一层层找到相应的配置文件,然后还要定位到相应内容、修改、保存、退出……
273 0
|
Python
如何优雅地解析命令行选项(上)
随着我们编程经验的增长,对命令行的熟悉程度日渐加深,想来很多人会渐渐地体会到使用命令行带来的高效率。 自然而然地,我们自己写的很多程序(或者干脆就是脚本),也希望能够像原生命令和其他程序一样,通过运行时输入的参数就可以设定、改变程序的行为;而不必一层层找到相应的配置文件,然后还要定位到相应内容、修改、保存、退出……
157 0
|
C语言 C++ 编译器