2009-07-14 5 views
3

Ich richte gerade ein neues Software-Projekt ein und ich möchte ein automatisiertes Build-System haben. Das Projekt hat einen ziemlich komplexen Zusammenhang zwischen C und C#. Es muss auch automatische Bindungen (Python, PHP, Java, Ruby usw.) generieren, die ein externes Tool (SWIG) verwenden.Build Systemwahl?

Das Projekt sollte gebaut Lage sein, und unter Linux, Windows und Mac OS X. möglicherweise

Ich habe sah in CMake, Autotools und waf laufen. Hat jemand irgendwelche Vorschläge?

Antwort

5

Ich schlage vor, dass Sie Cruise Control und/oder Cruise Control.NET für Automatisierung und kontinuierliche Integration betrachten. Sehen Sie sich auch NAnt und Ant für die eigentlichen Build-Skript-Funktionen an. Ich benutze diese überall dort, wo ich hingehe und so ziemlich jeden Tag, und ich muss noch auf alles stoßen, was ich nicht schaffen könnte. Gelegentlich musste ich meine eigenen gewohnten NAnt-Aufgaben machen ... was ich in C# gemacht habe ... und immer noch keine Probleme!

+0

CruiseControl- und Ameise sind in Java geschrieben und daher sollten alle erforderlichen Plattformen unterstützen. – morechilli

3

make ist sicherlich in der Lage, alles zu tun, was Sie dort verlangen. Ich würde damit anfangen; es ist Ihre beste Wette für Portabilität.

Wenn Sie immer noch Probleme mit der Portabilität haben, dann sind die Autotools oft eine vernünftige Lösung. Sie sind gerade genug Schmerz, um Setup zu bekommen, dass ich es vorziehe, sie zu vermeiden, es sei denn, ich fühle wirklich, dass ich sie brauche.

+0

Die Sache mit make ist, dass es nicht nur ein Build-Tool ist, es ist eine Batch-Befehlsdatei mit grundlegenden Abhängigkeitsverarbeitung und Variablen. Das macht es flexibel für viele Aufgaben und so ziemlich jeden Workflow, den Sie haben. – andychase

1

Andere verwenden auch yam

aber ich bin sehr zufrieden mit CMake. Es ist für die genannten Plattformen verfügbar und bietet viele Funktionen, um die vollständige Automatisierung von Nicht-Standard-Build-Prozeduren (auf den unterstützten Plattformen) zu skripten.

In meinem Fall ist es die Erstellung eines Zahlen-Backend in C, die Tcl und GSL-Bibliotheken kombiniert mit einem Frontend in Tcl/Tk und die automatisierte Generierung von eigenständigen ausführbaren Dateien (Starpack/Tclkit) auf Linux, MacOS und Win verwendet (MingW & Visual Studio).

0

Ich persönlich benutze CMake + mingw + Qt4 für alle meine plattformübergreifenden Bedürfnisse, aber ich bin mir sicher, dass es ziemlich einfach ist, CMake zu swig/mono auf Linux und .net auf Windows zu adoptieren.

0

Google Build-System (jetzt Open Source) ist eine gute Alternative: http://bazel.io/

Verwandte Themen