Hier ein Auszug aus einer internen Diskussion über Aspekte des Buildsystems, die ich gern öffnen würde.
Hintergrund ----------- Wir benutzen seit Herbst 2014 in REFLEX die Qt Build Suite zum Bauen, welche den Prozess durch die einfache intuitive, deklarative Syntax der Builddateien gegenüber Make wesentlich vereinfacht, stark beschleunigt und es außerdem sehr einfach macht, aus einem Sourceordner in verschiedenen Buildverzeichnissen zu bauen. Dokumentation des Buildsystems: https://reflex.readthedocs.org/en/develop/build.html Offene Tickets dazu: https://bitbucket.org/reflex-dev/reflex/issue/87/refine-qbs-build-process Diskussion ---------- Richard Weickelt: >> langfristig müssen wir >> eine Lösung für https://bugreports.qt.io/browse/QBS-733 finden um für jede >> Toolchaininstallation nur ein Profil zu behalten und projektweit >> Compilerflags setzen könnten. Kurzfristig können wir das aber gut über >> Wrapperscripte lösen, in dem man dort den qbs-Aufruf reinsteckt und die >> gewünschten Compilerflags per Kommandozeile mitgibt. Stefan Nürnberger: > Solange es für den Bugreport keine Lösung gibt, finde ich die Variante > mit verschiedenen Profiles gar nicht so schlecht. Wäre nur schön, wenn > man die in getrennten Dateien abgelegt zur Verfügung hätte, und die > nicht immer in die qbs Konfiguration des Nutzers importieren muss. Also > vielleicht ein Wrapper, der die aktuelle QBS config sichert, die neue > aus der Datei lädt, baut, und danach die alte config wieder herstellt. Verschiedene Profile braucht es auf jeden Fall, für jede Toolchaininstallation mindestens eins. Hinzu kommt, dass auch Module welche Zugang zu installierten Tools (wie zum Beispiel rme) benötigen, entsprechend vorkonfiguriert werden sollten. Die Profile sollten aber von den Projekten völlig unberührt bleiben. Mit Wrapperscript meinte ich ein Script, welches solch eine Konfigurationsdatei z.B. in der Form oder noch simpler einliest: # ------ project.conf ------ cpp.commonCompilerFlags : "-ffunction-sections,-fdata-sections" cpp.LinkerFlags: "-Wl,--gc-sections" ... dass man dann so aufruft: qbs-wrapper profile:XXX [OPTIONS] --config project.conf und welches dann mit obiger Datei qbs ausführt: qbs profile:XXX [OPTIONS] cpp.commonCompilerFlags:"-ffunction-sections,-fdata-sections" cpp.linkerFlags:"-Wl,--gc-sections" So kann man wunderbar auf verschiedenen Rechnern (n Entwickler, Build-Server, Test-Server) das Projekt mit den gleichen Compilerflags benutzen und muss die Qbs-Profile nicht ständig anfassen. Richard
