一尘不染

C ++构建系统

linux

我将很快开始一个新的C++项目(它可能也包含一些C组件),并且我正在寻找一个现代的,具有工业实力的(即非beta)构建系统。该软件将由3-5个开发人员在3-5年内创建,并将在Linux上运行(稍后
可能 会支持Mac OS X和Windows
)。我正在寻找一种make比例如具有更好的可理解性,易用性和可维护性,但仍足以处理复杂项目的功能。首选开源软件。

我开始寻找到Boost.BuildCMakeMavenSCons到目前为止,喜欢的功能和所有这些概念,但我缺乏经验,使一个大型项目的决定。


阅读 439

收藏
2020-06-03

共1个答案

一尘不染

我已经使用SCons一年多了,真的很棒。这是一个完整的构建系统,而不是构建脚本生成器。

它是基于Python的,您可以用Python编写SConstruct和SConscript(与Makefile等效),它允许您调用任何可能需要的可用库,以及Makefile授权的更清晰的语法。

由于Python是跨平台的,SCons也是如此,因此没有问题。

它捆绑了很多目标:

  • 检测可用的二进制文件并自动将许多扩展名映射到正确的二进制文件
  • 尽管可以覆盖它,但它会根据操作系统检测对象/库的正确扩展名
  • 提供了诸如Move,Copy,Tar等常用操作(在构建后会延迟)的功能,并且您可以提供自己的python脚本并将其挂接
  • 开箱即用,但在每个级别都提供了许多自定义挂钩

它确实非常有效,甚至可以提出一些高级功能(例如,将最终处理的文件的哈希存储在sqlite db中而不是使用时间戳),即使您最终决定了策略。

它还提供了免费的依赖项循环检测(Makefiles绝对没有的功能),并且界面通常是更好/自动化的。

我说这很有效吗?好吧,它显然允许多个作业并行执行;)

而且它也是免费的,就像免费喝酒一样;)

我只能推荐它。

2020-06-03