Tuesday, December 18, 2018
Monday, December 3, 2018
{$IFDEF Version Problem
Inspired by Thomas Mueller (dummzeuch) here is a repost of my ifdef version maintained since 2015.
Since Day one of my FDK I had the same problem: How to maintain the distribution with different Delphi versions.
The reason for writing my FDK is/was a better and faster development of iOS and Android apps, but after a short, while it became more and more like a Swiss-knife for my daily work.
Since XE 2 all my new Programs are written with FMX and since 2015 I've used it every day for developing my Windows Programs, too.
So here is my version of the {$I Versions.inc}
unit Delphi.VersionConsts;
// =====> FFFFFF DDDDD K K FireMonkey Development Kit
// ====> F D D K KK (c) F. Lauter aka Mavarik
// ===> FFFF D D KKK O. MĂĽnzberg aka Sir Rufo
// ==> F D D K KK
// => F DDDDD K K Version 2015, 2016, 2017, 2018
{******************************************************************************
* Changes:
* 01.10.15 Everybody should use this Unit - I hate the $I Version.inc files
* I hope that someday EMBT will always provide this Unit with every
* new Version.
******************************************************************************}
interface
{$IF Declared(CompilerVersion)}
{$ELSE}
const
CompilerVersion = 0.0;
{$ENDIF}
const
CompilerVersion_RIO = 33.0;
CompilerVersion_TOKYO = 32.0;
CompilerVersion_BERLIN = 31.0;
CompilerVersion_SEATTLE = 30.0;
CompilerVersion_XE8 = 29.0;
CompilerVersion_XE7 = 28.0;
CompilerVersion_XE6 = 27.0;
CompilerVersion_XE5 = 26.0;
CompilerVersion_XE4 = 25.0;
CompilerVersion_XE3 = 24.0;
CompilerVersion_XE2 = 23.0;
CompilerVersion_XE = 22.0;
CompilerVersion_2010 = 21.0;
CompilerVersion_2009 = 20.0;
CompilerVersion_2007 = 18.5;
CompilerVersion_2006 = 18.0;
CompilerVersion_2005 = 17.0;
CompilerVersion_8_NET = 16.0;
CompilerVersion_7 = 15.0;
CompilerVersion_6_2 = 14.2;
CompilerVersion_6_1 = 14.1;
CompilerVersion_6 = 14.0;
const
Compiler_RIO = CompilerVersion = CompilerVersion_RIO; // Carnival
Compiler_TOKYO = CompilerVersion = CompilerVersion_TOKYO; // Godzilla
Compiler_BERLIN = CompilerVersion = CompilerVersion_BERLIN;
Compiler_SEATTLE = CompilerVersion = CompilerVersion_SEATTLE;
Compiler_XE8 = CompilerVersion = CompilerVersion_XE8;
Compiler_XE7 = CompilerVersion = CompilerVersion_XE7;
Compiler_XE6 = CompilerVersion = CompilerVersion_XE6;
Compiler_XE5 = CompilerVersion = CompilerVersion_XE5;
Compiler_XE4 = CompilerVersion = CompilerVersion_XE4;
Compiler_XE3 = CompilerVersion = CompilerVersion_XE3;
Compiler_XE2 = CompilerVersion = CompilerVersion_XE2;
Compiler_XE = CompilerVersion = CompilerVersion_XE;
Compiler_2010 = CompilerVersion = CompilerVersion_2010;
Compiler_2009 = CompilerVersion = CompilerVersion_2009;
Compiler_2007 = CompilerVersion = CompilerVersion_2007;
Compiler_2006 = CompilerVersion = CompilerVersion_2006;
Compiler_2005 = CompilerVersion = CompilerVersion_2005;
Compiler_8_NET = CompilerVersion = CompilerVersion_8_NET;
Compiler_7 = CompilerVersion = CompilerVersion_7;
Compiler_6_2 = CompilerVersion = CompilerVersion_6_2;
Compiler_6_1 = CompilerVersion = CompilerVersion_6_1;
Compiler_6 = CompilerVersion = CompilerVersion_6;
const
{$IF Compiler_RIO} PackageVersion = '260';StudioVersion = '20.0'; {$ENDIF}
{$IF Compiler_TOKYO} PackageVersion = '250';StudioVersion = '19.0'; {$ENDIF}
{$IF Compiler_BERLIN} PackageVersion = '240';StudioVersion = '18.0'; {$ENDIF}
{$IF Compiler_SEATTLE}PackageVersion = '230';StudioVersion = '17.0'; {$ENDIF}
{$IF Compiler_XE8} PackageVersion = '220';StudioVersion = '16.0'; {$ENDIF}
{$IF Compiler_XE7} PackageVersion = '210';StudioVersion = '15.0'; {$ENDIF}
{$IF Compiler_XE6} PackageVersion = '200';StudioVersion = '14.0'; {$ENDIF}
{$IF Compiler_XE5} PackageVersion = '190';StudioVersion = '13.0'; {$ENDIF}
{$IF Compiler_XE4} PackageVersion = '180';StudioVersion = '12.0'; {$ENDIF}
{$IF Compiler_XE3} PackageVersion = '170';StudioVersion = '11.0'; {$ENDIF}
{$IF Compiler_XE2} PackageVersion = '160';StudioVersion = '10.0'; {$ENDIF}
{$IF Compiler_XE} PackageVersion = '150';StudioVersion = '9.0'; {$ENDIF}
{$IF Compiler_2010} PackageVersion = '140';StudioVersion = '8.0'; {$ENDIF}
{$IF Compiler_2009} PackageVersion = '120';StudioVersion = '7.0'; {$ENDIF}
{$IF Compiler_2007} PackageVersion = '110';StudioVersion = '6.0'; {$ENDIF}
{$IF Compiler_2006} PackageVersion = '100';StudioVersion = '5.0'; {$ENDIF}
{$IF Compiler_2005} PackageVersion = '90';StudioVersion = '4.0'; {$ENDIF}
{$IF Compiler_8_NET} PackageVersion = '80';StudioVersion = '3.0'; {$ENDIF}
{$IF Compiler_7} PackageVersion = '70';StudioVersion = '2.0'; {$ENDIF}
{$IF Compiler_6_2} PackageVersion = '60';StudioVersion = '1.2'; {$ENDIF}
{$IF Compiler_6_1} PackageVersion = '60';StudioVersion = '1.1'; {$ENDIF}
{$IF Compiler_6} PackageVersion = '60';StudioVersion = '1.0'; {$ENDIF}
type
TDelphiVersion = Record
Name : String;
StudioVersion : String;
end;
const
TDelphiVersions : array[0..6] of TDelphiVersion = ((Name:'Delphi XE6';StudioVersion:'14.0'),
(Name:'Delphi XE7';StudioVersion:'15.0'),
(Name:'Delphi XE8';StudioVersion:'16.0'),
(Name:'Delphi 10 Seattle';StudioVersion:'17.0'),
(Name:'Delphi 10.1 Berlin';StudioVersion:'18.0'),
(Name:'Delphi 10.2 Tokyo';StudioVersion:'19.0'),
(Name:'Delphi 10.3 Rio';StudioVersion:'20.0'));
const
Compiler_RIO_UP = CompilerVersion >= CompilerVersion_RIO;
Compiler_TOKYO_UP = CompilerVersion >= CompilerVersion_TOKYO;
Compiler_BERLIN_UP = CompilerVersion >= CompilerVersion_BERLIN;
Compiler_SEATTLE_UP = CompilerVersion >= CompilerVersion_SEATTLE;
Compiler_XE8_UP = CompilerVersion >= CompilerVersion_XE8;
Compiler_XE7_UP = CompilerVersion >= CompilerVersion_XE7;
Compiler_XE6_UP = CompilerVersion >= CompilerVersion_XE6;
Compiler_XE5_UP = CompilerVersion >= CompilerVersion_XE5;
Compiler_XE4_UP = CompilerVersion >= CompilerVersion_XE4;
Compiler_XE3_UP = CompilerVersion >= CompilerVersion_XE3;
Compiler_XE2_UP = CompilerVersion >= CompilerVersion_XE2;
Compiler_XE_UP = CompilerVersion >= CompilerVersion_XE;
Compiler_2010_UP = CompilerVersion >= CompilerVersion_2010;
Compiler_2009_UP = CompilerVersion >= CompilerVersion_2009;
Compiler_2007_UP = CompilerVersion >= CompilerVersion_2007;
Compiler_2006_UP = CompilerVersion >= CompilerVersion_2006;
Compiler_2005_UP = CompilerVersion >= CompilerVersion_2005;
Compiler_8_NET_UP = CompilerVersion >= CompilerVersion_8_NET;
Compiler_7_UP = CompilerVersion >= CompilerVersion_7;
Compiler_6_2_UP = CompilerVersion >= CompilerVersion_6_2;
Compiler_6_1_UP = CompilerVersion >= CompilerVersion_6_1;
Compiler_6_UP = CompilerVersion >= CompilerVersion_6;
Compiler_RIO_DOWN = CompilerVersion <= CompilerVersion_RIO;
Compiler_TOKYO_DOWN = CompilerVersion <= CompilerVersion_TOKYO;
Compiler_BERLIN_DOWN = CompilerVersion <= CompilerVersion_BERLIN;
Compiler_SEATTLE_DOWN = CompilerVersion <= CompilerVersion_SEATTLE;
Compiler_XE8_DOWN = CompilerVersion <= CompilerVersion_XE8;
Compiler_XE7_DOWN = CompilerVersion <= CompilerVersion_XE7;
Compiler_XE6_DOWN = CompilerVersion <= CompilerVersion_XE6;
Compiler_XE5_DOWN = CompilerVersion <= CompilerVersion_XE5;
Compiler_XE4_DOWN = CompilerVersion <= CompilerVersion_XE4;
Compiler_XE3_DOWN = CompilerVersion <= CompilerVersion_XE3;
Compiler_XE2_DOWN = CompilerVersion <= CompilerVersion_XE2;
Compiler_XE_DOWN = CompilerVersion <= CompilerVersion_XE;
Compiler_2010_DOWN = CompilerVersion <= CompilerVersion_2010;
Compiler_2009_DOWN = CompilerVersion <= CompilerVersion_2009;
Compiler_2007_DOWN = CompilerVersion <= CompilerVersion_2007;
Compiler_2006_DOWN = CompilerVersion <= CompilerVersion_2006;
Compiler_2005_DOWN = CompilerVersion <= CompilerVersion_2005;
Compiler_8_NET_DOWN = CompilerVersion <= CompilerVersion_8_NET;
Compiler_7_DOWN = CompilerVersion <= CompilerVersion_7;
Compiler_6_2_DOWN = CompilerVersion <= CompilerVersion_6_2;
Compiler_6_1_DOWN = CompilerVersion <= CompilerVersion_6_1;
Compiler_6_DOWN = CompilerVersion <= CompilerVersion_6;
{$IF DEFINED( IOS ) or DEFINED(ANDROID)}
type
Compiler = class sealed
public
Const
HasArc = true;
end;
const
CompilerIsMobil = true;
PlattFormOSX = false;
SupportsAnsiStrings = false; //Compiler_BERLIN_UP;
{$DEFINE CompilerIsMobil}
{$ELSE}
type
Compiler = class sealed
public
Const
HasArc = false;
end;
const
{$IFDEF MACOS}
PlattFormOSX = true;
{$ENDIF}
{$REGION 'Documentation'}
/// <summary>
/// true if target ist iOS or Android
/// </summary>
{$ENDREGION}
CompilerIsMobil = false;
SupportsAnsiStrings = true;
{$ENDIF}
implementation
end.
Subscribe to:
Posts (Atom)