我正在尝试思考如何设计新的项目构建系统。
我想使用CMake为Windows和Linux进行编译。我想要发布和调试版本,这很简单。
问题是我将在接下来的几年中将这个软件部署到多个硬件项目中。这意味着我将拥有预处理器定义来打开/关闭和/或更改C ++程序中的功能。大部分代码将保持不变。我还将要链接配置特定的库。当前的旧项目使用带有定义列表的标头,然后链接所有可能的项目依赖项。
示例配置头:
// projects.h
//#define project1
//#define project2
#define project3
这意味着要更改硬件/项目配置,必须编辑此文件以确保选择了正确的硬件配置。
我要做的是为每个项目都有一个配置,也可以为发布或调试版本进行配置。
关于如何在CMake中更好地处理此问题,是否有任何建议?
答案 0 :(得分:0)
我会尝试使其尽可能长的简单。
如果您现在使用CMake,则可以使用开箱即用的设备来确定要在哪个平台上运行。您可以使用它来设置条件构建标志和预处理器定义,以驱动其余的构建过程。
如果您从CMake成长而来,但仍然想留在元构建系统的世界里,可以考虑使用Waf,它比CMake更具模块化,并且是用Python编写的,具有声明式和命令式语法,所以是一种未来的证明。