AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Packages kompilieren und Compilerversion automatisch in den Dateinamen
Thema durchsuchen
Ansicht
Themen-Optionen

Packages kompilieren und Compilerversion automatisch in den Dateinamen

Ein Thema von himitsu · begonnen am 27. Feb 2020 · letzter Beitrag vom 27. Feb 2020
Antwort Antwort
Benutzerbild von himitsu
himitsu
Online

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

Packages kompilieren und Compilerversion automatisch in den Dateinamen

  Alt 27. Feb 2020, 14:47
Wie, bzw. geht es überhaupt?

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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (27. Feb 2020 um 14:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.605 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Packages kompilieren und Compilerversion automatisch in den Dateinamen

  Alt 27. Feb 2020, 15:04
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.
Miniaturansicht angehängter Grafiken
projectoptions.png  
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Packages kompilieren und Compilerversion automatisch in den Dateinamen

  Alt 27. Feb 2020, 15:19
Ich hab in mehreren meiner Projekte, die genau eine dpr und dproj haben, das hier in einer inc Datei, die in der dpr eingebunden ist:

Delphi-Quellcode:
{$IF CompilerVersion = 22}{$LIBSUFFIX '150'}
{$ELSEIF CompilerVersion = 23}{$LIBSUFFIX '160'}
{$ELSEIF CompilerVersion = 24}{$LIBSUFFIX '170'}
{$ELSEIF CompilerVersion = 25}{$LIBSUFFIX '180'}
{$ELSEIF CompilerVersion = 26}{$LIBSUFFIX '190'}
{$ELSEIF CompilerVersion = 27}{$LIBSUFFIX '200'}
{$ELSEIF CompilerVersion = 28}{$LIBSUFFIX '210'}
{$ELSEIF CompilerVersion = 29}{$LIBSUFFIX '220'}
{$ELSEIF CompilerVersion = 30}{$LIBSUFFIX '230'}
{$ELSEIF CompilerVersion = 31}{$LIBSUFFIX '240'}
{$ELSEIF CompilerVersion = 32}{$LIBSUFFIX '250'}
{$ELSEIF CompilerVersion = 33}{$LIBSUFFIX '260'}
{$ELSE}{$MESSAGE FATAL 'Version not supported'}{$IFEND}
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Packages kompilieren und Compilerversion automatisch in den Dateinamen

  Alt 27. Feb 2020, 16:04
Ach stimmt, das {$LIBSUFFIX}, aber eine Automatik wie beim Importieren gibt es da nicht?


IDE-Name, IDE-Version, CompilerVersion, RtlVersion, VclVersion, ...

Mal ausprobieren was passiert wenn ich da den Namen als $LIBSUFFIX verwende, ob der Import über den Basisnamen dann auch noch geht.




Hab vorhin gemerkt, dass man eine abc123.dproj auch auf eine gemeinsame abc.dpk gehen lassen kann (weiß nur noch nicht was passiert, wenn man die Projekt-Datei dann in der IDE speichert oder umbenennt)

Die Arbeit mit mehreren Delphi, bzw. bei Komponenten für Andere mit unterschiedlichen Delphis, da wäre es jedenfalls einfacher, wenn nur möglichst die .DPROJ für verschiedene IDEs da sein müsste und alle anderen Dateien gemeinsam genutzt werden können.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (27. Feb 2020 um 16:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Packages kompilieren und Compilerversion automatisch in den Dateinamen

  Alt 27. Feb 2020, 16:15
Das LIBSUFFIX wird nur an den Namen der BPL angehängt. Die requires-Einträge beziehen sich aber auf die DCP.

Übrigens sorgt der Project Magician optional auch für das automatische Anpassen beim Öffnen des Package Projects:
Zitat:
Maintaining packages for different Delphi versions requires to use a decent LIBSUFFIX to distinguish the bpl-files for each version (see Delphi Library Guidelines). Creating the project files for a new Delphi version usually involves copying those from the previous version to a new folder and adjusting the LIBSUFFIX entries. The Auto LibSuffix option eliminates the last step.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz