![]() |
Delphi Compiler Kommandozeile herausfinden
Wenn ich im Projekt-Manager ein Projekt auswähle, dann rechtsklick drauf und Build, dann wird ja der dcc32 angeworfen. Kann man rausfinden, mit welchem Aufruf inklusive der Kommandozeile das passiert ?
Hintergrund: Wir müssen jetzt Unittests für alle Programme haben wir möchten im Post-Build-Event den Unittest erstellen, ausführen, auswerten und dann (wenn alles ok) deployen. |
AW: Delphi Compiler Kommandozeile herausfinden
Hallo,
hilft das hier? ![]() BTW: In der IDE wurde auch der DCC32-Aufruf mal angezeigt, ich finde den Schalter aber nicht mehr. |
AW: Delphi Compiler Kommandozeile herausfinden
Ich habe mal ein Tool dafür geschrieben, "Delphi Batch Compiler", aber das nicht weiter verfolgt, seit es msbuild dafür gibt. Ich kompiliere nun nur noch damit, so dass ich mich um die ganzen dcc32-Parameter nicht mehr kümmern muss.
Beispiel:
Code:
Ich halte für den genannten Zweck das Post-Build Event allerdings für etwas fragwürdig. Normalerweise übernimmt das die Buildmaschine oder das Buildskript nach dem Erstellen des Projekts.
MSBuild "Example.dproj" /target:Build /p:config=Debug;Platform=Win32
|
AW: Delphi Compiler Kommandozeile herausfinden
Wenn du das Build machst, sollte in den Meldungen im Ausgabe-Tab ungefähr sowas auftauchen:
Zitat:
|
AW: Delphi Compiler Kommandozeile herausfinden
Aber statt dem DCC den MSBuild zu verwenden ist schon von Vorteil.
Da werden dann direkt die Optionen der .dproj benuzt und an den DCC übergeben, anstatt alles manuell an den DCC übergeben zu müssen. |
AW: Delphi Compiler Kommandozeile herausfinden
Hallo Uwe,
ich habe genau diese Ausgabe irgendwo deaktiviert, finde aber den Schalter nicht ... |
AW: Delphi Compiler Kommandozeile herausfinden
Tools - Optionen - IDE - Compilierung und Ausführung - Ausführlichkeit?
|
AW: Delphi Compiler Kommandozeile herausfinden
Ich wüsste garnicht, dass man die deaktivieren kann,
aber die ist standardmäßig zusammengefaltet und muß man im BuildLog erst doppelklicken. |
AW: Delphi Compiler Kommandozeile herausfinden
Alternativ auch in demselben Optionsdialog - Befehlszeile anzeigen. Die wird dann aber im Tab Erzeugen angezeigt.
|
AW: Delphi Compiler Kommandozeile herausfinden
Wenn der MSBuild das macht, dann bin ich es zufrieden. Es geht nur darum, dass ich es simple aufrufen kann. Das Problem ist ja, dass der Test eine eigene exe ist und ich nicht extra manuell nochmal übersetzen will, da kann ich das im PostBuild einsetzen mit meinem Packer und Jenkins-Anschubser.
Vielen Dank! |
AW: Delphi Compiler Kommandozeile herausfinden
jupp, bei MSBuild gibst normal einfach nur noch mit an, welche Config und Platform (z.B. Debug und Win32) du bauen willst und die ganzen sonstigen Projektoptionen kommen aus der DPROJ.
MSBuild braucht zwar auch noch paar Sachen, aber die gibt es schon fertig (rsvars.bat)
Code:
call "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"
"%FrameworkDir%\MSBuild.exe" /t:Build /p:config=Debug /p:platform=Win32 MyProject.dproj
Code:
call "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\rsvars.bat"
"%FrameworkDir%\MSBuild.exe" /t:Build /p:config=Debug /target:Deploy /p:platform=iOSDevice64 MyProject.dproj ich glaub die "parameter" gingen auch zusammen
Code:
und natürlich auch Release, Debug oder selbsterstellte Konfigurationen
"%FrameworkDir%\MSBuild.exe" /t:Build /p:config=Debug,platform=Win32 MyProject.dproj
Code:
wenn p:config und p:platform garnicht angegeben werden, dann nimmt es das, was du zuletzt im Projektmanager aktiviert hattest
/p:config=Release
(meißtens will man ja aber halt "immer" sicher etwas Bestimmtes machen, drum gibt man es an) ich hatte mal Probleme, dass der Ausgabepfad nicht klappte, da kann man z.B. den dann auch noch mit angeben (oder einfach mal abweichend von der Config überschreiben)
Code:
wer noch bissl aufräumen lassen will .... Clean, Build und ich glaub Compile .... halt was man alles auch über IDE/Projektmanager anstoßen kann
/p:DCC_ExeOutput="..\_bin\MyProject.exe"
Code:
PS: nicht wundern \t: und \target: sind das Selbe ... k.A. warum es überall anders geschrieben wird,
"%FrameworkDir%\MSBuild.exe" /t:Clean /t:Build /p:config=Debug ...
also es geht z.B. auch
Code:
/target:Compile
/target:Build /target:Clean,Build /target:Clean,Build,Deploy oder nur /target:Clean ![]() |
AW: Delphi Compiler Kommandozeile herausfinden
Zitat:
Was jetzt dazu kommen soll ist einfach ein Schritt vor dem Zip und zwar den Test bauen und ausführen und nur dann weiter machen, wenn dieser vollständig erfolgreich durchlief. |
AW: Delphi Compiler Kommandozeile herausfinden
Wir nutzen FinalBuilder.
Im ersten Schritt hatte ich den inzwischen so geändert, dass er auch als Konsole laufen kann, mit Steuerung über Parameter, anstatt Dialog Und nun auch die alten Delphi-Compiler-Actions zum Großteil durch MSBuild-Actions ersetzt. Allerdings fummle ich im BeforeScript noch an den Actions rum, z.B. um via Dialog zentral die Delphi-Version und Config ändern zu können. und es gäbe von denen auch ein Continua CI |
AW: Delphi Compiler Kommandozeile herausfinden
Zitat:
|
AW: Delphi Compiler Kommandozeile herausfinden
Dasw ist bei uns in der Firma alles ein bissl politisch. Schön wäre das schon mit Jenkins und msbuild.. ich frag mal rum.. Die sind alle etwas Java-fixiert hier :p
|
AW: Delphi Compiler Kommandozeile herausfinden
Abgesehn, davon dass du im Jenkins irgendwo ein Windows verfügbar haben mußt, damit der Delphi-Compiler da laufen kann
und für Java z.B. auch Linux reichen würde, sollte Beides zusammen darin auch gleichzeitig nutzbar sein. Zeig einfach, dass Delphi und Java fast zusammengehören ... guter Grund sich nicht mehr so dagegen zu wehren. ![]() OK, alles ist relativ (wie da jemand mal so sagte) ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 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