2008-12-11 27 views
3

对于超过一百万行的多平台项目,为所有主流操作系统生成驱动程序,库,命令行工具,图形用户界面和操作系统安装软件包,使用GNU和Microsoft两种工具构建系统的最佳选择是什么工具链?什么构建系统对跨平台驱动程序,库和GUI构建有最好的支持?

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

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

回答

4

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

CMake是将KDE4移植到地球上任何操作系统的载体 - 通过使用相对工具链生成Makefile(或Windows中的vcprojs)约40个操作系统!

+0

CMake无法构建C#或C++/CLI项目... – mmmmmmmm 2010-09-17 07:41:13

1

JetBrains TeamCity在一般情况下工作得很好,所以应该值得在eval列表上。

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

Team Foundation Server没有任何关于您的情况的必要数据,但是现在它可能更像MS-shop中心,而我提到的另外两个。

作为一般性评论,随着您拥有的品种水平不同,您绝对想要试用任何您想使用的东西 - 只是因为某些东西被支持为盒子上的刻度并不意味着它会适合oyu'重新寻找。

1

迪克森,

是您的构建主要是整体还是要单独建立一些图书馆和它们组装成较大的应用程序?如果项目间的依赖关系很大,你的选择会很快受到限制。 AnthillPro不错,我认为TeamCity有一些Ivy集成支持。从你所说的话来看,这听起来并不是绝对的需要,但可能有助于加速构建。这当然是我们看到许多团队有效执行的战略。

由于您正在研究跨平台(我假设有多台机器)构建,大多数除哈德森之外的开源工具都被排除在外。

构建服务器比较矩阵是由我们的朋友在ThoughtWorks主办这里:confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

好运。

1

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

1

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

1

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

+2

您有使用CMake的经验吗?你能比较SCons到CMake吗? – 2013-01-10 18:36:25

相关问题