Ich haben häufig mehrere .dproj-Dateien, die auf dieselbe .dpr-Datei verweisen. Bei mir geht es aber darum, dieselbe .dpr mit verschiedenen Delphi-Versionen zu verwenden. Das funktioniert wunderbar auch mit der
IDE. Allerdings liegt die .dpr-Datei bei mir im gleichen Verzeichnis.
Das ist eine gute Nachricht.
Allerdings lege ich immer mehrere Unterverzeichnisse für die
dpr und dproj an, weil es eben mit den beiden Files nicht getan ist.
Ich separiere alle Versionen und sonstigen Varianten hart in eigene Verzeichnisse, und das funktioniert super.
Delphi-Quellcode:
Project/Packages/Delphi12
Project/Packages/Delphi12.1
Project/Packages/Delphi12.1_DemoVariante
Project/Packages/Delphi12.2
Project/Src // Gemeinsame Source für alle Varianten
In den Verzeichnissen sind dann ALLE relevanten Files, die spezifisch für die Variante notwendig sind.
als da wären
Delphi-Quellcode:
.dpr
.dproj
AndroidManifest.template.xml
Entitlement.TemplateiOS.xml
info.plist.TemplateiOS.xml
...
Mögliche System-Fixes für System-Module
...
Delphi-Quellcode:
FMX.ListView.pas
FMX.Maps.pas
FMX.MediaLibrary.Android.pas // Erweitert um define
...
Es könnten aber auch viele andere, spezifische Files hier pro Projekt entkoppelt werden (.txt, .rc, .json, .xml, ...).
Die
OS-spezifischen Fixes dann mit {$IF DEFINED( ANDROID ) } erweitert, so dass dies nur unter Android relevant wird, ansonsten nur eine leere
Unit ist.
Das hat den Vorteil, dass die .dproj immer alle System-Fixes enthalten kann, für alle
OS, und dass nicht verschiedene Versionen der .dproj benötigt und gepflegt werden müssen.
Ok, dabei werden dann leere Units compiliert, aber das kann ich verschmerzen, die Vorteile sind viel größer.
Mit dieser Struktur kann ich sehr sauber alle Varianten trennen und möglichst separate komplette Kontrolle über die Settings zu haben.