首页 > 解决方案 > 如何使用 cmake 管理多个构建目标配置

问题描述

我正在尝试思考如何设计一个新的项目构建系统。
我想使用 CMake 为 Windows 和 Linux 编译。我想要发布和调试版本,这非常简单。

问题是我想在接下来的几年里为多个硬件项目部署这个软件。这意味着我将有预处理器定义来打开/关闭和/或更改我的 C++ 程序中的功能。大部分代码将保持不变。我还想链接配置特定的库。当前的遗留项目使用带有定义列表的标题,然后链接所有可能的项目依赖项。

一个示例配置头:

// projects.h

//#define project1
//#define project2
#define project3

这意味着要更改硬件/项目配置,您必须编辑此文件以确保选择了正确的硬件配置。
我想要做的是为每个项目进行配置,也可以配置为发布或调试构建。

关于如何在 CMake 中更优化地处理这个问题有什么建议吗?

标签: c++cmake

解决方案


我会尽量让它尽可能简单。

如果您现在使用 CMake,您可以立即使用机器来确定您在哪个平台上运行。您可以使用它来设置条件构建标志和预处理器定义来驱动构建过程的其余部分。

如果你脱离了 CMake,但仍想留在元构建系统的世界中,你可以看看Waf,它比 CMake 更加模块化,并且是用 Python 编写的,并且具有声明式和命令式语法,因此是未来的证明。


推荐阅读