Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Hilfe zu Projekteinstellungen - Targets und optsets (https://www.delphipraxis.net/211419-hilfe-zu-projekteinstellungen-targets-und-optsets.html)

freimatz 13. Sep 2022 16:39

Hilfe zu Projekteinstellungen - Targets und optsets
 
Hallo,
gibt es irgendwo eine Hilfe oder Einführung zu den Projekteinstellungen die insbesondere die Konzepte dahinter erklärt wie die Targets und die optsets. Bei Druck auf F1 fehlt mir das gerade. Und die dprojs sind auch nicht gerade übersichtlich.

himitsu 13. Sep 2022 17:04

AW: Hilfe zu Projekteinstellungen - Targets und optsets
 
optsets hab ich bei mir leider wieder auf "ignore" gesetzt, weil nicht wirklich benutzbar. (scheinen Viele so zu sehen, oder warum verwendet sonst kaum jemand das :roll:)

Für den Anfang sah es nett aus, aber ist leider nicht wirklich praktisch nutzbar, sobald man Multiplatform entwickeln will, da es ausschließlich an BuildConfigs (Basis/Debug/Release/...) hängt, es dann aber Überschneidungen mit Unterschieden an den Tasgets (Win32/Win64/Android/iOS/...) gibt.

z.B. Konfigurationen nur für Windows (32 und/oder 64 Bit) lassen sich nicht auslagern.
Und die größten Unterschiede hab ich nunmal bei den Targets, aber weniger in den Configs.

Das Konzept gibt es schon seit Jahrzehnten. Damals gab es bloß die BuildConfigs (noch keine Targets) und leider wurde es niemals weiterentwickelt.



Suchpfade/Ausgabepfade und Dergleichen wöllte ich gern für knapp 85 Projekte "einheitlich" in ein/mehrere Optsets auslagern, aber neeeeeeee.
Wäre schön gewesen, wenn man so dann auch schnell in neuen Delphis hätte das wieder neu importieren können (DPROJ löschen und neu erstellen)

Außerdem fand ich es irgendwie sinnlos unübersichtlich, dass die dann zeilenweise im Projektmanager sichtbar sind.
Und sowieso bräuchte man die Opsets eher als Matrix (Config * Target) mit Mehrfachzuweisung, als nur an der BuildConfig.




Wenn du z.B. NUR mit Win32 arbeitest und da für mehrere Projekte ein paar Configs zentral verwaltet haben möchstest, dann ist das schon halbwegs zu gebrauchen.

Einfach in der Projektverwaltung
* gewünschte Build-Config markieren
* Kontextmenü "Neue Optionsgruppe" oder "Optionsgruppe anwenden"
* und dann (bei neu) die Gruppe markieren und "Bearbeiten" wählen

Natürlich kann man nicht mehrere Projekte markieren und sagen "für diese Config Config*Target ein Optset hinzufügen"




Die Optsets kannst du aber auch nur zum Speichern/Exportieren/Importeren nutzen.

* oben ist das Optest nur verlinkt ... änderst du das Optset, hat jedes Projekt sofort die neuen Einstellungen

* Du kannst im "Bearbeiten" einer BuildConfig aber auch "Speichern" und "Übernehmen" (Importieren) wählen,
dann wird das Optset quasi kopiert und die Optionen direkt überschrieben.

* Beim Speichern kannst du aber nicht wählen was exportiert wird (beim Bearbeiten einer BuildConfig ... beim Speichern eines Optsets ist es schon gefiltert, bzw. das "nicht festgelegt", was man nicht braucht)
Wenn BuildConfig exportiert, dann nachträglich nochmal die Datei öffnen und rauswerfen, was du nicht haben wolltest.





Per se müssten die Projektoptionen dringend mal überarbeitet werden.

* Wenn man sas ändert, bräuchte es eine Vererbungsausfräumfunktion, wenn man z.B. was in Basis ändert, dann (optional) diese Änderung auf alles Untergeördnete übernehmen (also bei Untergeordnetem die Zuweisungen löschen).
* Und eine Anzeige, ob in untergeordneten/übergeordneten Configs Zuweisungen (Abweichende Einträge) existieren.

https://www.uweraabe.de/Blog/2021/09...for-delphi-11/

Rollo62 14. Sep 2022 05:55

AW: Hilfe zu Projekteinstellungen - Targets und optsets
 
Zitat:

Zitat von himitsu (Beitrag 1511758)
optsets ... nicht wirklich benutzbar. (scheinen Viele so zu sehen, oder warum verwendet sonst kaum jemand das :roll:)

Das sehe ich auch so :thumb:
Ich glaube das ganze Problem liegt auch zum großen Teil an der inkonsistenten Vererbung der Optionen,
die scheint nur bei Textfeldern einigermaßen zu funktionieren.
Da würde ich mir sowieso lieber Optionen als JSON oder YAML verwaltbar wünschen, statt so einem überambitionierten Editor auf den man sich nicht 100% verlassen kann.
Das hätte sicher viele Vorteile, z.B. dass man die Optionenseinstellungen zwischen Projekten mal sauber vergleichen könnte, das sinnvolle Gruppierungen leicht machbar wären, usw.

freimatz 14. Sep 2022 08:52

AW: Hilfe zu Projekteinstellungen - Targets und optsets
 
Danke für die Rückmeldungen.
War so nicht direkt die Antwort auf die Frage. Die Antwort lautet wohl: Nein :wink:

opsets verwenden wir in der Firma schon immer. Dazu gibt es ein base.opset, ein debug.optset und ein release.optset. Die sind bei fast jedem der hunderte Projekte mit dabei.
Funktionieren tut das auch irgendwie, verstehen tue ich das nicht so recht vor allem im Zusammenhang mit den Targets.
ok, wurschtele ich halt so weiter. Ist bei Delphi ja üblich :twisted:

Uwe Raabe 14. Sep 2022 09:18

AW: Hilfe zu Projekteinstellungen - Targets und optsets
 
Ich oute mich dann auch mal als OptionSet-Verwender. Gerade in Projektgruppen mit vielen Projekten, die alle die gleichen Suchpfade für Libraries benötigen, sind entsprechende OptionSets eine massive Erleichterung.

Das größte Manko für mich dabei ist einfach die fehlende Unterstützung im FinalBuilder - und das schon seit geraumer Zeit. Weil ich deswegen aber nicht auf OptionSets verzichten möchte, habe ich da zwei verschiedene Lösungswege erarbeitet. Bei simplen Build-Projekten verwende ich dann einfach MSBuild - entweder im FinalBuilder oder direkt in ContinuaCI. Für die Fälle, bei denen das nicht geht, habe ich ein kleines Tool geschrieben, mit dem die OptionSets in den dproj-Dateien aufgelöst werden.

Leider lassen sich nicht alle Bereiche der dproj-Datei in ein OptionSet auslagern. Solange diese aber auch nur so selten verwendet werden, sind Verbesserungen in dem Bereich auch nicht mit hoher Priorität zu erwarten.

himitsu 14. Sep 2022 09:25

AW: Hilfe zu Projekteinstellungen - Targets und optsets
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1511783)
Solange diese aber auch nur so selten verwendet werden,

