Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: Finalbuilder: Verschiedene $Config und $Platform bei externen Komponenten

  Alt 14. Mai 2013, 16:35
Also angenommen, ihr nutzt die Komponente Virtual Treeview für Delphi/C++:

Habt ihr da pro Config + Platform ein eigenes Final Builder Projekt? Also deren vier?

Hat das FinalBuilder-Projekt für die Ausgabeverzeichnisse eigene Einträge oder nimmt es die aus der Projektdatei der Komponente?
Nein. Es gibt nur ein FinalBuilder-Projekt mit diversen Action-Lists. Eine davon erzeugt über geschachtelte Iteratoren alle nötigen Ausprägungen für alle verwendeten Projekte - natürlich mit den entsprechenden Zielverzeichnissen. Da das FinalBuilder-Projekt innerhalb des CI-Prozesses läuft, sind die Verzeichnisse alle relativ zu einem Basis-Verzeichnis angegeben, das dem FB übergeben wird (das ist bei Start des Projekts immer leer).

Manche Sachen lassen sich in der Delphi-Compiler-Action im FB nicht so leicht variabel über den Dialog angeben. In dem Fall verwende ich dann einen Skript-Event.

Die Suchpfade werden aus der Projektdatei genommen, da die ja mit versioniert werden. Grundsätzlich sind alle Pfade in der dproj relativ. Damit kann ich ein Projekt in ein beliebiges Verzeichnis auschecken und sofort compilieren. Das ist besonders dann wichtig, wenn man mal auf einen älteren Stand zurückgreifen muss. Problematisch dabei sind nur die aktuellen Komponenten in der IDE - da arbeite ich noch an einer brauchbaren Lösung.

Eigentlich konnte ich bisher alles ziemlich komfortabel mit FB lösen (mit der Professional-Version). Einchecken von Code führt automatisch zu einem Continuous Build mit Tests. Eine neue Version wird über einen Mausklick erzeugt und optional auch im Web bereitgestellt. Es dauert zwar eine Weile, bis man das alles fehlerfrei am Laufen hat, aber wenn es dann läuft braucht man sich nicht weiter kümmern. In beiden Fällen wird übrigens dasselbe FinalBuilder-Projekt aufgerufen - lediglich mit unterschiedlichen Parametern.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat