Buildmodes für bedingte Kompilierung verwenden

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Buildmodes für bedingte Kompilierung verwenden

Beitrag von af0815 »

Ich verwende zum Beispiel die klassischen Buildmodes 'Debug' und 'Release' - 'Default' lösche normalerweise. Kann ich diese Buildmodes direkt für die bedingte Programmierung verwenden ? Die Lazarus/FPC Wiki hat mir bei der Suche jede Menge Infos ausgespuckt, aber genau diesen Fall aber nicht. Zumindest habe ich nichts gefunden 8)

Ich möchte sowas verwenden und dort im IFDEF direkt die Buildmodes verwenden ohne mit -dDebug das für jeden Buildmode zu konfigurieren.

Code: Alles auswählen

 
{$IFDEF Debug}
  XMLPropStorage1.FileName:=ChangeFileExt(paramstr(0),'.xml');;
{$ELSE}
  XMLPropStorage1.FileName:=GetLocaldata.PropStorageName;
{$ENDIF}
 


Vielleicht steht eh in der Wiki, dann bitte nur den Link dorthin :-)

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Buildmodes für bedingte Kompilierung verwenden

Beitrag von Socke »

af0815 hat geschrieben:Ich möchte sowas verwenden und dort im IFDEF direkt die Buildmodes verwenden ohne mit -dDebug das für jeden Buildmode zu konfigurieren.

Ich fürchte genau das wird notwendig sein.
Der Compiler kenn keine Build Modes und Lazarus definiert auch keinen Define automatisch (laut Ausgabe bei der Compilierung mit -va).
Bei den Defines mit -dDEBUG und -dRELEASE solltest du überprüfen, ob damit keine Einstellungen durch die Compiler-Konfigurationsdatei aktiv werden. Dort hatte ich schon mal entsprechende Abschnitte gesehen, die z.B. Debug-Infos ein- oder ausschalten.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Buildmodes für bedingte Kompilierung verwenden

Beitrag von wp_xyz »

Es gibt seit einiger Zeit "Additions and Overrides" (im deutschen Lazarus übersetzt als "Hinzufügungen und Beeinflussungen") unter den Projekt-Optionen. Hier kannst du für jeden Build-Mode getrennt Symbole für bedingte Compilierung vereinbaren, per "Add" > "Custom option". So kannst du für den Debug-Build-Mode das Define "DEBUG" und für den Release-BuildMode das Define "RELEASE" deklarieren und diese im Code abfragen:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  {$IFDEF DEBUG}
  Label1.Caption := 'DEBUG';
  {$ENDIf}
  {$IFDEF RELEASE}
  Label1.Caption := 'RELEASE';
  {$ENDIF}
end;
Dateianhänge
buildmodes.png

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Buildmodes für bedingte Kompilierung verwenden

Beitrag von af0815 »

Ok, Danke, ich habe es befürchtet.
Ansonsten hat jeder s....ß ein define, nur dort wo mans braucht nicht. OpenSource halt :-) Mann kann es sich ja richten.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten