linux构建系统工具

时间:2012-03-24 06:40:29

标签: linux cross-compiling build-system ccache

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

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

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

您是否了解任何满足(至少某些)这些要求的工具(或工具组)?目前我倾向于gyp +忍者。但语法不是很友好,没有文档。所以这是一个艰难的卖点。

3 个答案:

答案 0 :(得分:1)

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

来自网站:

  

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

答案 1 :(得分:1)

至于C ++,一个非常好的构建系统是CMake

答案 2 :(得分:0)

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