2012-03-24 100 views
3

我们的项目非常大,我们的构建系统不再扩展。我们正在linux机器上进行跨平台开发。我们有太多的平台需要构建,甚至有更多的构建选项。我们相信我们需要升级基于Makefile的构建环境。linux构建系统工具

这些要求(在一个理想的世界):

  • 快速(所以没有libtool的)
  • 能做到并行编译
  • 交叉编译友好
  • CCACHE整合
  • 是否增量如果满足某些条件,则建立并可以短路(如果a,b,c选项没有改变,则重新短路,如果它们重建则短路)
  • 轻松脚本(python集成将是完美的)
  • 用户友好的语法
  • 分布式系统。模块可以彼此分开开发
  • 可以建立第三方库(使用自动工具,cmake ..)
  • 可以跟踪模块之间的依赖关系(但足够灵活,以便模块可以被其他外部替换)。
  • 内置的单元测试支持
  • 大型二进制文件可以分别从版本控制存储,如果需要
  • 能保持开源的轨迹可以下载许可
  • git的整合

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

+0

为什么立即关闭libtool?你有没有对现代版本进行基准测试,并确认其不足? – 2012-03-24 14:41:45

+0

大约6个月前,我已将我的一个项目(〜4K文件)移至gyp。它以前建立在configure/libtool之上。构建时间从20年代中期到10年(以分钟为单位)。除非去年大幅度改进,否则我支持我的发言。顺便说一句,我的另一台服务器上有固态硬盘的时间增量较低。 – 2012-03-26 21:56:27

回答

1

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

从网站:

使用SCons是一个开放源码软件建设的工具,也就是说,下一代构建工具。可以将SCons看作改进的跨平台替代品,它具有类似于autoconf/automake和编译器缓存(如ccache)的集成功能的经典Make实用程序。总之,SCons是构建软件的一种更简单,更可靠,更快捷的方式。

1

至于C++而言,一个很好的构建系统是CMake

0

忍者不应该被最终用户使用,而应该由像CMake这样的其他高级构建工具来使用。这确实是一个很好的选择,特别是对于大型和跨平台项目。它没有内置的python支持,但很少或从不需要使用CMake的外部脚本 - 它具有用于大多数常见任务的工具。