Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: ein DevExpressVCL-Compiler

  Alt 18. Aug 2023, 20:16
Jo, 240 DevExpress-Packages, nochmal knapp über 80 eigene BPL/DLL/EXE und einige weitere Tools und zwei Hände voll kleinerer Fremdkomponenten (FastReport, pgDAC und mehr).



Einmal muß tut auch der Master nicht mit dem aktuellen Release übereinstimmen,
sowie nich alte Branches und vor allem auch alte Release-Branches.

Es muß also auch möglich sein eine andere/alte Version auszuchecken und neu zu kompilieren, mit den jeweils dazu passenden Versionen der Externen-Komponenten. (das war mit deren Setup praktisch unmöglich)
Anderen Branch/Commit auschecken, im FinalBuilder bei "externe kompilieren" einen Haken setzen (wobei inzwischen der FinalBuilder den zuletzt kompilierten Commit-Hash mit dem Aktuellen vergleicht und es automatisch aktiviert) und fertig. (wenn sich an der PackageListe nichts ändert, müssen sie nicht unbedingt neu registriert werden)




Bis jetzt hatten wir auch jedes FremdKomponenten-Package manuell im FinalBuilder als Action eingetragen und dazu eine ListenVariable mit den "Packagname=Description" die in jeder Komponentengruppe addiert werden (bisher abgesehn vom DevExpress, das fehlte halt)
und am Ende läuft der FinalBuilder über diese Liste, registriert neue Packages und entfernt alte, sowie räumt die DisabledPackages auf usw.

Also DevExpress wurde (bisher) noch nicht im FB kompiliert, aber die Liste mit den Packages mußte manuell im FB aktualisiert werden, sowie in einer Variable die Requires. Diese Variable ist in allen DLL/EXE drin, damit sie auch die aktuellen DevExpress kennen.




Jupp, die globale DXVCL hab ich bei mir entfernt ... und wo deren Setup nie lief, fehlt die sowieso.

Im FinalBuilder als Projekt-Variable (Environment=True), sowie im Delphi in den "eigenen" Umgebungsvariablen (Tools->Optionen->Umgebungsvariablen, bzw. HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\22.0\Environment Variables)
Dort hab ich die passende DXVCL jeweils eingetragen und hab so auch je Delphi die Möglichkeit eines anderen Wertes.

Sowie die Umgebungsvariable PATH ist noch geändert (leider ist es im Delphi nicht möglich %PATH% innerhalb des PATH zu benutzen, so dass der FinalBuilder den aktuellen System-Wert dort hart drin abspeichert)



Auch hab ich unser Projekt-Repo nun fast komplett mit relativen Pfaden, bzw. welche zur Laufzeit ausgewertet werden.
So ist es auch möglich mal in einem anderen Projektverzeichnis (Kopie) zu arbeiten ... dort dann nur einmal im FinalBuilder die Registrierung neu ausführen. (hab in den Delphi-Umgebungsvariablen inzwischen auch eine Variable $(root), welche schnell vom FinalBuider immer auf das aktuelle Arbeitsverzeichnis gesetzt wird ... so müssen nicht alle Registrierungen aktualisiert werden, wie z.B. auch der Favorit zum Projekt in der Willkommenseite, welches immer auf aktuelle/letzte Verzeichnis zeigt)

Auch wenn ich in letzter Zeit meistens im GIT switche, aber als ich letztens mitten im Merge in ein anderes Repo wollte ... da funktioniert der Stash leider nicht.



Zitat:
Was wir noch machen, sind Codeänderungen direkt in DevExpress Units
Genau, erst deren Setup und dort auf Recompile
Aktuell haben wir keine "eigenen" Änderungen im DevExpress, bzw. für die aktuelle Änderung hatten wir von DevExpress via Mail ein angepasstes Setup bekommen, zum Testen, bevor die den Bugfix ausrollen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Aug 2023 um 20:21 Uhr)
  Mit Zitat antworten Zitat