Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MakeScript für Delphi Projekt (https://www.delphipraxis.net/116480-makescript-fuer-delphi-projekt.html)

Luckie 30. Jun 2008 12:14


MakeScript für Delphi Projekt
 
Ich habe mir eine Art Make-Script für meine Delphi Projekte geschrieben:
Code:
@echo off
set APP=Template
echo Kompilieren der Ressourcen
echo ==========================
rcstamp res\resource.rc *.*.*.+
brcc32 res\resource.rc resources\-foresource.res
echo.
echo.
echo Kompilieren der Anwendung
echo =========================
echo Loeschen alter kompilierte Units...
echo.
del /s *.dcu
echo.
echo Kompilieren der Anwendung...
echo.
C:\Programme\Borland\Delphi6\Bin\dcc32 %APP%.dpr
echo.
echo Loeschen der temporaeren Dateien und der kompilierten Units...
echo.
del /s *.~*
del /s *.dcu
echo.
echo.
echo Packen mit UPX
echo ==============
echo.
upx -9 --no-reloc --all-methods --all-filters ..\%APP%.exe
echo.
echo.
echo Mit 7Zip packen...
echo ==================
echo bestehendes Archiv loeschen...
echo.
del Template.zip
echo.
echo Archiv neu erstellen...
echo.
7z a -tzip ..\%APP%.zip ..\*
echo.
echo.
echo Programmstarten
echo ===============
set /P CHS=Programm starten mit [Return]. Beenden mit "E":
if /I "%CHS%"=="E" goto :ENDE

start ..\%APP%.exe

:ENDE
Das funktioniert so ganz gut. Allerdings ein Punkt stören mich etwas:

Ich benutze folgende Datei für die Kompilerschalter:
Code:
{$DEFINE Debug}
{$IFDEF Debug} 
  {$OPTIMIZATION  OFF} 
  {$DEBUGINFO     ON} 
  {$LOCALSYMBOLS  ON} 
  {$REFERENCEINFO ON} 
  {$DEFINITIONINFO ON} 
  {$ASSERTIONS    ON} 
{$ELSE} 
  {$OPTIMIZATION  ON} 
  {$DEBUGINFO     OFF} 
  {$LOCALSYMBOLS  OFF} 
  {$REFERENCEINFO OFF} 
  {$ASSERTIONS    OFF} 
{$ENDIF}
Und dann entsprechender Kompilerschalter in der Projektdatei:
Delphi-Quellcode:
{$DEFINE DEBUG}
Jetzt muss ich natürlich vorher immer den Kompilerschalter von Hand im Source auskommentieren. Wie kann ich das noch automatisieren mit dem Script?

NormanNG 30. Jun 2008 12:43

Re: MakeScript für Delphi Projekt
 
Hi,

starte mal direkt "dcc32.exe" - dann werden dir alle möglichen
Parameter erklärt, u.a. auch "-D<symbo>" ...

Luckie 30. Jun 2008 13:14

Re: MakeScript für Delphi Projekt
 
Erklärt ist wohl etwas übertrieben:
Code:
-D<syms> = Define conditionals
Wo finde ich eine Erklärung, was ich da angeben muss?

Daniel 30. Jun 2008 13:19

Re: MakeScript für Delphi Projekt
 
Ich konnte da auch nur Google benutzen, aber dort stehts dann:
http://safari.oreilly.com/1565926595/appa-1-fm2xml

Luckie 30. Jun 2008 13:25

Re: MakeScript für Delphi Projekt
 
Das habe ich auch gefunden, nur muss man da angemeldet sein und das kostet Geld. :(

Daniel 30. Jun 2008 13:33

Re: MakeScript für Delphi Projekt
 
Liste der Anhänge anzeigen (Anzahl: 1)
:shock:
Ist ja merkwürdig.

Also der Direktlink via Google geht noch. Dort nach "dcc32 define conditionals" suchen und man bekmommt eine Seite wie im Anhang. Diese hatte ich auch vor Augen, als ich den Link in meinen Beitrag weiter oben einfügte.

NormanNG 30. Jun 2008 13:35

Re: MakeScript für Delphi Projekt
 
Zitat:

Zitat von Luckie
Erklärt ist wohl etwas übertrieben:
Code:
-D<syms> = Define conditionals
Wo finde ich eine Erklärung, was ich da angeben muss?

Ich verstehe das so:

Statt
{$DEFINE symbol}
im Quelltext
-Dsymbol
als Parameter

iKilledKenny 30. Jun 2008 13:49

Re: MakeScript für Delphi Projekt
 
Man kann dcc32.exe auch mit einem CFG File benutzen, wo man verschiedenste Optionen eintragen kann. Das macht die Skripterei ein bischen übersichtlicher. Siehe Delphi Wiki

Leider finde ich gerade keinen Link zu den Optionen, die in den Config Files angegeben werden können.

Luckie 30. Jun 2008 14:11

Re: MakeScript für Delphi Projekt
 
Zitat:

Zitat von NormanNG
Zitat:

Zitat von Luckie
Erklärt ist wohl etwas übertrieben:
Code:
-D<syms> = Define conditionals
Wo finde ich eine Erklärung, was ich da angeben muss?

Ich verstehe das so:

Statt
{$DEFINE symbol}
im Quelltext
-Dsymbol
als Parameter

Wird damit der Kompilerschalter in der Programmdatei "überschrieben"?

NormanNG 30. Jun 2008 14:38

Re: MakeScript für Delphi Projekt
 
Hi,

Zitat:

Wird damit der Kompilerschalter in der Programmdatei "überschrieben"?
Was willst du denn überschreiben :gruebel:

"define" definiert ein Symbol.
Nochmal definiern (i.e. "überschreiben") ändert daran ja nichts.

Einfach alle debug-Defines im Quellcode entfernen. Dann in deinem
CMD-Script im Aufruf von dcc32 den Paramteter "-Ddebug" einfügen.
Jetzt wird immer eine Debug-Version compiliert.
In einem anderen Script lässt du das -D... weg, schon gibts die Final-Version :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:51 Uhr.
Seite 1 von 2  1 2      

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