Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Compilerschalter für "Allways build unit" (https://www.delphipraxis.net/63302-compilerschalter-fuer-allways-build-unit.html)

generic 16. Feb 2006 15:29


Compilerschalter für "Allways build unit"
 
Ich hab hier meinen D7 Compiler und ich möchte ihn überreden das eine Unit immer übersetzt wird unabhändig ob ich Compilieren oder Erzeugen wähle.

Bernhard Geyer 16. Feb 2006 15:34

Re: Compilerschalter für "Allways build unit"
 
Für was soll das gut sein?
Der Compiler merkt doch aufgrund von Zeitstempeln ob die DCU verwendet werden kann oder ob die Pas-Datei neu übersetzt werden muss.

generic 16. Feb 2006 17:42

Re: Compilerschalter für "Allways build unit"
 
nein, wenn ich eine projektgruppe habe, welche aus mehreren projekte besteht tut er das leider nicht.

ich benutze bedingte kompilierungen ( {$ifdef} usw.). die switche sind im projekt definiert. wenn ich sage "compile all" dann compiliert er die units nur mit den switchen des ersten projektes. wenn dann der linker zuschlaegt nimmt dieser bedauerlicherweise eine mit anderen switchen compilierte dcu. was natuerlich dann probleme in den projekt bringt.
die switche sind nur in 2 units. immer alle 100 zu generieren ist uncool. mit "build all" sollte es laufen, dauert halt nur ewig lange.

alzaimar 16. Feb 2006 20:29

Re: Compilerschalter für "Allways build unit"
 
Dann solltet Ihr einfach die betroffenen DCUs nach dem Merge löschen.

generic 17. Feb 2006 11:05

Re: Compilerschalter für "Allways build unit"
 
eine batchgesteuerte "projektverwaltung" gibt es unter d7 ent. nicht.

alzaimar 17. Feb 2006 11:16

Re: Compilerschalter für "Allways build unit"
 
Irgendwie müssen die doch ihre Units wieder zusammenführen. Entweder über eine CVS o.ä., oder eben per Hand. Da beim Entwickeln im Team immer Disziplin erforderlich ist, sollte es doch kein Problem sein, nach dem Merge die paar DCUs zu löschen.

generic 17. Feb 2006 14:06

Re: Compilerschalter für "Allways build unit"
 
Die Projekte liegen in einem Baum. Gemeinsam genutzt Units liegen in gemeinsamen Ordner.
Alle Projekte sind in der Projektverwaltung von Delphi reingeklickert.
Der Entwickler erzeugt via "Alle Projekte compilieren" die Bin's.

Projekt "A" nutzt Unit "A" mit Schalter "A"
Projekt "B" nutzt Unit "A" mit Schalter "B" - Die kompilierte Unit A mit Schalter "A" wird gelinkt.

Bei "Alle Projekte erzeugen":
Projekt "A" nutzt Unit "A" mit Schalter "A"
Projekt "B" nutzt Unit "A" mit Schalter "B" - Die kompilierte Unit A mit Schalter "B" wird gelinkt.

Build dauert mir aber zu lange.

Ich möchte ausschliessen das nicht jemand "Alle Projekte compilieren" verwendet, weil ja sonst das eine binary nicht läuft.
Die Projektgruppe wird als ganzes in einem Teamsource Projekt verwaltet. Also nichts mit zusammen führen.

himitsu 17. Feb 2006 17:57

Re: Compilerschalter für "Allways build unit"
 
Ich ab leider seit bestimmt einem Jahr den selben Wunsch und noch keine wirklich brauchbare Lösung dafür ... vielleicht kann man aber auch mal irgendwann Boaland dazu übereden einen entsprechenden Compilerschalter einzuführen :roll:

Das einzige was hilft, ist entwrder "alles erzeugen", oder halt die DCU's löschen -.-''

Flocke 17. Feb 2006 18:29

Re: Compilerschalter für "Allways build unit"
 
Warum macht ihr dann nicht einfach zwei Units, in die ihr mit $I die eine Unit reinholt (ohne die erste Zeile natürlich).

Delphi-Quellcode:
unit modul_1_a;
{$DEFINE FIRST_OPTION}
{$I modul_1.inc}
Delphi-Quellcode:
unit modul_1_b;
{DEFINE SECOND_OPTION}
{$I modul_1.inc}
Der Compiler erzeugt dann die Units modul_1_a.dcu und modul_1_b.dcu.

himitsu 18. Feb 2006 09:46

Re: Compilerschalter für "Allways build unit"
 
Weil ich z.B. globale Kompilerschalter verwende und die Units nur neu kompiliert werden, wenn sich der Quelltext (also die Datei selber) verändert hat ... auf veränderte Kompilerschalter, welche allerding in den Dateien Veränderungen hervorrufen würden, reagiert der bl*** Compiler nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.
Seite 1 von 3  1 23      

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