c++ - 如何使用 cmake 管理多个构建目标配置
问题描述
我正在尝试思考如何设计一个新的项目构建系统。
我想使用 CMake 为 Windows 和 Linux 编译。我想要发布和调试版本,这非常简单。
问题是我想在接下来的几年里为多个硬件项目部署这个软件。这意味着我将有预处理器定义来打开/关闭和/或更改我的 C++ 程序中的功能。大部分代码将保持不变。我还想链接配置特定的库。当前的遗留项目使用带有定义列表的标题,然后链接所有可能的项目依赖项。
一个示例配置头:
// projects.h
//#define project1
//#define project2
#define project3
这意味着要更改硬件/项目配置,您必须编辑此文件以确保选择了正确的硬件配置。
我想要做的是为每个项目进行配置,也可以配置为发布或调试构建。
关于如何在 CMake 中更优化地处理这个问题有什么建议吗?
解决方案
我会尽量让它尽可能简单。
如果您现在使用 CMake,您可以立即使用机器来确定您在哪个平台上运行。您可以使用它来设置条件构建标志和预处理器定义来驱动构建过程的其余部分。
如果你脱离了 CMake,但仍想留在元构建系统的世界中,你可以看看Waf,它比 CMake 更加模块化,并且是用 Python 编写的,并且具有声明式和命令式语法,因此是未来的证明。
推荐阅读
- node.js - 连接到旧 API 时出现“tls_process_ske_dhe:dh key too small”错误
- c - 将整数值从 arduino uno 发送到 nodemcu
- react-native - 图像链接中的变量
- r - 在 ubuntu 18.04 上安装 rgdal
- python - 尝试在excel中导出电子邮件正文
- jquery - 单击表格行触发复选框事件,其下方有 tr 行
- php - 使用非自动生成的 ID 链接两个实体
- c++ - 枚举基本类型的模板优化
- c# - 想知道如何使用现有代码 (C#) 将新列添加到 CSV 文件
- matlab - 在 Matlab 中移植 SVG 组合标准的问题