![]() |
Viele Projekte auf einmal kompilieren
Hi,
für jedes Programm-Release muss ich ca. 220 Delphi Projekte kompilieren (das meiste davon BPLs). Das Problem ist, dass das BDS in einer Project Group nicht mehr als 99 Projekte zulässt. Oder genauer gesagt: man kann zwar mehr hinzufügen, danach stürzt BDS aber an den unterschiedlichsten Stellen ab (Internal Error E391283782Wasweissich. Gibt es eine andere Methode all diese Pakete neu zu erstellen? Von mir aus auch als Batch, soweit man alle Warnungen unterdrücken kann und ich nur sehe:
Code:
Eine Möglichkeit bei allen Packages, Applications und DLL Dateien die Minor und/oder Release Versionsnummer automatisch zu erhöhen oder festzulegen, ohne dabei die Build-No. ändern zu müssen wär auch genial.
MyBPL1.bpl: Success
MyBPL2.bpl: Error .... PS: Eingesetzt wird BDS 2006 mit Update 2 |
Re: Viele Projekte auf einmal kompilieren
Wie wärs die ganzen Projekte auf 5 Projektgruppen aufzuteilen?
|
Re: Viele Projekte auf einmal kompilieren
Ich weis das es da eine Möglichkeit gibt, automatisch Projekte zu kompilieren. Hab nur leider hier gerade nichts parat. Ich schau aber heute abend gerne zuhause nach, ob ich darüber noch infos habe
Gruß Ansgar |
Re: Viele Projekte auf einmal kompilieren
Du kannst die Delphi-Projektdateien (egal was drin ist) direkt mit der Compiler - Echse (dcc32.exe) aufrufen und so durchkompilieren.
Wichtig ist dabei jedoch, dass Du die Suchpfade der Projekte (und alle weiteren nötigen Compilerschalter) in der Projektname.cfg (oder dcc32.cfg) im gleichen Verzeichnis liegen. Das bedeutet für Dich, dass Du erstmal ne Weile nach den richtigen Einstellungen in der Datei nachforschst, aber prinzipiell ist das kein Problem. Das setzen der Versionsinformationen würde ich in diesem Fall per 'manuell' kompilierter Resource machen. Damit kannst Du ein kleines Tool laufen lassen, welches die Versionsinformationen in der .res - Datei setzt, diese dann in eine .dcr Kompiliert (brcc32.exe, der Resource-Compiler) und erst diese wird dann in das Projekt eingebunden. Das hat den Nachteil, dass Du die Version nicht mehr in der IDE setzen kannst, aber dafür ist das automatisiert. Alternativ kannst Du auch externe Tools wie z.B. FinalBuilder einsetzen, die kosten dann aber was. |
Re: Viele Projekte auf einmal kompilieren
Das ist die momentan verwendete Methode. Das ist nur recht nervig immer zwischen allen hin und her zu schalten, vor allem wenn es in bei einem Package in ProjectGroup3 kracht, weil in ProjectGroup1 bei einem Project ein Interface abgeändert wurde usw.
Außerdem ist seit dem Update 2 die Compile/Build all Funktion total unbrauchbar. Die ersten 3-20 Projekte werden ohne Probleme gebaut, aber dann bricht der Prozess mit Internal Error ab. Klickt man jedes Package einzeln an und wählt im Kontext Menü "Compile" oder "Build" geht alles problemlos. Momentan muss ich das bei jedem Release manuell machen und wenn irgendwo noch ein echter Compile Error auftaucht und ich ein Paket fixen muss kann ich von vorne anfangen... Daher hab ich mir gedacht ich könnte mal eine praktischere Lösung suchen die auch gleich alles kompiliert. |
Re: Viele Projekte auf einmal kompilieren
ich glaub auf Luckies Seite wurde irgendwo ein Tool genannt, womit man die Versionsinfo in der .res ändern kann (diese dürfte sich dann auch in den Projektoptionen noch ändern lassen)
|
Re: Viele Projekte auf einmal kompilieren
Zitat:
Ich hab mir den dcc32 mal kurz angeschaut: Zum Beispiel verabschiedet sich der gleich mit "Required package "IndyCore" not found.". Ich denke mal, dass ich dazu den Library search path aus dem BDS brauche, also habe ich mir den rauskopiert und in eine dcc32.cfg geschrieben:
Code:
Aber er findet die trotzdem nicht. Kann es sein dass er $(BDS) nicht auflösen kann? Es wär schon praktisch wenn ich die Pfade verwenden könnte, da die Pfade auf den beiden Rechnern auf denen hauptsächlich kopmiliert wird, jeweils andere Programm und Komponentenpfade haben.
-L";$(BDS)\Imports;$(BDS)\Lib\Indy10;...vielemehr"
Ich hab in meiner compile.cmd Datei mal ausprobiert BDS zu setzen:
Code:
Bringt aber auch nichts.
SET BDS="D:\Programme\Borland\BDS\4.0\"
dcc32.exe MPProgCore.dpk pause |
Re: Viele Projekte auf einmal kompilieren
Nein, der dcc32.exe kann die Variablen nicht auflösen. Leider.
ABER :) Du kannst diese Pfade auch in der dcc32.cfg im BDS\Bin Verzeichnis setzen. Die existiert ja auf jeder maschine, und muss daher nur einmal für diese Maschine korrekt gesetzt werden. Die Pfade der Projekte untereinander (wenn sie sich gegenseitig brauchen) sollten aber dann zwingend relativ zueinander sein. |
Re: Viele Projekte auf einmal kompilieren
Hmm nein. ich hab die Pfade mal aufgelöst, geprüft ob sie stimmen, unter Bin in die dcc32.cfg eingetragen, aber IndyCore wird immer noch nicht gefunden.
|
Re: Viele Projekte auf einmal kompilieren
Trag mal den Pfad zu den Indy-DCU's in den Unit-Suchpfad ein. Nicht den Pfad zum Package in den Package-Suchpfad.
|
Re: Viele Projekte auf einmal kompilieren
Welcher Parameter entspricht dem Unit search path?
|
Re: Viele Projekte auf einmal kompilieren
Ich glaube -U. Aber wenn Du dcc32 ohne Parameter aufrufst zeigt er Dir die Liste der verfügbaren Parameter an. Ich hab grad nur VM's ohne Delphi offen und nicht genug Ram da um noch eine weitere VM zu starten, deswegen kann ich nicht selber nachgucken.
|
Re: Viele Projekte auf einmal kompilieren
Genau da hab ich nachgeschaut bevor ich die Frage gestellt hab ;)
Edit: D'oh, nein natürlich hab ich in der bcc32.exe nachgeschaut :wall: |
Re: Viele Projekte auf einmal kompilieren
Code:
Ich nutze es meis folgendermaßen:
dcc32.exe -U"<Path>" my.dpr
Inhalt der Datei: "_Build.cmd"
Code:
@ECHO OFF
echo. echo Clean up... echo. CALL _CleanUp.bat > NUL CLS REM Applications name whiteout extension SET APPNAME=TutKeyView REM Filephats SET RESOURCEFILE="Resources\TutKeyViewRes.rc" SET UNITDIRS=_units; SET UNITDIRS=%UNITDIRS%C:\Programme\Borland\Delphi6\Projects\MyPackages; SET UNITDIRS=%UNITDIRS%C:\...Delphi6\Projects\MeinePackages\XPMan; SET UNITDIRS=%UNITDIRS%C:\...\Delphi6\Projects\MeinePackages\pngimage15; SET UNITDIRS=%UNITDIRS%C:\...\Delphi6\Projects\MeinePackages\CoolTrayIcon; SET UNITDIRS=%UNITDIRS%C:\...\Delphi6\Projects\MeinePackages\graphics32\graphics32; echo. echo Make %APPNAME% ... echo =========================================================== echo. echo Create Resourcefile: %RESOURCEFILE% ... echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BRCC32 -v %RESOURCEFILE% echo. echo. echo Create Application: %APPNAME%.exe ... echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DCC32 -$O+ -$R+ -$I+ -U"%UNITDIRS%" %APPNAME%.dpr echo. echo Done. SET APPNAME= SET RESOURCEFILE= SET UNITDIRS= pause CALL _CleanUp.bat |
Re: Viele Projekte auf einmal kompilieren
Zitat:
![]() Damit erstelle ich alle Projekte, auch mit mehreren Compilern, in einem Durchlauf, inklusive Doku und ZIP Archiven. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 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