什么构建系统对跨平台驱动程序,库和GUI构建有最好的支持?

时间:2008-12-11 09:58:16

标签: build makefile multiplatform

超过一百万行多平台项目的构建系统的最佳选择是什么,它为所有主流操作系统生成驱动程序,库,命令行工具,GUI和操作系统安装包,同时使用GNU和微软工具链?

我们的源代码主要是C语言,包括Python,C#和GNU makefile,还有一点点C ++和bash。它主要驻留在一个存储库中,但我们将源代码推送到各个第三方,所有第三方都拥有其源代码存储库。还有一些兴趣是保持快速构建,这可能涉及拆分项目。

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

6 个答案:

答案 0 :(得分:4)

我投票支持CMake,作为一个从头开始重写KDE4构建系统的元构建工具 - 并使KDE4成为一个甚至在WindowsCE上运行的跨平台桌面!

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

答案 1 :(得分:1)

您可能需要查看Cruise。它基于Java构建,因此它可以在任何支持它的平台上运行。您还可以在不同的计算机上拥有多个构建代理,这些代理可以在不同平台上执行不同的任务。 Thoughtworks仍然在构建它,因此缺少一些功能,但它可能是一个很好的选择,因为您正在寻找真正的跨平台功能。

答案 2 :(得分:1)

Dickson的

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

由于您正在考虑跨平台(我假设多台计算机)构建,因此除了Hudson之外的大多数开源工具都被排除在外。

构建服务器比较矩阵由我们的朋友在Thoughtworks托管:confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

祝你好运。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

您的调查选项列表中应该有CMake。 CMake是一个元工具,即它为您选择的构建工具(GNU make,Visual Studio等)生成输入。我可以强烈推荐它。

答案 5 :(得分:1)

JetBrains TeamCity总体上运作良好,因此值得在评估列表中使用。

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

没有任何关于Team Foundation Server的信息可以根据你的情况计算出来,但开箱即用的可能是我所提到的另外两个以MS-shop为中心。

作为一般性评论,随着你所拥有的多样性水平,你肯定想要尝试任何你想要使用的东西 - 只是因为支持某些东西,因为盒子上的勾号并不意味着它适合oyu're寻找。

寻找你感兴趣的贴纸↓↓↓
豫ICP备18024241号-1