Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Umgenbunsvariable für Delphi-Version (https://www.delphipraxis.net/207069-umgenbunsvariable-fuer-delphi-version.html)

freimatz 22. Feb 2021 07:20

Umgenbunsvariable für Delphi-Version
 
Hallo,
ich habe hier z.B. einen Pfad für die dcu-Dateien:
Q:\Dcu\Berlin\$(Config)\$(MSBuildProjectName)

Gibt es eine Möglichkeit auch das "Berlin" durch eine Variable zu ersetzen?

Habe schon geschaut über das
http://docwiki.embarcadero.com/RADSt...ment_Variables
Da scheint es aber bei mir keine zu geben.

Tipps?

jaenicke 22. Feb 2021 08:14

AW: Umgenbunsvariable für Delphi-Version
 
Ich habe schlicht eine eigene Variable in unsere Buildskripts eingebaut. Sprich bei der Installation der Packages usw. wird diese in der Registry automatisch gesetzt und dann für die Pfade verwendet.
Es gibt aber auch $(ProductVersion) soweit ich weiß.

// EDIT:
Ja, $(ProductVersion) löst zu z.B. 19.0 (für 10.2) auf.
// EDIT:
Da war ich zu spät mit dem Editieren. ;-)

Uwe Raabe 22. Feb 2021 08:15

AW: Umgenbunsvariable für Delphi-Version
 
Das Berlin ist ein Codename. Den wirst du nirgendwo in den Delphi-Pfaden oder -Umgebungsvariablen finden.

Es gibt aber die Variable ProductVersion, die im Falle von Delphi Berlin mit 18.0 belegt ist.

dummzeuch 22. Feb 2021 08:39

AW: Umgenbunsvariable für Delphi-Version
 
Weiss jemand zufällig, ab welcher Delphi Version es $(ProductVersion) gibt? Delphi 2009 kennt es jedenfalls noch nicht.

Uwe Raabe 22. Feb 2021 09:59

AW: Umgenbunsvariable für Delphi-Version
 
Ich glaube, ab XE. Der zugehörige Eintrag steht unter %AppData%\BDS in environment.proj.

jaenicke 22. Feb 2021 10:00

AW: Umgenbunsvariable für Delphi-Version
 
Ja, das gibt es ab Delphi XE, ich habe eben Delphi 2010 und XE getestet. Darin wurde ja auch z.B. der Ausgabepfad in der Standard-Buildkonfiguration um Buildkonfiguration und Plattform erweitert soweit ich mich erinnere.

dummzeuch 22. Feb 2021 10:52

AW: Umgenbunsvariable für Delphi-Version
 
Danke.

freimatz 22. Feb 2021 13:24

AW: Umgenbunsvariable für Delphi-Version
 
Danke an Euch! ProductVersion reicht mir völlig, ich will es nur unterscheidbar haben.
Gibt es da eine Doku dazu? (Habe einiges gegoogelt aber nichts gefunden.)

Uwe Raabe 22. Feb 2021 15:28

AW: Umgenbunsvariable für Delphi-Version
 
Zitat:

Zitat von freimatz (Beitrag 1483503)
Gibt es da eine Doku dazu?

Doku zu was? Den Werten von ProductVersion? Hier: http://docwiki.embarcadero.com/RADSt...iler-Versionen

freimatz 22. Feb 2021 16:22

AW: Umgenbunsvariable für Delphi-Version
 
Sorry Nein, ich meine eine Doku welche Variablen es gibt.

himitsu 22. Feb 2021 16:34

AW: Umgenbunsvariable für Delphi-Version
 
Nee, es gibt nur hier und da Posts/Blogs wo jemand drüber redete.

Und für Einiges siehe die environment.proj

TiGü 23. Feb 2021 08:00

AW: Umgenbunsvariable für Delphi-Version
 
Ich vermute, er meint den inneren Aufbau der DPROJ-XML.
Versuchs doch mal mit:
https://docs.microsoft.com/de-de/vis...e?view=vs-2019

Warum, Wieso, Weshalb?
Die XML-Projektdatei von Delphi ist eigentlich ein MSBuild project file.

Rolf Frei 23. Feb 2021 11:37

AW: Umgenbunsvariable für Delphi-Version
 
Du kannst deine eigenen Variabeln definieren, die du dann im Pfad verwenden kannst. Unter Tools/Einstellungen/IDE/Environement Variables kannst du diene eigenen Variabeln bei "User System Overrides" hinzufügen. Diese kannst du dann in deinem Suchpfad entsprechend nutzen.

Ich habe hier z.B. eine Variable "VCLFIXES" definiert, die auf das Verzeichnis mit Delphi Bugfixes zeigt (z.B. C:\Delphi\BugFixes\D10.3". Im Suchpfad steht dann an oberster Stelle $(VCLFIXES) drin. Diese Variabeln sind gleich zu nutzen wie die vordefinierten von Delphi. Du kannst diese also auch als Bestandteil eines Pfades verwenden.

himitsu 23. Feb 2021 11:49

AW: Umgenbunsvariable für Delphi-Version
 
Jupp, Umgebungsvariablen,
oder eine UserTools.proj basteln.


$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj

freimatz 23. Feb 2021 12:03

AW: Umgenbunsvariable für Delphi-Version
 
Ne ne, ich meinte schon die vordefinierten Umgebungsvariablen. Die dproj interessiert mich (hier) nicht.

Uwe Raabe 23. Feb 2021 12:20

AW: Umgenbunsvariable für Delphi-Version
 
Zitat:

Zitat von freimatz (Beitrag 1483594)
Ne ne, ich meinte schon die vordefinierten Umgebungsvariablen. Die dproj interessiert mich (hier) nicht.

Die environment.proj wurde ja schon erwähnt.

himitsu 23. Feb 2021 12:36

AW: Umgenbunsvariable für Delphi-Version
 
Nicht dproj.


Ja, ich verwende auch vorranig die Environments in der Registry. :)

Aber die PROJ haben auch den einen oder anderen Vorteil.
https://www.delphipraxis.net/197062-...efine-vcl.html
Wobei Dieses leider auch nur funktioniert, wenn der Typ "richtig" in der Project.dproj gespeichert ist. :cry:

Oder eben die environment.proj (kommt über CodeGear.Delphi.Targets -> CodeGear.Common.Targets ins Projekt)



Es gibt 3 PROJ, welche in die DPROJ gelinkt werden (falls forhanden).
Achtung beim Upgrade alter DPROJ in neue Delphi's, denn dabei schleichen sich hier Fehler ein, bzw. Einiges wird nicht (richtig) aktualisiert/upgegraded.
Früher waren z.B. einige Zeilen ohne IF-EXISTS, bzw. Manchs gab es noch nicht ... das ist beim Upgrade entweder falsch oder es fehlt sogar.


XML-Code:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        ...
        <Config Condition="'$(Config)'==''">Debug</Config>
        <Platform Condition="'$(Platform)'==''">Win32</Platform>
        ...
    </PropertyGroup>
    ...
    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
</Project>
$(BDSBIN)\CodeGear.***.Targets : Deklariert die zu verwendenden Compiler und Stellt die Scripte für Compiler/Build/Clear/MakeAll/ClearAll/... bereit.

$(APPDATA)\...\UserTools.proj : Hier kann man "eigene" Erweiterungen einfügen (für den Inline-Compiler und auch direkt für's MSBUILD)

Aber beim Upgrade fehlt oben manchmal die Condition, dann kann man dem MSBUILD das Profiel sagen wie man will, genommen wird immer was zuletzt eingestellt war.
Und es fehlen auch machmal einige der Imports, bzw. sie sind falsch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 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