Würde es besser funktionieren, täten es vielleicht auch mehr benutzen. :stupid:

Wie gesagt, so lange man nur für eine Platform entwickelt und viele Projekte hat (wir haben in diesem Projekt knapp über 100 BPL, DLL und paar EXE, in etwa 5 Gruppen mit gemeinsamen Optionen -> FremdBPL, BPL, DLL, EXE und ToolsEXEn, also welche die nur selten und ohne Laufzeitpackages Kompiliert werden), dann können ie schon praktisch sein.
Aber nun geht es auch in Richtung 64 Bit und für einen Teil der BPLs auch Android.




Das sind halt keine "Optionen".

Am Ende ist jede Option eine Variable in einem Script,
eventuell noch mit einem IF DieseVar = '' THEN DieseVar := DieseOption;



Die DPROJ ist eigentlich sowas wie ein Script, für MSBUILD ... Kannst es dir wie DTD und XMLTransform vorstellen, oder entfernt auch mit JavaScript, QBasic, Python, PascalScript usw. vergleichen.

Und die Optsets sind wie eine INCLUDE-Datei, welche optionale Variablen an verschiedenen Stellen einbindet.




Und die Optionen-GUI pfuscht darin so rum, wie der Delphi-Projektmanager und die Optinen an der DPR/DPK, was auch nicht immer gut ausgeht.


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