【问题标题】:Build system choice? [closed]构建系统的选择? [关闭]
【发布时间】:2010-11-10 13:12:07
【问题描述】:

我目前正在建立一个新的软件项目,并且我想要一个自动构建系统。该项目有相当复杂的涉及C、C#。它还必须使用外部工具 (SWIG) 生成自动绑定(Python、PHP、Java、Ruby 等)。

该项目应该能够在 Linux、Windows 和可能的 Mac OS X 中构建和运行。

我研究过 CMake、autotools 和 waf。有人有什么建议吗?

【问题讨论】:

  • 我也有兴趣,你选的是什么构建系统?你试过Cake吗?

标签: c# c build-process build cmake


【解决方案1】:

我建议您研究 Cruise Control 和/或 Cruise Control.NET 以实现自动化和持续集成。还要查看 NAnt 和 Ant 以了解实际的构建脚本功能。我到处都在使用这些,几乎每天都使用它们,而且我还没有遇到任何我无法完成的事情。有时我不得不制作自己的自定义 NAnt 任务......我在 C# 中做过......但仍然没有问题!

【讨论】:

  • CruiseControl 和 ant 是用 java 编写的,因此应该支持您所需的所有平台。
【解决方案2】:

make 确实能够满足您的所有要求。我会从这个开始;这是便携性的最佳选择。

如果您仍然发现您有可移植性问题,那么自动工具通常是一个合理的解决方案。除非我真的觉得我需要它们,否则我宁愿避免它们的设置,这足以让我感到痛苦。

【讨论】:

  • 关于make的一点是,它不仅仅是一个构建工具,它还是一个带有基本依赖处理和变量的批处理命令文件。这使得它可以灵活地处理许多任务以及您拥有的几乎所有工作流程。
【解决方案3】:

TeamCity,与 Cruise Control 相比,xml 配置更少。

【讨论】:

    【解决方案4】:

    其他人也使用yam

    但我对 CMake 非常满意。它适用于上述平台,并提供了许多功能来编写非标准构建过程的完全自动化脚本(在支持的平台上)。

    在我的例子中,它是用 C 语言构建一个数字运算后端,它使用 Tcl 和 GSL 库与 Tcl/Tk 中的前端相结合,并在 Linux、MacOS 和 Win 上自动生成独立的可执行文件 (starpack/tclkit) ( MingW 和 Visual Studio)。

    【讨论】:

      【解决方案5】:

      我个人使用 CMake + mingw + Qt4 来满足我所有的跨平台需求,但是我确信在 linux 上采用 CMake 来 swig/mono 和 Windows 上的 .net 是相当容易的。

      【讨论】:

        【解决方案6】:

        Google 构建系统(现已开源)是一个不错的选择:http://bazel.io/

        【讨论】:

          猜你喜欢
          • 2010-11-19
          • 2011-10-24
          • 1970-01-01
          • 2010-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-20
          • 1970-01-01
          相关资源
          最近更新 更多