建立系统选择?

时间:2009-07-14 05:31:42

标签: c# c build-process build cmake

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

该项目应该能够构建,并在Linux,Windows和Mac OS X中运行。

我看过CMake,autotools和waf。有人有什么建议吗?

6 个答案:

答案 0 :(得分:5)

我建议您查看Cruise Control和/或Cruise Control.NET以实现自动化和持续集成。另请参阅NAnt和Ant了解实际的构建脚本功能。我每天都去使用这些,而且我每天都会使用这些东西,但我还没有碰到任何我无法完成的事情。有时我不得不自己定制NAnt任务......我在C#中做过......但仍然没有问题!

答案 1 :(得分:3)

make肯定能够做你在那里要求的一切。我从那开始;这是便携性的最佳选择。

如果您仍然发现自己有可移植性问题,那么autotools通常是一个合理的解决方案。除非我真的觉得我需要它们,否则它们只是让我更喜欢避免使用它们的痛苦。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

其他人也使用yam

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

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

答案 4 :(得分:0)

我个人使用CMake + mingw + Qt4来满足我所有的跨平台需求,不过我确信在Linux上采用CMake to swig / mono和在Windows上采用.net非常容易。

答案 5 :(得分:0)

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