【发布时间】:2019-12-26 02:59:41
【问题描述】:
我正在思考如何设计一个新的项目构建系统。
我想使用 CMake 为 Windows 和 Linux 编译。我想要发布和调试版本,这非常简单。
问题是我希望在接下来的几年中为多个硬件项目部署这个软件。这意味着我将有预处理器定义来打开/关闭和/或更改我的 C++ 程序中的功能。大部分代码将保持不变。我还想链接配置特定的库。当前的遗留项目使用带有定义列表的标题,然后链接所有可能的项目依赖项。
一个示例配置头:
// projects.h
//#define project1
//#define project2
#define project3
这意味着要更改硬件/项目配置,您必须编辑此文件以确保选择了正确的硬件配置。
我想要做的是为每个项目配置一个配置,也可以配置为发布或调试构建。
对于如何在 CMake 中更优化地处理这个问题有什么建议吗?
【问题讨论】:
-
#cmakedefine 是否适合您?这样你就可以告诉 CMake 你想要构建哪个项目配置,它会相应地定义常量。