3

我们的项目变得相当大,我们的构建系统不再扩展。我们正在linux机器上进行跨平台开发。我们有太多的平台可以构建,甚至更多的构建选项。我们认为我们需要升级基于 Makefile 的构建环境。

这些是要求(在理想世界中):

  • 快速(所以没有 libtool)
  • 可以进行并行构建
  • 交叉编译友好
  • Ccache 集成
  • 如果满足某些条件,增量构建是否会短路(如果 a、b、c 选项未更改则短路,如果更改则重建)
  • 易于编写脚本(python 集成将是完美的)
  • 用户友好的语法
  • 分布式系统。模块可以相互分开开发
  • 可以构建第三方库(使用自动工具、cmake ..)
  • 可以跟踪模块之间的依赖关系(但足够灵活,以便模块可以被替代的外部模块替换)。
  • 内置单元测试支持
  • 大型二进制文件可以与版本控制分开存储,如果需要可以下载
  • 可以跟踪开源许可证
  • git集成

您是否知道可以满足(至少部分)这些要求的任何工具(或工具组)?目前我倾向于gyp+ninja。但是语法不是很友好,也没有文档。所以这是一个艰难的销售。

4

3 回答 3

1

就 C++ 而言,一个非常好的构建系统是CMake

于 2012-06-10T09:31:53.267 回答
1

你提到了 Python 集成,所以SCons听起来很合适。它完全基于 Python(构建脚本实际上是 Python 脚本),非常灵活,并且满足您的许多其他要求。

从网站:

SCons 是一种开源软件构建工具,即下一代构建工具。将 SCons 视为经典 Make 实用程序的改进的跨平台替代品,具有类似于 autoconf/automake 和编译器缓存(如 ccache)的集成功能。简而言之,SCons 是一种更简单、更可靠、更快速的软件构建方式。

于 2012-03-24T06:44:47.067 回答
0

ninja 不应该由最终用户使用,而是由其他一些高级构建工具(如 CMake)使用。这确实是一个不错的选择,尤其是对于大型跨平台项目。它没有内置的 python 支持,但你很少或从不需要使用 CMake 的外部脚本 - 它有用于大多数常见任务的工具。

于 2012-10-10T11:00:32.020 回答