Build 哪个构建系统对跨平台驱动程序、库和GUI构建具有最佳支持?

Build 哪个构建系统对跨平台驱动程序、库和GUI构建具有最佳支持?,build,makefile,multiplatform,Build,Makefile,Multiplatform,对于使用GNU和Microsoft工具链为所有主流操作系统生成驱动程序、库、命令行工具、GUI和操作系统安装包的100多万行多平台项目,构建系统的最佳选择是什么 源代码主要是C,带有Python、C**和GNU MaFag文件,还有一点C++和BASH。它主要驻留在一个存储库中,但我们将源代码推送到各个第三方,所有第三方都有自己的源代码存储库。保持快速构建也会引起一些兴趣,这可能涉及拆分项目 目前,我们混合使用GNU make、bash、python和Microsoft的DDKBUILD。主要问

对于使用GNU和Microsoft工具链为所有主流操作系统生成驱动程序、库、命令行工具、GUI和操作系统安装包的100多万行多平台项目,构建系统的最佳选择是什么

源代码主要是C,带有Python、C**和GNU MaFag文件,还有一点C++和BASH。它主要驻留在一个存储库中,但我们将源代码推送到各个第三方,所有第三方都有自己的源代码存储库。保持快速构建也会引起一些兴趣,这可能涉及拆分项目


目前,我们混合使用GNU make、bash、python和Microsoft的DDKBUILD。主要问题是,我们在make上维护一组复杂的脚本,并且更倾向于使用第三方(最好是开源)工具,而且cygwin在Windows上没有被证明是健壮的(例如,fork并不总是可能的),而且我们当前的构建系统没有构建或安装工具链,因此容易受到工具链版本更改的影响。

JetBrains TeamCity总体上运行良好,因此值得列入评估列表

ThoughtWorks Cruise也在同一空间。虽然它的v1,它来自一个稳定的,已经存在了一段时间

Team Foundation Server没有什么可以让你为你的情况数出来的,但是在盒子之外,我提到的另外两个可能是更多的MS商店中心。

作为一个一般性的评论,鉴于你的多样性,你肯定想尝试你想要使用的任何东西——仅仅因为某个东西被支持为方框上的勾号并不意味着它将适合你所寻找的东西。

Dickson

您的构建主要是单片的,还是希望单独构建一些库并将它们组装到更大的应用程序中?如果项目间的依赖关系很重要,那么您的选择很快就会受到限制。它做得很好,我认为有一些常春藤集成支持。从您所说的,听起来这不是绝对的需要,但可能有助于加快构建。我们已经看到许多团队有效地执行了这一策略

因为您正在研究跨平台(我假设是多台机器)构建,所以排除了Hudson以外的大多数开源工具

构建服务器比较矩阵由我们在Thoughtworks的朋友主持:


祝你好运。

你应该在你的备选方案清单上进行调查。CMake是一个元工具,即它为您选择的构建工具(GNU make、Visual Studio等)生成输入。我强烈推荐。

你可能想看看。它是基于Java构建的,因此可以在任何支持Java的平台上运行。您还可以在不同的机器上拥有多个构建代理,它们可以在不同的平台上执行不同的任务。Thoughtworks仍在构建它,因此有些功能还缺乏,但这可能是一个不错的选择,因为您正在寻找真正的跨平台功能。

我投票支持CMake,因为它是一个元构建工具,可以从零开始重写KDE4构建系统,并使KDE4现在成为一个甚至可以在WindowsCE上运行的跨平台桌面


CMake是将KDE4移植到地球上任何操作系统的运营商——通过使用相关的工具链为大约40个操作系统生成Makefile(或Windows案例中的vcprojs)

是一个用Python实现的跨平台构建系统。我们使用它在三个平台上构建代码。它可以自动检测构建工具,但也可以在构建脚本中放入任意Python代码。它还允许您将环境设置与项目结构的描述分开,这是在不同环境中重用buidl脚本的一个很好的特性。除了直接构建项目外,它还可以生成Visual Studio项目文件。

您有使用CMake的经验吗?你能把烤饼和CMake比较一下吗?