Buildmaschine, wie genau funktioniert sie?
-
Also erst mal vorweg, es ist echt verdammt schwer für dieses Thema das richtige Forum aus zu suchen. Nach längerem hin und her hab ich mich für das Compiler-Forum entschieden, weil ich denke hier passt meine Frage noch am ehesten rein.
Ok, jetzt zur eigentlichen Frage. Ich hab hier ein Projekt (in C++ implementiert) welches auf einigen Plattformen laufen soll (von Windows über Linux, Mac OS bis hin zu Symbian OS und Windows Mobile). Die Portierung auf die verschiedenen Plattformen ist so weit abgeschlossen (mehr oder weniger). Der nächste Schritt den ich angehen wollte ist eine zentrale Buildmaschine aufzusetzen mit dessen Hilfe ich den Source für jede Plattform auf einem Rechner (logisch, eine Buildmaschine ist hoffentlich nur ein Rechner und kein Cluster ;)) kompilieren kann.
Allerdings hab ich da momentan noch ein paar Vorstellungsschwierigkeiten. Jedes Betriebssystem hat ja beispielsweise seine eigene STL Implementation. Wie also schaffe ich es Quellcode, auf einem Betriebssystem für viele Betriebssysteme zu compilieren? Gibt es dafür bestimmte Tools? Ich hab von der Materie leider überhaupt keine Ahnung (bis auf make, was ja bedingt auch zum Crosscompilieren zu gebrauchen ist). Kann mir da jemand mal nen kleinen Einblick geben oder kennt ihr evtl. gute Tutorials/Bücher die dieses Thema abdecken?
-
Entweder du hast einen Cross-Compiler, der halt für mehrere Plattformen kompilieren kann. Oder du hast mehrere Betriebssysteme mit dem jeweiligen Compiler drauf. Wenn du nur einen Rechner und nur ein OS darauf installieren willst, muß ein Crosscompiler her.
Andernfalls mehrere Rechner oder mehrere virtuelle Rechner (z.B. Virtual PC von Microsoft) aufbauen.
-
Ich würde VMware Server vorschlagen. Der einzige Haken dabei ist dass du im Host-Rechner dann viel RAM brauchst. Oder du lässt immer nur eine oder vielleicht zwei VMs gleichzeitig laufen...
-
Naja, ich sehe bei einer Lösung mittels VMware (oder sonstigen Virtualisierungslösungen) zwei Probleme:
1.) Gibt es dafür AFAIK keine Symbian OS Unterstützung und
2.) Kann man auf diesem Weg keine automatisierten Builds (so wie z.B. Nightly Builds) durchführen lassen da man die einzelnen Guest-Betriebssysteme immer selbst von Hand starten muss um die Kompilationen anstoßen zu könnenWenn ich mich irre könnt ihr mich gerne berichtigen