Versionsinfo

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Versionsinfo

Beitrag von Heinrich Wolf »

Hallo,

wie kriege ich die fpc und Lazarus Version, vielleicht sogar die svn Revision automatisch ins Programm compiliert?
Ich möchte folgende Funktion für Lazarus/fpc detaillieren:

Code: Alles auswählen

function CompilerName : String;
  var    s : String;
         {$ifdef MSWindows}
           {$ifndef fpc}
             t : String;
           {$endif}
         {$endif}
  begin
    s := '';
    {$ifdef Ver80}
      s := 'Borland Delphi 1';
    {$endif}
    {$ifdef Ver90}
      s := 'Borland Delphi 2';
    {$endif}
    {$ifdef Ver93}
      s := 'Borland C Builder 1';
    {$endif}
    {$ifdef Ver100}
      s := 'Borland Delphi 3';
    {$endif}
    {$ifdef Ver110}
      s := 'Borland C Builder 3';
    {$endif}
    {$ifdef Ver120}
      s := 'Borland Delphi 4';
    {$endif}
    {$ifdef Ver125}
      s := 'Borland C Builder 4';
    {$endif}
    {$ifdef Ver130}
      s := 'Borland Delphi 5';
    {$endif}
    {$ifdef Ver140}
      case SysLocale.PriLangID of
        Lang_German :
          s := 'Borland Delphi 6 oder Kylix 3';
      else
        s := 'Borland Delphi 6 or Kylix 3';
      end;
    {$endif}
    {$ifdef Ver150}
      s := 'Borland Delphi 7';
    {$endif}
    {$ifdef Ver170}
      { CompilerVersion = 17.0 }
      s := 'Borland Delphi 2005';
    {$endif}
    {$ifdef Ver180}
      {$ifndef Ver185}
        { CompilerVersion = 18.0 }
        s := 'Borland Delphi 2006';
      {$ELSE}
        s := 'CodeGear Delphi 2007';
      {$endif}
    {$endif}
    {$ifdef Ver200}
      s := 'Embarcadero Delphi 2008';
    {$endif}
    {$ifdef Ver210}
      s := 'Embarcadero Delphi 2010';
    {$endif}
    {$ifdef Ver220}
      s := 'Embarcadero Delphi XE';
    {$endif}
    {$ifdef fpc}
      s := 'Free Pascal/Lazarus';
    {$endif}
    if s = '' then
      begin
        {$ifdef MSWindows}
          {$ifndef fpc}
            str(CompilerVersion : 1 : 1, t);
            if CompilerVersion > 18.0 then
              s := s + 'CodeGear Delphi ' + t
            else
              s := s + 'Borland Delphi ' + t;
          {$endif}
        {$endif}
      end;
    if s = '' then
      case SysLocale.PriLangID of
        Lang_German :
          s := 'unbekannt';
      else
        s := 'unknown';
      end;
    CompilerName := s;
  end;

Socke
Lazarusforum e. V.
Beiträge: 3178
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: Versionsinfo

Beitrag von Socke »

Heinrich Wolf hat geschrieben:wie kriege ich die fpc und Lazarus Version, vielleicht sogar die svn Revision automatisch ins Programm compiliert?
Im Lazarus-Verzeichnis <lazarus>/tools/ gibts das kleine Programm svn2revisioninc, das die SVN-Revision für Lazarus ausliest, daran kannst du ansetzen; für die LCL-Version gibts die Unit lclversion. Alternativ führst du ein Shell-Skript aus:

Code: Alles auswählen

REVISION=`svn info | sed -ne 's/^Revision: //p'`
echo $REVISON
Der FPC stellt fertige Macros bereit, die die Versionsnummer des aktuellen Compilers enthalten: http://www.freepascal.org/docs-html/prog/progse5.html" onclick="window.open(this.href);return false;
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: Versionsinfo

Beitrag von Heinrich Wolf »

Vielen Dank! Das hat mir sehr geholfen.

Antworten