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


参考链接

目录
相关文章
|
2月前
|
Unix 编译器 开发工具
Cmake 命令行参数:探索 Cmake 的设置和配置选项
Cmake 命令行参数:探索 Cmake 的设置和配置选项
57 1
|
NoSQL 编译器 C语言
GCC的使用和一些常用选项
GCC的使用和一些常用选项
|
存储 缓存 监控
启动选项和系统变量
启动选项和系统变量
103 0
|
C++
201403-3 命令行选项
201403-3 命令行选项
72 0
201403-3 命令行选项
|
C语言 C++ 编译器
|
网络安全 Python
setup 命令中防火墙配置选项无法打开
故障提示 1.1 如何让setup 命令中防火墙配置生效 1.1.1 CentOS系统找不到setup命令工具的解决方法 yum -y install setuptool   #安装setup命令工具 yum -y install ntsysv   #安装setup工...
1282 0