Ein
Package XYZ soll beim Compilieren die CompilerVersion im Dateinamen haben,
in den Requires abhängiger Packages soll dann ebenfalls nur der Name XYZ stehen, aber jeweils die CompilerVersion verwendet werden (das geht ja ... ich binde "
vcl" ein und im XE wird "vcl150" genommen)
und ebenso für EXE und DLLs, die Version in den Dateinamen, aber ich fürchte dort muß beim
DLL-Import der Name via IFDEFs zusammengebaut werden.
Bzw. geht das auch andersrum?
Also ich hab eine XYZ_XE.dpk/.dpr und .dproj und dann nochmal die XYZ.10.3.dpk und .dproj
und die werden immer als XYZ.bpl compiliert.
Das wäre mir lieber. (und notfalls kann ja das kranke WinSxS die Versionen verwalten
)
und im Quellcode der
DPR und
PAS paar {$IFs für die versionsabhängigen Codes.
Im Grunde brauch ich ja auch nur verschiedene DPROJ für die verschiedenen Delphis, wenn Borland/Emba das Format mal wieder komplett umgekramt hat
Für viele Delphis sind die DPROJ praktisch kompatibel und man bräuchte da eigentlich nur Eine für die Alle.
meine
Package-Namen sind immer generisch und ich habe, falls mehrere Delphi-Versionen unterstützt werden sollen, immer Unterverzeichnisse für die Packages:
Code:
mycomponent
--> src
--> packages
--> Delphi2007
--> DelphiXE5
--> DelphiXx10.3
unter src liegen die eigentlichen Sourcen, die in allen Packages eingebunden werden. Unter Packages->DelphiXxxxx die Packages und meist noch eine Project-Group für die jeweilige Delphi-Version.
Ein Beispiel dafür findest Du in
ccpack auf OSDN (auch wenn ich da kein zusätzliches
Package-Unterverzeichnis habe sondern nur Unterverzeichnisse für die Packages jeder Delphi-Version).
Damit können die
Package-Projekte immer denselben Namen haben. Der Suffix wird mittels der Einstellungen unter Project->Options->Description gesetzt. Und der nette Button, den ich mir mittels GExperts dort hineinbeame vereinfacht es, den Suffix passend zu setzen (siehe Screenshot im Anhang).
Für DLLs kann man ein Suffix ebenfalls konfigurieren, allerdings funktionierte das nicht mit allen Delphi-Versionen. Da gibt es das Feld unter Project->Options->Application.
Für Exectuables geht das nicht.