Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   DPROJ und DPR getrennt (https://www.delphipraxis.net/216074-dproj-und-dpr-getrennt.html)

himitsu 23. Okt 2024 12:46

DPROJ und DPR getrennt
 
Hat das jemand schonmal ausprobiert?

Wenn man in die DPROJ reinschaut, dann sieht es ja so aus, als wenn die DPR anders heißen könnte und auch in einem anderen Verzeichnis liegen dürfte.

Also zumindest im MSBuild könnte es somit eventuell klappen,
aber ob die IDE das auch so sieht ..........



Im Prinzip geht es um Quellcodes von Fremdkomponenten, auch ohne DPROJ. (z.B. DevExpress)
Wo es manchmal nett wäre, wenn man eine eigene Projektgruppe mit eigenen DPROJ hätte, welche aber nicht im Verzeichnis, bzw. in den Verzeichnissen, des eigentlichen SourceCodes liegen.

dummzeuch 23. Okt 2024 18:00

AW: DPROJ und DPR getrennt
 
Zitat:

Zitat von himitsu (Beitrag 1542465)
Hat das jemand schonmal ausprobiert?

Wenn man in die DPROJ reinschaut, dann sieht es ja so aus, als wenn die DPR anders heißen könnte und auch in einem anderen Verzeichnis liegen dürfte.

Also zumindest im MSBuild könnte es somit eventuell klappen,
aber ob die IDE das auch so sieht ..........

Im Prinzip geht es um Quellcodes von Fremdkomponenten, auch ohne DPROJ. (z.B. DevExpress)
Wo es manchmal nett wäre, wenn man eine eigene Projektgruppe mit eigenen DPROJ hätte, welche aber nicht im Verzeichnis, bzw. in den Verzeichnissen, des eigentlichen SourceCodes liegen.

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.

himitsu 23. Okt 2024 18:06

AW: DPROJ und DPR getrennt
 
Jupp, würde ich mir aktuell auch wünschen, auf Arbeit ... aber hatte ich mich noch nicht getraut, abgesehn davon, dass es um XE und 10 11 ging (hatte erstmal nur alle Projektdateien in versionsabhängige Unterverzeichnisse verschoben ... und darüber dann die zugehörigen Units usw.)
Aktuell sind alle DPR eine Kopie zur jeweiligen DPROJ und da wird dann gern mal in einer DPR/DPK was vergessen.

Und z.B. bei FremdKomponenten ohne oder mit unpassender DPROJ wäre es nett, wenn dann die eigenen Projektdateien nicht im Verzeichnis des FremdCodes liegen, damit erstmal alles schön getrennt ist und beim Upgrade nicht so schnell was kaputt geht.

Hab's noch nie ausprobiert, aber, wie gesagt, in der DPROJ sind ja alles mit Verzeichnissen verlinkt, so dass es so aussah, als wenn man die DPR/DPK wo anders liegen haben könnte.
Nur da Delphi die DPROJ ja selbst teilweise sehr pervers abnormal behandelt und Vieles einfach ignoriert, wäre ich mir dort nicht sicher, dass sowas auch wirklich "problemlos" funktioniert.


Nja, bei uns heißen die Projekte in allen Versionen gleich, nur das Unterverzeichnis hat die IDE-Version im Namen.
Postfixe für die Kompilate kommen aus der Config ... neuerdings auch direkt als $(AUTO), für zukünftige Delphis. (leider nur bei den Packages, aber nicht für DLL und EXE)

Rollo62 24. Okt 2024 11:04

AW: DPROJ und DPR getrennt
 
Zitat:

Zitat von dummzeuch (Beitrag 1542486)
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz