xtool/contrib/fundamentals/flcInclude.inc

1546 lines
48 KiB
PHP

{******************************************************************************}
{ }
{ File name: flcInclude.inc }
{ File updated: 2020/07/03 }
{ }
{ Library: Fundamentals 5.00 }
{ Github: https://github.com/fundamentalslib }
{ E-mail: fundamentals.library at gmail.com }
{ }
{ Conditionals defined elsewhere: }
{ }
{ DEBUG - Enable debug mode. }
{ Sets compiler options for debug information, }
{ range/overflow checking, assertions, etc. }
{ If not defined, set compiler options for release. }
{ PurePascal - Don't use assembler code. }
{ All code is compiled from pure Pascal for maximum }
{ portability. }
{ }
{ Conditionals defined here: }
{ }
{ DELPHI - Delphi compiler. }
{ DELPHI1 - Delphi 1. }
{ DELPHI2 - Delphi 2. }
{ DELPHI3 - Delphi 3. }
{ DELPHI4 - Delphi 4. }
{ DELPHI5 - Delphi 5. }
{ DELPHI6 - Delphi 6. }
{ DELPHI7 - Delphi 7. }
{ DELPHI8 - Delphi 8. }
{ DELPHI2005 - Delphi 2005. }
{ DELPHI2006 - Delphi 2006. }
{ DELPHI2007 - Delphi 2007. }
{ DELPHI2009 - Delphi 2009. }
{ DELPHI2010 - Delphi 2010. }
{ DELPHIXE - Delphi XE. }
{ DELPHIXE2 - Delphi XE2. }
{ DELPHIXE3 - Delphi XE3. }
{ DELPHIXE4 - Delphi XE4. }
{ DELPHIXE5 - Delphi XE5. }
{ DELPHIXE6 - Delphi XE6. }
{ DELPHIXE7 - Delphi XE7. }
{ DELPHIXE8 - Delphi XE8. }
{ DELPHI10 - Delphi 10. }
{ DELPHI10_1 - Delphi 10.1. }
{ DELPHI10_2 - Delphi 10.2. }
{ DELPHI10_3 - Delphi 10.3. }
{ DELPHI10_4 - Delphi 10.4. }
{ }
{ DELPHI2_UP - Delphi 2 or later. }
{ DELPHI3_UP - Delphi 3 or later. }
{ DELPHI4_UP - Delphi 4 or later. }
{ DELPHI5_UP - Delphi 5 or later. }
{ DELPHI6_UP - Delphi 6 or later. }
{ DELPHI7_UP - Delphi 7 or later. }
{ DELPHI8_UP - Delphi 8 or later. }
{ DELPHI2005_UP - Delphi 2005 or later. }
{ DELPHI2006_UP - Delphi 2006 or later. }
{ DELPHI2007_UP - Delphi 2007 or later. }
{ DELPHI2009_UP - Delphi 2009 or later. }
{ DELPHI2010_UP - Delphi 2010 or later. }
{ DELPHIXE_UP - Delphi XE or later. }
{ DELPHIXE2_UP - Delphi XE2 or later. }
{ DELPHIXE3_UP - Delphi XE3 or later. }
{ DELPHIXE4_UP - Delphi XE4 or later. }
{ DELPHIXE5_UP - Delphi XE5 or later. }
{ DELPHIXE6_UP - Delphi XE6 or later. }
{ DELPHIXE7_UP - Delphi XE7 or later. }
{ DELPHIXE8_UP - Delphi XE8 or later. }
{ DELPHI10_UP - Delphi 10 or later. }
{ DELPHI10_1_UP - Delphi 10.1 or later. }
{ DELPHI10_2_UP - Delphi 10.2 or later. }
{ DELPHI10_3_UP - Delphi 10.3 or later. }
{ DELPHI10_4_UP - Delphi 10.4 or later. }
{ }
{ DELPHI3_DOWN - Delphi 3 or earlier. }
{ DELPHI4_DOWN - Delphi 4 or earlier. }
{ DELPHI5_DOWN - Delphi 5 or earlier. }
{ DELPHI6_DOWN - Delphi 6 or earlier. }
{ DELPHI7_DOWN - Delphi 7 or earlier. }
{ }
{ KYLIX - Kylix compiler. }
{ BCB - Borland C++ Builder compiler. }
{ }
{ FREEPASCAL - Free Pascal compiler. }
{ FREEPASCAL1 - FreePascal 1.x }
{ FREEPASCAL2 - FreePascal 2.x }
{ FREEPASCAL3 - FreePascal 3.x }
{ FREEPASCAL2_UP - FreePascal 2.x or later. }
{ FREEPASCAL3_UP - FreePascal 3.x or later. }
{ FREEPASCAL2_0 - FreePascal 2.0 }
{ FREEPASCAL2_2 - FreePascal 2.2 }
{ FREEPASCAL2_4 - FreePascal 2.4 }
{ FREEPASCAL2_6 - FreePascal 2.6 }
{ FREEPASCAL2_6_UP - FreePascal 2.6 or later. }
{ FREEPASCAL2_7 - FreePascal 2.7 }
{ FREEPASCAL2_7_UP - FreePascal 2.7 or later. }
{ FREEPASCAL3_0 - FreePascal 3.0 }
{ FREEPASCAL3_0_UP - FreePascal 3.0 or later. }
{ FREEPASCAL3_1 - FreePascal 3.1 }
{ FREEPASCAL3_1_UP - FreePascal 3.1 or later. }
{ FREEPASCAL3_2 - FreePascal 3.2 }
{ FREEPASCAL3_2_UP - FreePascal 3.2 or later. }
{ }
{ SupportCardinal - Compiler supports Cardinal type. }
{ SupportDynArray - Compiler supports dynamic arrays. }
{ SupportInt64 - Compiler supports Int64 type. }
{ SupportUInt64 - Compiler supports UInt64 type. }
{ SupportNativeInt - Compiler supports NativeInt type. }
{ SupportNativeUInt - Compiler supports NativeUInt type. }
{ SupportFixedInt - Compiler supports FixedInt type. }
{ SupportFixedUInt - Compiler supports FixedUInt type. }
{ SupportAnsiChar - Compiler supports AnsiChar type. }
{ SupportAnsiString - Compiler supports AnsiString type. }
{ SupportWideChar - Compiler supports WideChar type. }
{ SupportWideString - Compiler supports WideString type. }
{ SupportShortString - Compiler supports short String type. }
{ SupportUCS4Char - Compiler supports UC4Char type. }
{ SupportUTF8Char - Compiler supports UTF8Char type. }
{ SupportUTF8String - Compiler supports UTF8String type. }
{ SupportUCS4String - Cimpiler supports UCS4String type. }
{ SupportCurrency - Compiler supports Currency type. }
{ SupportVariant - Compiler supports Variant type. }
{ SupportAssert - Compiler supports Assert statement. }
{ SupportInterface - Compiler supports IInterface. }
{ SupportOverload - Compiler supports method overloading. }
{ SupportInline - Compiler supports inline functions. }
{ SupportForIn - Compiler supports for-in loop. }
{ SupportGenerics - Compiler supports generics. }
{ SupportOperatorOverloading - Compiler supports overator overloading. }
{ SupportAnonymousMethods - Compiler supports anonymous methods. }
{ SupportUnicodeString - Compiler supports UnicodeString type. }
{ SupportRawByteString - Compiler supports RawByteString type. }
{ SupportEnumValue - Compiler supports enumeration values. }
{ SupportStringRefCount - Compiler supports StringRefCount function. }
{ }
{ CharIsAnsi - Default Char type is AnsiChar (1 byte). }
{ CharIsWide - Default Char type is WideChar (2 bytes). }
{ StringIsAnsi - Default String type is AnsiString. }
{ StringIsUnicode - Default String type is UnicodeString. }
{ ExtendedIs80Bits - Extended type has 80 bit (10 byte) precision. }
{ ExtendedIsDouble - Extended type is Double. }
{ ExtendedIs16Bytes - Extended type is 16 bytes. }
{ TBytesDeclared - System defines TBytes type. }
{ ObjectARC - Objects has Automatic Reference Countinging (ARC). }
{ LongWordIs32Bits - LongWord type is 32 bits. }
{ LongIntIs32Bits - LongInt type is 32 bits. }
{ LongWordIs64Bits - LongWord type is 64 bits. }
{ LongIntIs64Bits - LongInt type is 64 bits. }
{ NativeIntIs32Bits - NativeInt type is 32 bits. }
{ NativeIntIs64Bits - NativeInt type is 64 bits. }
{ NativeUIntIs32Bits - NativeUInt type is 32 bits. }
{ NativeUIntIs64Bits - NativeUInt type is 64 bits. }
{ }
{ UseInline - SupportInline and not PurePascal. }
{ }
{ OS_POSIX - Posix type operating system. }
{ OS_BSD - BSD type operating system. }
{ OS_FREEBSD - FreeBSD operating system. }
{ OS_NETBSD - NetBSD operating system. }
{ OS_OPENBSD - OpenBSD operating system. }
{ OS_LINUX - Linux operating system. }
{ OS_LINUX32 - Linux 32-bit operating system. }
{ OS_LINUX64 - Linux 64-bit operating system. }
{ OS_MACOSX - MacOSX operating system. }
{ OS_MACOSX32 - MacOSX 32-bit operating system. }
{ OS_MACOSX64 - MacOSX 64-bit operating system. }
{ OS_SOLARIS - Sun Solaris operating system. }
{ OS_MOBILE - Mobile operating system. }
{ OS_IOS - Apple iOS operating system. }
{ OS_IOS32 - Apple iOS 32-bit. }
{ OS_IOS64 - Apple iOS 64-bit. }
{ OS_ANDROID - Android operating system. }
{ OS_ANDROID32 - Android 32-bit operating system. }
{ OS_ANDROID64 - Android 64-bit operating system. }
{ OS_MSWIN - MS Windows type operating system. }
{ OS_WIN16 - Win16 operating system. }
{ OS_WIN32 - Win32 operating system. }
{ OS_WIN64 - Win64 operating system. }
{ OS_OS2 - OS/2 operating system. }
{ OS_DOS - DOS operating system. }
{ OS_DOS32 - DOS operating system with 32-bit extender. }
{ }
{ OS_32 - 32 bit operating system. }
{ OS_64 - 64 bit operating system. }
{ }
{ ManagedCode - Compiles managed code. }
{ DOT_NET - Compiles .NET code. }
{ }
{ NativeCode - Compiles native code. }
{ CPU_386 - Intel 386 32-bit compatible CPU. }
{ CPU_X86_64 - x86 64-bit compatible CPU. }
{ CPU_68K - Motorola 68000 compatible CPU. }
{ CPU_PPC32 - PowerPC 32-bit CPU. }
{ CPU_PPC64 - PowerPC 64-bit CPU. }
{ CPU_ARM - ARM based CPU. }
{ }
{ CPU_32 - 32 bit CPU }
{ CPU_64 - 64 bit CPU }
{ }
{ WindowsPlatform - Win32/Win64/.NET code on a Windows platform. }
{ }
{ ASM386_DELPHI - Compiler supports 386 assembler (Delphi style) }
{ ASM386_FREEPASCAL - Compiler supports 386 assembler (FreePascal style) }
{ ASM386 - Compiler supports 386 assembler (Generic) }
{ ASMX86_64 - Compiler supports x86-64 assembler (Generic) }
{ ASMX86_64_DELPHI - Compiler supports x86-64 assembler (Delphie style) }
{ }
{ IsConsoleApp - Console application. }
{ }
{******************************************************************************}
{ }
{ Delphi 1 }
{ }
{$IFDEF VER80}
{$DEFINE DELPHI}
{$DEFINE DELPHI1}
{$DEFINE DELPHI3_DOWN}
{$DEFINE DELPHI4_DOWN}
{$DEFINE DELPHI5_DOWN}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$ENDIF}
{ }
{ Delphi 2 }
{ }
{$IFDEF VER90}
{$DEFINE DELPHI}
{$DEFINE DELPHI2}
{$DEFINE DELPHI2_UP}
{$DEFINE DELPHI3_DOWN}
{$DEFINE DELPHI4_DOWN}
{$DEFINE DELPHI5_DOWN}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$ENDIF}
{$IFDEF VER93}
{$DEFINE BCB}
{$DEFINE BCB1}
{$ENDIF}
{ }
{ Delphi 3 }
{ C Builder 3 }
{ }
{$IFDEF VER100}
{$DEFINE DELPHI}
{$DEFINE DELPHI3}
{$DEFINE DELPHI3_UP}
{$DEFINE DELPHI3_DOWN}
{$DEFINE DELPHI4_DOWN}
{$DEFINE DELPHI5_DOWN}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$ENDIF}
{$IFDEF VER110}
{$DEFINE BCB}
{$DEFINE BCB3}
{$ENDIF}
{ }
{ Delphi 4 }
{ }
{$IFDEF VER120}
{$DEFINE DELPHI}
{$DEFINE DELPHI4}
{$DEFINE DELPHI4_UP}
{$DEFINE DELPHI4_DOWN}
{$DEFINE DELPHI5_DOWN}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$ENDIF}
{$IFDEF VER125}
{$DEFINE BCB}
{$DEFINE BCB4}
{$ENDIF}
{ }
{ Delphi 5 }
{ }
{$IFDEF VER130}
{$DEFINE DELPHI}
{$DEFINE DELPHI5}
{$DEFINE DELPHI5_UP}
{$DEFINE DELPHI5_DOWN}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$ENDIF}
{$IFDEF VER135}
{$DEFINE BCB}
{$DEFINE BCB5}
{$ENDIF}
{ }
{ Delphi 6 }
{ }
{$IFDEF VER140}
{$DEFINE DELPHI}
{$DEFINE DELPHI6}
{$DEFINE DELPHI6_UP}
{$DEFINE DELPHI6_DOWN}
{$DEFINE DELPHI7_DOWN}
{$IFDEF LINUX}
{$DEFINE KYLIX}
{$ENDIF}
{$ENDIF}
{ }
{ Delphi 7 }
{ }
{$IFDEF VER150}
{$DEFINE DELPHI}
{$DEFINE DELPHI7}
{$DEFINE DELPHI7_UP}
{$DEFINE DELPHI7_DOWN}
{$IFDEF LINUX}
{$DEFINE KYLIX}
{$ENDIF}
{$ENDIF}
{ }
{ Delphi 8 for .NET }
{ }
{$IFDEF VER160}
{$DEFINE DOT_NET}
{$DEFINE DELPHI}
{$DEFINE DELPHI8}
{$DEFINE DELPHI8_UP}
{$ENDIF}
{ }
{ Delphi 2005 }
{ }
{$IFDEF VER170}
{$DEFINE DELPHI}
{$DEFINE DELPHI2005}
{$DEFINE DELPHI2005_UP}
{$ENDIF}
{ }
{ Delphi 2006 }
{ Delphi 2006 and Delphi 2007 has VER180 set. }
{ Delphi 2007 has VER180 and VER185 set. }
{ }
{$IFDEF VER180}
{$IFNDEF VER185}
{$DEFINE DELPHI}
{$DEFINE DELPHI2006}
{$DEFINE DELPHI2006_UP}
{$ENDIF}
{$ENDIF}
{ }
{ Delphi 2007 }
{ }
{$IFDEF VER185}
{$DEFINE DELPHI}
{$DEFINE DELPHI2007}
{$DEFINE DELPHI2007_UP}
{$ENDIF}
{ }
{ Delphi 2007 for .NET }
{ }
{$IFDEF VER190}
{$DEFINE DOT_NET}
{$DEFINE DELPHI}
{$DEFINE DELPHI2007}
{$DEFINE DELPHI2007_UP}
{$ENDIF}
{ }
{ Delphi 2009 }
{ }
{$IFDEF VER200}
{$DEFINE DELPHI}
{$DEFINE DELPHI2009}
{$DEFINE DELPHI2009_UP}
{$ENDIF}
{ }
{ Delphi 2010 }
{ }
{$IFDEF VER210}
{$DEFINE DELPHI}
{$DEFINE DELPHI2010}
{$DEFINE DELPHI2010_UP}
{$ENDIF}
{ }
{ Delphi XE }
{ }
{$IFDEF VER220}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE}
{$DEFINE DELPHIXE_UP}
{$ENDIF}
{ }
{ Delphi XE2 }
{ }
{$IFDEF VER230}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE2}
{$DEFINE DELPHIXE2_UP}
{$ENDIF}
{ }
{ Delphi XE3 }
{ }
{$IFDEF VER240}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE3}
{$DEFINE DELPHIXE3_UP}
{$ENDIF}
{ }
{ Delphi XE4 }
{ }
{$IFDEF VER250}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE4}
{$DEFINE DELPHIXE4_UP}
{$ENDIF}
{ }
{ Delphi XE5 }
{ }
{$IFDEF VER260}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE5}
{$DEFINE DELPHIXE5_UP}
{$ENDIF}
{ }
{ Delphi XE6 }
{ }
{$IFDEF VER270}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE6}
{$DEFINE DELPHIXE6_UP}
{$ENDIF}
{ }
{ Delphi XE7 }
{ }
{$IFDEF VER280}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE7}
{$DEFINE DELPHIXE7_UP}
{$ENDIF}
{ }
{ Delphi XE8 }
{ }
{$IFDEF VER290}
{$DEFINE DELPHI}
{$DEFINE DELPHIXE8}
{$DEFINE DELPHIXE8_UP}
{$ENDIF}
{ }
{ Delphi 10 Seattle }
{ }
{$IFDEF VER300}
{$DEFINE DELPHI}
{$DEFINE DELPHI10}
{$DEFINE DELPHI10_UP}
{$ENDIF}
{ }
{ Delphi 10.1 Berlin }
{ }
{$IFDEF VER310}
{$DEFINE DELPHI}
{$DEFINE DELPHI10_1}
{$DEFINE DELPHI10_1_UP}
{$ENDIF}
{ }
{ Delphi 10.2 Tokyo }
{ }
{$IFDEF VER320}
{$DEFINE DELPHI}
{$DEFINE DELPHI10_2}
{$DEFINE DELPHI10_2_UP}
{$ENDIF}
{ }
{ Delphi 10.3 Rio }
{ }
{$IFDEF VER330}
{$DEFINE DELPHI}
{$DEFINE DELPHI10_3}
{$DEFINE DELPHI10_3_UP}
{$ENDIF}
{ }
{ Delphi 10.4 Sydney }
{ }
{$IFDEF VER340}
{$DEFINE DELPHI}
{$DEFINE DELPHI10_4}
{$DEFINE DELPHI10_4_UP}
{$ENDIF}
{ }
{ Future Delphi versions }
{ }
{$IFDEF VER350}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF VER360}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF VER370}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF VER380}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF VER390}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF VER400}
{$DEFINE DELPHI_Future}
{$ENDIF}
{$IFDEF DELPHI_Future}
{$DEFINE DELPHI}
{$DEFINE DELPHI10_4_UP}
{$ENDIF}
{ }
{ DELPHI_xx_UP defines }
{ }
{$IFDEF DELPHI10_4_UP}
{$DEFINE DELPHI10_3_UP}
{$ENDIF}
{$IFDEF DELPHI10_3_UP}
{$DEFINE DELPHI10_2_UP}
{$ENDIF}
{$IFDEF DELPHI10_2_UP}
{$DEFINE DELPHI10_1_UP}
{$ENDIF}
{$IFDEF DELPHI10_1_UP}
{$DEFINE DELPHI10_UP}
{$ENDIF}
{$IFDEF DELPHI10_UP}
{$DEFINE DELPHIXE8_UP}
{$ENDIF}
{$IFDEF DELPHIXE8_UP}
{$DEFINE DELPHIXE7_UP}
{$ENDIF}
{$IFDEF DELPHIXE7_UP}
{$DEFINE DELPHIXE6_UP}
{$ENDIF}
{$IFDEF DELPHIXE6_UP}
{$DEFINE DELPHIXE5_UP}
{$ENDIF}
{$IFDEF DELPHIXE5_UP}
{$DEFINE DELPHIXE4_UP}
{$ENDIF}
{$IFDEF DELPHIXE4_UP}
{$DEFINE DELPHIXE3_UP}
{$ENDIF}
{$IFDEF DELPHIXE3_UP}
{$DEFINE DELPHIXE2_UP}
{$ENDIF}
{$IFDEF DELPHIXE2_UP}
{$DEFINE DELPHIXE_UP}
{$ENDIF}
{$IFDEF DELPHIXE_UP}
{$DEFINE DELPHI2010_UP}
{$ENDIF}
{$IFDEF DELPHI2010_UP}
{$DEFINE DELPHI2009_UP}
{$ENDIF}
{$IFDEF DELPHI2009_UP}
{$DEFINE DELPHI2007_UP}
{$ENDIF}
{$IFDEF DELPHI2007_UP}
{$DEFINE DELPHI2006_UP}
{$ENDIF}
{$IFDEF DELPHI2006_UP}
{$DEFINE DELPHI2005_UP}
{$ENDIF}
{$IFDEF DELPHI2005_UP}
{$DEFINE DELPHI8_UP}
{$ENDIF}
{$IFDEF DELPHI8_UP}
{$DEFINE DELPHI7_UP}
{$ENDIF}
{$IFDEF DELPHI7_UP}
{$DEFINE DELPHI6_UP}
{$ENDIF}
{$IFDEF DELPHI6_UP}
{$DEFINE DELPHI5_UP}
{$ENDIF}
{$IFDEF DELPHI5_UP}
{$DEFINE DELPHI4_UP}
{$ENDIF}
{$IFDEF DELPHI4_UP}
{$DEFINE DELPHI3_UP}
{$ENDIF}
{$IFDEF DELPHI3_UP}
{$DEFINE DELPHI2_UP}
{$ENDIF}
{ }
{ Delphi: Operating System and CPU }
{ }
{$IFDEF DELPHI}
// Delphi 1 - Delphi 8
{$IFDEF DELPHI1}
{$DEFINE OS_WIN16}
{$DEFINE CPU_X86}
{$ENDIF}
{$IFDEF DELPHI2}
{$DEFINE OS_WIN32}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI3}
{$DEFINE OS_WIN32}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI4}
{$DEFINE OS_WIN32}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI5}
{$DEFINE OS_WIN32}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI6}
{$IFDEF LINUX}
{$DEFINE OS_LINUX}
{$ELSE}
{$DEFINE OS_WIN32}
{$ENDIF}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI7}
{$IFDEF LINUX}
{$DEFINE OS_LINUX}
{$ELSE}
{$DEFINE OS_WIN32}
{$ENDIF}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF DELPHI8}
{$DEFINE OS_WIN32}
{$ENDIF}
{$IFNDEF DELPHIXE2_UP}
// Delphi 2005+
{$IFDEF DELPHI2005_UP}
{$IFDEF WIN64}
{$DEFINE OS_WIN64}
{$DEFINE CPU_X86_64}
{$ELSE}
{$DEFINE OS_WIN32}
{$DEFINE CPU_386}
{$ENDIF}
{$ENDIF}
{$ELSE}
// Delphi XE2+
{$IFDEF CPUX64}
{$DEFINE CPU_X86_64}
{$ENDIF}
{$IFDEF CPUX86}
{$DEFINE CPU_386}
{$ENDIF}
{$IFDEF MACOS}
{$DEFINE OS_MACOSX}
{$ENDIF}
{$IFDEF MACOS32}
{$DEFINE OS_MACOSX32}
{$ENDIF}
{$IFDEF WIN64}
{$DEFINE OS_WIN64}
{$ENDIF}
{$IFDEF POSIX}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF POSIX32}
{$DEFINE OS_POSIX32}
{$ENDIF}
{$IFDEF POSIX64}
{$DEFINE OS_POSIX64}
{$ENDIF}
// Delphi XE3+
{$IFDEF DELPHIXE3_UP}
{$IFDEF IOS}
{$DEFINE OS_IOS}
{$ENDIF}
{$IFDEF IOS32}
{$DEFINE OS_IOS32}
{$ENDIF}
{$IFDEF IOS64}
{$DEFINE OS_IOS64}
{$ENDIF}
{$IFDEF CPUARM}
{$DEFINE CPU_ARM}
{$ENDIF}
{$ENDIF}
// Delphi XE5+
{$IFDEF DELPHIXE5_UP}
{$IFDEF ANDROID}
{$DEFINE OS_ANDROID}
{$ENDIF}
{$IFDEF ANDROID32}
{$DEFINE OS_ANDROID32}
{$ENDIF}
{$ENDIF}
// Delphi 10.2+
{$IFDEF DELPHI10_2_UP}
{$IFDEF LINUX}
{$DEFINE OS_LINUX}
{$ENDIF}
{$IFDEF LINUX32}
{$DEFINE OS_LINUX32}
{$ENDIF}
{$IFDEF LINUX64}
{$DEFINE OS_LINUX64}
{$ENDIF}
{$IFDEF MACOS64}
{$DEFINE OS_MACOSX64}
{$ENDIF}
{$ENDIF}
// Delphi 10.4+
{$IFDEF DELPHI10_4_UP}
{$IFDEF ANDROID64}
{$DEFINE OS_ANDROID64}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ Free Pascal: Operating System and CPU }
{ }
{$IFDEF FREEPASCAL}
{$IFDEF LINUX} {$DEFINE OS_LINUX} {$ENDIF}
{$IFDEF FREEBSD} {$DEFINE OS_FREEBSD} {$ENDIF}
{$IFDEF NETBSD} {$DEFINE OS_NETBSD} {$ENDIF}
{$IFDEF SOLARIS} {$DEFINE OS_SOLARIS} {$ENDIF}
{$IFDEF GO32V2} {$DEFINE OS_DOS32} {$ENDIF}
{$IFDEF OS2} {$DEFINE OS_OS2} {$ENDIF}
{$IFDEF WINDOWS} {$DEFINE OS_MSWIN} {$ENDIF}
{$IFDEF WIN32} {$DEFINE OS_WIN32} {$ENDIF}
{$IFDEF WIN64} {$DEFINE OS_WIN64} {$ENDIF}
{$IFDEF WINCE} {$DEFINE OS_WINCE} {$ENDIF}
{$IFDEF DARWIN} {$DEFINE OS_MACOSX} {$ENDIF}
{$IFDEF CPU386} {$DEFINE CPU_386} {$ENDIF}
{$IFDEF CPUI386} {$DEFINE CPU_386} {$ENDIF}
{$IFDEF CPUX86_64} {$DEFINE CPU_X86_64} {$ENDIF}
{$IFDEF CPUAMD64} {$DEFINE CPU_X86_64} {$ENDIF}
{$IFDEF ARM} {$DEFINE CPU_ARM} {$ENDIF}
{$IFDEF CPU68} {$DEFINE CPU_68K} {$ENDIF}
{$IFDEF CPUM68K} {$DEFINE CPU_68K} {$ENDIF}
{$IFDEF CPUPOWERPC32} {$DEFINE CPU_PPC32} {$ENDIF}
{$IFDEF CPUPOWERPC64} {$DEFINE CPU_PPC64} {$ENDIF}
{$ENDIF}
{ }
{ Operating System }
{ }
{ OS_WINxx }
{$IFDEF WIN16}
{$DEFINE OS_WIN16}
{$ENDIF}
{$IFDEF WIN32}
{$DEFINE OS_WIN32}
{$ENDIF}
{$IFDEF WIN64}
{$DEFINE OS_WIN64}
{$ENDIF}
{ OS_MSWIN }
{$IFDEF OS_WIN16}
{$DEFINE OS_MSWIN}
{$ENDIF}
{$IFDEF OS_WIN32}
{$DEFINE OS_MSWIN}
{$ENDIF}
{$IFDEF OS_WIN64}
{$DEFINE OS_MSWIN}
{$ENDIF}
{$IFDEF MSWINDOWS}
{$DEFINE OS_MSWIN}
{$ENDIF}
{ OS_MSWIN aliases }
{$IFDEF OS_MSWIN}
{$DEFINE MSWIN}
{$DEFINE OS_WIN}
{$DEFINE WIN}
{$ENDIF}
{ OS Posix }
{$IFDEF MACOSX}
{$DEFINE OS_MACOSX}
{$ENDIF}
{$IFDEF LINUX}
{$DEFINE OS_LINUX}
{$ENDIF}
{$IFDEF FREEBSD}
{$DEFINE OS_FREEBSD}
{$ENDIF}
{$IFDEF NETBSD}
{$DEFINE OS_NETBSD}
{$ENDIF}
{$IFDEF OPENBSD}
{$DEFINE OS_OPENBSD}
{$ENDIF}
{$IFDEF POSIX}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF POSIX32}
{$DEFINE OS_POSIX32}
{$ENDIF}
{$IFDEF POSIX64}
{$DEFINE OS_POSIX64}
{$ENDIF}
{ OS_BSD, OS_POSIX }
{$IFDEF OS_MACOSX}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF OS_LINUX}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF OS_FREEBSD}
{$DEFINE OS_BSD}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF OS_NETBSD}
{$DEFINE OS_BSD}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF OS_OPENBSD}
{$DEFINE OS_BSD}
{$DEFINE OS_POSIX}
{$ENDIF}
{$IFDEF OS_BSD}
{$DEFINE BSD}
{$ENDIF}
{$IFDEF OS_POSIX}
{$DEFINE POSIX}
{$ENDIF}
{ OS_MOBILE }
{$IFDEF OS_ANDROID}
{$DEFINE OS_MOBILE}
{$ENDIF}
{$IFDEF OS_IOS}
{$DEFINE OS_MOBILE}
{$ENDIF}
{ OS bits }
{$IFDEF OS_DOS32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_WIN32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_WIN64}
{$DEFINE OS_64}
{$ENDIF}
{$IFDEF OS_MACOSX32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_MACOSX64}
{$DEFINE OS_64}
{$ENDIF}
{$IFDEF OS_LINUX32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_LINUX64}
{$DEFINE OS_64}
{$ENDIF}
{$IFDEF OS_ANDROID32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_ANDROID64}
{$DEFINE OS_64}
{$ENDIF}
{$IFDEF OS_IOS32}
{$DEFINE OS_32}
{$ENDIF}
{$IFDEF OS_IOS64}
{$DEFINE OS_64}
{$ENDIF}
{ Other }
{$IFDEF OS2}
{$DEFINE OS_OS2}
{$ENDIF}
{$IFDEF DOS32}
{$DEFINE DOS}
{$DEFINE OS_DOS32}
{$ENDIF}
{$IFDEF DOS}
{$DEFINE OS_DOS}
{$ENDIF}
{ }
{ .NET }
{ }
{$IFDEF CLR}
{$DEFINE DOT_NET}
{$ENDIF}
{$IFDEF DOT_NET}
{$DEFINE ManagedCode}
{$DEFINE ExtendedIsDouble}
{$ENDIF}
{ }
{ Windows platform }
{ }
{$IFDEF DOT_NET}
{$DEFINE WindowsPlatform}
{$ENDIF}
{$IFDEF OS_WIN32}
{$DEFINE WindowsPlatform}
{$DEFINE WIN32}
{$ENDIF}
{$IFDEF OS_WIN64}
{$DEFINE WindowsPlatform}
{$DEFINE WIN64}
{$ENDIF}
{ }
{ CPU type }
{ }
{$IFNDEF ManagedCode}
{$DEFINE NativeCode}
{$ENDIF}
{ CPU types }
{$IFDEF CPU386}
{$DEFINE INTEL386}
{$DEFINE CPU_INTEL386}
{$ENDIF}
{$IFDEF CPUX64}
{$DEFINE CPU_X86_64}
{$ENDIF}
{$IFDEF CPU86_64}
{$DEFINE CPU_X86_64}
{$ENDIF}
{$IFDEF CPU68K}
{$DEFINE CPU_68K}
{$ENDIF}
{$IFDEF CPUPPC}
{$DEFINE CPU_PPC32}
{$ENDIF}
{$IFDEF CPUPPC64}
{$DEFINE CPU_PPC64}
{$ENDIF}
{$IFDEF CPUARM}
{$DEFINE CPU_ARM}
{$ENDIF}
{$IFDEF CPUARM32}
{$DEFINE CPU_ARM32}
{$ENDIF}
{$IFDEF CPUARM64}
{$DEFINE CPU_ARM64}
{$ENDIF}
{ CPU bits }
{$IFDEF CPU32BITS}
{$DEFINE CPU_32}
{$ENDIF}
{$IFDEF CPU64BITS}
{$DEFINE CPU_64}
{$ENDIF}
{$IFDEF CPU_INTEL386}
{$DEFINE CPU_32}
{$ENDIF}
{$IFDEF CPU_X86_64}
{$DEFINE CPU_64}
{$ENDIF}
{$IFDEF CPU_PPC64}
{$DEFINE CPU_64}
{$ENDIF}
{$IFDEF CPU_PPC32}
{$DEFINE CPU_32}
{$ENDIF}
{$IFDEF CPU_ARM32}
{$DEFINE CPU_32}
{$ENDIF}
{$IFDEF CPU_ARM64}
{$DEFINE CPU_64}
{$ENDIF}
{$IFNDEF CPU_32}
{$IFNDEF CPU_64}
{$IFDEF OS_64}
{$DEFINE CPU_64}
{$ENDIF}
{$IFDEF OS_32}
{$DEFINE CPU_32}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ Delphi: Supported language features }
{ }
{$IFDEF DELPHI}
{$DEFINE SupportShortString}
{$DEFINE SetSizeAlignIsByte}
{$ENDIF}
{$IFDEF DELPHI2_UP}
{$DEFINE SupportAnsiChar}
{$DEFINE SupportAnsiString}
{$ENDIF}
{$IFDEF DELPHI3_UP}
{$DEFINE SupportCardinal}
{$DEFINE SupportCurrency}
{$DEFINE SupportVariant}
{$DEFINE ExtendedIs80Bits}
{$DEFINE LongWordIs32Bits}
{$DEFINE LongIntIs32Bits}
{$ENDIF}
{$IFDEF DELPHI4_UP}
{$DEFINE SupportInt64}
{$DEFINE SupportWideChar}
{$DEFINE SupportWideString}
{$DEFINE SupportDynArray}
{$DEFINE SupportAssert}
{$ENDIF}
{$IFDEF DELPHI5_UP}
{$DEFINE SupportOverload}
{$ENDIF}
{$IFDEF DELPHI6_UP}
{$DEFINE SupportInterface}
{$DEFINE SupportUCS4String}
{$DEFINE SupportUCS4Char}
{$DEFINE SupportEnumValue}
{$ENDIF}
{$IFDEF DELPHI2005_UP}
{$DEFINE SupportInline}
{$DEFINE SupportOperatorOverloading}
{$ENDIF}
{$IFDEF DELPHI2005}
{$DEFINE SupportInlineIsBuggy}
{$ENDIF}
{$IFDEF DELPHI2006}
{$DEFINE SupportInlineIsBuggy}
{$ENDIF}
{$IFDEF DELPHI2007_UP}
{$DEFINE SupportForIn}
{$DEFINE TBytesDeclared}
{$ENDIF}
{$IFDEF DELPHI2009_UP}
{$DEFINE SupportAnonymousMethods}
{$DEFINE SupportGenerics}
{$DEFINE SupportUnicodeString}
{$DEFINE SupportRawByteString}
{$DEFINE SupportUTF8String}
{$IFDEF ManagedCode}
{$UNDEF SupportRawByteString}
{$UNDEF SupportUTF8String}
{$UNDEF SupportUTF8Char}
{$UNDEF SupportUCS4String}
{$UNDEF SupportUCS4Char}
{$ENDIF}
{$DEFINE SupportNativeInt}
{$DEFINE SupportNativeUInt}
{$IFDEF CPU_64}
{$DEFINE NativeIntIs64Bits}
{$DEFINE NativeUIntIs64Bits}
{$ELSE}
{$IFDEF CPU_32}
{$DEFINE NativeIntIs32Bits}
{$DEFINE NativeUIntIs32Bits}
{$ENDIF}
{$ENDIF}
{$DEFINE SupportUInt64}
{$DEFINE SupportStringRefCount}
{$ENDIF}
{$IFDEF DELPHI2009_UP}
{$DEFINE CharIsWide}
{$DEFINE StringIsUnicode}
{$ELSE}
{$DEFINE CharIsAnsi}
{$DEFINE StringIsAnsi}
{$ENDIF}
{$IFDEF DELPHIXE2_UP}
{$IFNDEF WIN32}
{$UNDEF ExtendedIs80Bits}
{$DEFINE ExtendedIsDouble}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHIXE4_UP}
{$IFDEF LINUX}
{$UNDEF ExtendedIs80Bits}
{$UNDEF ExtendedIsDouble}
{$DEFINE ExtendedIs16Bytes}
{$ENDIF}
{$IFDEF IOS}
{$UNDEF SupportAnsiChar}
{$UNDEF SupportAnsiString}
{$UNDEF SupportWideString}
{$UNDEF SupportShortString}
{$ENDIF}
{$IFDEF ANDROID}
{$UNDEF SupportAnsiChar}
{$UNDEF SupportAnsiString}
{$UNDEF SupportWideString}
{$UNDEF SupportShortString}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHIXE4_UP}
{$IFDEF AUTOREFCOUNT}
{$DEFINE ObjectARC}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHIXE8_UP}
{$DEFINE SupportFixedInt}
{$DEFINE SupportFixedUInt}
{$IFDEF LINUX}
{$UNDEF SupportAnsiChar}
{$UNDEF SupportAnsiString}
{$UNDEF SupportWideString}
{$UNDEF SupportShortString}
{$ENDIF}
{$IFDEF OS_IOS64}
{$UNDEF LongWordIs32Bits}
{$UNDEF LongIntIs32Bits}
{$DEFINE LongWordIs64Bits}
{$DEFINE LongIntIs64Bits}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHI10_UP}
{$DEFINE SupportUTF8Char}
{$IFDEF MACOS32}
{$UNDEF ExtendedIs80Bits}
{$UNDEF ExtendedIsDouble}
{$DEFINE ExtendedIs16Bytes}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHI10_3_UP}
{$IFDEF LINUX}
{$DEFINE SupportAnsiChar}
{$DEFINE SupportAnsiString}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHI10_4_UP}
{$DEFINE SupportAnsiChar}
{$DEFINE SupportAnsiString}
{$ENDIF}
{ }
{ Delphi: Switches }
{ }
{$IFDEF DELPHIXE4_UP}
{$IFDEF IOS}
{$ZEROBASEDSTRINGS OFF}
{$ENDIF}
{$IFDEF ANDROID}
{$ZEROBASEDSTRINGS OFF}
{$ENDIF}
{$ENDIF}
{ }
{ Free Pascal }
{ }
{$IFDEF FPC}
{$DEFINE FREEPASCAL}
{$IFDEF VER1}
{$DEFINE FREEPASCAL1}
{$ELSE}
{$DEFINE FREEPASCAL2_UP}
{$IFDEF VER2}
{$DEFINE FREEPASCAL2}
{$ENDIF}
{$IFDEF VER2_0}
{$DEFINE FREEPASCAL2_0}
{$ENDIF}
{$IFDEF VER2_2}
{$DEFINE FREEPASCAL2_2}
{$ENDIF}
{$IFDEF VER2_4}
{$DEFINE FREEPASCAL2_4}
{$ENDIF}
{$IFDEF VER2_6}
{$DEFINE FREEPASCAL2_6}
{$DEFINE FREEPASCAL2_6_UP}
{$ENDIF}
{$IFDEF VER2_7}
{$DEFINE FREEPASCAL2_7}
{$DEFINE FREEPASCAL2_6_UP}
{$DEFINE FREEPASCAL2_7_UP}
{$ENDIF}
{$IFDEF VER3_0}
{$DEFINE FREEPASCAL3}
{$DEFINE FREEPASCAL3_UP}
{$DEFINE FREEPASCAL3_0}
{$DEFINE FREEPASCAL2_6_UP}
{$DEFINE FREEPASCAL2_7_UP}
{$DEFINE FREEPASCAL3_0_UP}
{$ENDIF}
{$IFDEF VER3_1}
{$DEFINE FREEPASCAL3}
{$DEFINE FREEPASCAL3_UP}
{$DEFINE FREEPASCAL3_1}
{$DEFINE FREEPASCAL2_6_UP}
{$DEFINE FREEPASCAL2_7_UP}
{$DEFINE FREEPASCAL3_0_UP}
{$DEFINE FREEPASCAL3_1_UP}
{$ENDIF}
{$IFDEF VER3_2}
{$DEFINE FREEPASCAL3}
{$DEFINE FREEPASCAL3_UP}
{$DEFINE FREEPASCAL3_2}
{$DEFINE FREEPASCAL2_6_UP}
{$DEFINE FREEPASCAL2_7_UP}
{$DEFINE FREEPASCAL3_0_UP}
{$DEFINE FREEPASCAL3_1_UP}
{$DEFINE FREEPASCAL3_2_UP}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ FreePascal: Mode }
{ }
{$IFDEF FREEPASCAL2}
{$MODE DELPHI}
{$ENDIF}
{$IFDEF FREEPASCAL3_UP}
{$MODE DELPHIUNICODE}
{$ENDIF}
{ }
{ FreePascal: Supported language features }
{ }
{$IFDEF FREEPACAL2}
{$DEFINE CharIsAnsi}
{$DEFINE StringIsAnsi}
{$ENDIF}
{$IFDEF FREEPASCAL2_UP}
{$DEFINE SupportNativeInt}
{$DEFINE SupportNativeUInt}
{$DEFINE SupportInt64}
{$DEFINE SupportUInt64}
{$DEFINE SupportAnsiChar}
{$DEFINE SupportAnsiString}
{$DEFINE SupportCardinal}
{$DEFINE SupportCurrency}
{$DEFINE SupportWideChar}
{$DEFINE SupportWideString}
{$DEFINE SupportDynArray}
{$DEFINE SupportAssert}
{$DEFINE SupportInterface}
{$DEFINE SupportOverload}
{$DEFINE SupportUTF8String}
{$DEFINE SupportUCS4String}
{$IFDEF FREEPASCAL2_6_UP}
{$DEFINE SetSizeAlignIsByte}
{$ELSE}
{$IFDEF FREEPASCAL2_UP}
{$DEFINE SetSizeAlignIsLongWord}
{$ELSE}
{$DEFINE SetSizeAlignIsByte}
{$ENDIF}
{$ENDIF}
{$DEFINE SupportEnumValue}
{$DEFINE LongWordIs32Bits}
{$DEFINE LongIntIs32Bits}
{$IFDEF CPU_64}
{$DEFINE NativeIntIs64Bits}
{$DEFINE NativeUIntIs64Bits}
{$ELSE}
{$IFDEF CPU_32}
{$DEFINE NativeIntIs32Bits}
{$DEFINE NativeUIntIs32Bits}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$IFDEF FREEPASCAL3_UP}
{$DEFINE CharIsWide}
{$DEFINE StringIsUnicode}
{$DEFINE SupportUnicodeString}
{$DEFINE SupportRawByteString}
{$DEFINE SupportStringRefCount}
{$IFDEF CPUX86_64}
{$IFNDEF LINUX}
{$DEFINE ExtendedIsDouble}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ Function inlining }
{ }
{$IFDEF SupportInline}
{$IFNDEF SupportInlineIsBuggy}
{$IFNDEF PurePascal}
{$DEFINE UseInline}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ Assembler style }
{ }
{$IFNDEF PurePascal}
{$IFNDEF ManagedCode}
{$IFDEF CPU_X86_64}
{$DEFINE ASMX86_64}
{$IFDEF DELPHI}
{$DEFINE ASMX86_64_DELPHI}
{$ENDIF}
{$ENDIF}
{$IFDEF CPU_INTEL386}
{$DEFINE ASM386}
{$IFDEF DELPHI}{$IFDEF OS_WIN32}
{$DEFINE ASM386_DELPHI}
{$IFNDEF UseInline} {$DEFINE ASM386_DELPHI_INLINE_OFF} {$ENDIF}
{$ENDIF}{$ENDIF}
{$IFDEF FREEPASCAL2_UP}
{$DEFINE ASM386_FREEPASCAL}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{$ENDIF}
{ }
{ Framework }
{ }
{$IFDEF DELPHIXE2_UP}
{$IFDEF CONSOLE}
{$DEFINE IsConsoleApp}
{$ENDIF}
{$ENDIF}
{ }
{ Standard compiler directives }
{ }
{$EXTENDEDSYNTAX ON}
{$IOCHECKS ON}
{$LONGSTRINGS ON}
{$BOOLEVAL OFF}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IFDEF DEBUG}
{$ASSERTIONS ON}
{$DEBUGINFO ON}
{$OVERFLOWCHECKS ON}
{$RANGECHECKS ON}
{$WARNINGS ON}
{$HINTS ON}
{$ELSE}
{$ASSERTIONS OFF}
{$DEBUGINFO OFF}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$WARNINGS OFF}
{$HINTS OFF}
{$ENDIF}
{$IFDEF CLR}
{$UNSAFECODE OFF}
{$ENDIF}
{$IFDEF DELPHI}
{$OPTIMIZATION ON}
{$ENDIF}
{$IFDEF DELPHI2005_UP}
{$INLINE ON}
{$ENDIF}
{$IFDEF DELPHI2009_UP}
{$HIGHCHARUNICODE OFF}
{$ENDIF}
{ }
{ Compiler warnings }
{ }
{$IFDEF DELPHI7}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$ENDIF}
{$IFDEF DELPHI2007}
{$IFNDEF DOT_NET}
{$WARN UNSAFE_CODE OFF}
{$WARN UNSAFE_TYPE OFF}
{$WARN UNSAFE_CAST OFF}
{$ENDIF}
{$ENDIF}
{$IFDEF DELPHIXE2_UP}
{$WARN DUPLICATE_CTOR_DTOR OFF}
{$ENDIF}
{$IFDEF DOT_NET}
{$WARN UNIT_PLATFORM OFF}
{$ENDIF}
{$IFNDEF DEBUG}
{$IFDEF DELPHI6_UP}
{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_PLATFORM OFF}
{$WARN UNIT_DEPRECATED OFF}
{$ENDIF}
{$ENDIF}
{$IFDEF FREEPASCAL}
{$WARN 4055 OFF} // Conversion between ordinals and pointers is not portable
{$ENDIF}