eDefines
What: include file
Layer: 0
Platforms: C, C++, Pascal (All)
This file defines conditional compilation symbols. This is a modified version of
a file created by others. The "current original" file can be found at
http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=15391. Note
that although several different compilers are targeted by this file, not every possible
compiler will result in all appropriate conditional symbols being defined.
The conditional symbols fit into the following categories:
Platform: Information about software/hardware platform, including Operating system and compiler.
Features: Information about which compiler and library features are available.
C&C: Options and debugging.
Note: Use of platform symbols should be avoided outside of eDefines, if possible.
Instead, use the capabilities symbols.
Symbol | Meaning |
---|---|
BP7 | Borland Pascal 7.0 |
CBUILDER1 | C++Builder 1.0 |
CBUILDER3 | C++Builder 3.0 |
CBUILDER4 | C++Builder 4.0 |
CBUILDER5 | C++Builder 5.0 |
DELPHI1 | Delphi 1.0 |
DELPHI2 | Delphi 2.0 |
DELPHI3 | Delphi 3.0 |
DELPHI4 | Delphi 4.0 |
DELPHI5 | Delphi 5.0 |
DELPHI6 | Delphi 6.0 |
DELPHI7 | Delphi 7.0 |
DELPHI8 | Delphi 8.0 |
DELPHI9 | Delphi 9.0 |
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 |
KYLIX1 | Kylix 1.0 |
TP4 | Turbo Pascal 4.0 |
TP5 | Turbo Pascal 5.0 |
TP55 | Turbo Pascal 5.5 |
TP6 | Turbo Pascal 6.0 |
TPW10 | Turbo Pascal for Windows 1.0 |
TPW15 | Turbo Pascal for Windows 1.5 |
Minimum compiler versions:
Symbol | Meaning |
---|---|
CBUILDER1UP | C++Builder 1.0 and above or Delphi 2 and above (any C++Builder) |
CBUILDER3UP | C++Builder 3.0 and above or Delphi 3.0 and above |
CBUILDER4UP | C++Builder 4.0 and above or Delphi 4.0 and above |
CBUILDER5UP | C++Builder 5.0 and above or Delphi 5.0 and above |
DELPHI | Any Delphi |
DELPHI1UP | Delphi 1.0 and above (any Delphi) |
DELPHI2UP | Delphi 2.0 and above |
DELPHI3UP | Delphi 3.0 and above |
DELPHI4UP | Delphi 4.0 and above |
DELPHI5UP | Delphi 5.0 and above |
DELPHI6UP | Delphi 6.0 and above |
DELPHI7UP | Delphi 7.0 and above |
DELPHI8UP | Delphi 8.0 and above |
DELPHI9UP | Delphi 9.0 and above |
DELPHI2005UP | Delphi 2005 and above |
DELPHI2006UP | Delphi 2006 and above |
DELPHI2007UP | Delphi 2007 and above |
DELPHI2009UP | Delphi 2009 and above |
DELPHI2010UP | Delphi 2010 and above |
DELPHIXEUP | Delphi XE and above |
DELPHIXE2UP | Delphi XE2 and above |
DELPHIXE3UP | Delphi XE3 and above |
DELPHIXE4UP | Delphi XE4 and above |
DELPHIXE5UP | Delphi XE5 and above |
DELPHIXE6UP | Delphi XE6 and above |
DELPHIXE7UP | Delphi XE7 and above |
DELPHIXE8UP | Delphi XE8 and above |
DELPHI10UP | Delphi 10 and above |
DELPHI10_1UP | Delphi 10.1 and above |
DELPHI10_2UP | Delphi 10.2 and above |
DELPHI10_3UP | Delphi 10.3 and above |
KYLIX1UP | Kylix 1.0 and above (any Kylix) |
TP4UP | Turbo Pascal 4.0 and above |
TP5UP | Turbo Pascal 5.0 and above |
TP55UP | Turbo Pascal 5.5 and above |
TP6UP | Turbo Pascal 6.0 and above |
TPW10UP | Turbo Pascal for Windows 1.0 and above (Any Turbo Pascal for Windows) |
TPW15UP | Turbo Pascal for Windows 1.5 and above |
Compiler types:
Symbol | Meaning |
---|---|
TP | Turbo Pascal |
TPW | Turbo Pascal for Windows |
BP | Borland Pascal (not Delphi or C++Builder) |
DELPHI | any Delphi version (but not C++Builder or Kylix) |
KYLIX | any Kylix version |
CBUILDER | any C++Builder (Pascal) |
FPC | Free Pascal |
FPC_DELPHI | Free Pascal in Delphi-compatibility mode |
Target platforms compiler types:
Symbol | Meaning |
---|---|
DELPHI_16BIT | 16bit Delphi (but not C++Builder!) |
DELPHI_32BIT | 32bit Delphi (but not C++Builder) |
DELPHI_64BIT | 64bit Delphi (but not C++Builder) |
CBUILDER_32BIT | 32bit C++Builder's Pascal (but not Delphi) |
Target platforms:
Symbol | Meaning |
---|---|
DOS | any DOS (plain and DPMI) |
DOS_OR_WINDOWS | Any DOS or any Windows |
LINUX | any Linix platform |
LINUX32 | 32bit Linux |
MOBILE | Android or iOS |
MSWINDOWS | any Windows platform |
PROTECTEDMODE | 16bit DPMI DOS |
REALMODE | 16bit realmode DOS |
WIN16 | 16bit Windows |
WIN32 | 32bit Windows (Delphi symbol) |
WIN64 | 64bit Windows (Delphi symbol) |
OSX | Any MacOs platform |
OSX64 | 64-bit OSX platform |
Features:
Compiler features:
Symbol | Meaning |
---|---|
ANONYMOUS_METHODS | Anonymous methods support. |
ASM | ASM supported. |
ASM_CPUID | cpuid instruction supported by internal assembler. |
ASM_INLINE | INLINE statement (assembler) supported. |
ASSIGN_CONSTANT_ARRAY_TO_DYNAMIC | Dynamic arrays can be initialized from a constant array. |
DEFAULT_WIDESTRING | Strings default to widestrings. |
DELEGATION | Delegations supported. |
DIRECT_RAM_ACCESS | Direct access to RAM allowed. |
DYNAMIC_ARRAYS | Dynamic arrays supported. |
DYNAMIC_ARRAY_CONCATENATION | Dynamic array concatenation supported. |
DYNAMIC_OBJECTS | Dynamic (heap) objects supported. |
DYNAMIC_STRINGS | Dynamic strings supported. |
ENUMERATORS | Enumerators and for...in supported. |
EXCEPTIONS | Exceptions supported. |
FUNCTION_RESULT_REQUIRED | Functions must have a target for what they return. |
GENERICS | Generics supported. |
INT64 | Non-Comp 64-bit integers (int64) supported. |
MOBILE | Mobile device (Android, IOS) |
NOVCL | No VCL on this platform |
OLEVARIANT | OLEVariant is supported. |
OVERLOAD | Overloaded methods are supported. |
OVERLOAD_FUNCTIONS | Overloaded functions are supported. |
POINTERMATH | $POINTERMATH diretive supported. |
PROPERTIES | Properties supported. |
REAL48 | Real48 type supported. |
RECORD_RETURNS | Return of record structures supported. |
REINTRODUCE | reintroduce is supported on methods. |
SCOPED_ENUMS | Scoped enums supported. |
STATIC_PROPERTIES | Properties are allowed in static (old) classes. |
STDCALL_SUPPORTED | stdcall calling convention supported. |
UNICODE_STRING | UnicodeString type supported. |
UNIT_INIT_AND_FINAL | Unit initialization/finalization supported. |
UNIT_NAME_DOTS | Unit names can contain dots (.) in them. |
VARIABLE_DECLARATION_ASSIGN | Assigning a variable a value in its declaration supported. |
WEAK_REFERENCES | Weak and unsafe references are supported. |
WIDESTRINGS | Widestrings are supported. |
Component (LCL, VCL) library features:
Symbol | Meaning |
---|---|
CL_ACTIONMANAGER_LARGE_IMAGE | TActionManager.DisabledImages, .LargeImages, and .LargeDisabledImages supported. |
CL_APPLICATION_DEFAULTFONT | TApplication.DefaultFont supported. |
CL_BITMAP_ALPHA | TBitmap.AlphaFormat supported. |
CL_BUTTON_IMAGES | TButton.CommandLinkHint, .DropDownMenu .OnDropDownClick, .Images, .ImageIndex, .HotImageIndex, .DisabledImageIndex, .PressedImageIndex, .SelectedImageIndex, .DropDownMenu, .ElevationRequired, .ImageAlignment, .ImageMargins, .CommandLinkHint, .Style, and .OnDropDownClick supported. |
CL_BUTTONEDEDIT | TButtonedEdit supported. |
CL_CATEGORY_PANEL | TCategoryPanel and TCategoryPanelGroup supported. |
CL_CB_HINT | TComboBox.TextHint supported. |
CL_CHARACTER | TCharacter class supported. |
CL_CONTROL_CUSTOMHINT | TControl.CustomHint and .ParentCustomHint supported. |
CL_CONTROL_HELPCONTEXT | TControl.HelpContext, .HelpKeyword, and .HelpType supported. |
CL_CUSTOMHINT | TCustomHint and TBalloonHint supported. |
CL_CUSTOMLISTVIEW_ONCHECKED | TCustomListView.OnItemChecked support. |
CL_DBIMAGE_PROPORTIONAL | TDBImage.Proportional supported. |
CL_EDIT_ALIGNMENT | TEdit/TLabeledEdit.Alignment, .NumbersOnly, and .TextHint supported. |
CL_ENCODING | TEncoding supported. |
CL_GRAPHIC_TRANSPARENCY | TGraphic.SupportsPartialTransparency supported. |
CL_IMAGELIST_ALPHA | TImageList.ColorDepth supported. |
CL_LABEL_GLOW | TLabel.GlowSizes supported. |
CL_LINKLABEL | TLinkLabel supported. |
CL_LIST_CAPACITY | TList has .Capacity property. |
CL_LISTGROUPS | TTListGroup and TListGroups supported. |
CL_LISTVIEW_GROUPS | TListView.GroupView, .Groups, .GroupHeaderImages, and .OnItemChecked supported. |
CL_CUSTOMHEADER_CHECKBOXES | TCustomHeaderControl.CheckBoxes, .NoSizing, and .OverFlow supported. THeaderSection.Checkbox, .Checked, and .FixedWidth supported. |
CL_MASKEDIT_ALIGNMENT | TMaskEdit.Alignment and .TextHint supported. |
CL_MEMO_CHARCASE | TMemo.CharCase supported. |
CL_OBJECT_EQUALS | TObject.Equals, .GetHashCode, and .ToString supported. |
CL_PANEL_HIDE_CAPTION | TPanel.ShowCaption supported. |
CL_POPUPACTIONBAR_STYLE | TPopupActionBar.Style supported. |
CL_PROGRESSBAR_CUSTOM | TProgressBar.Style, .MarqueeInterval, .BarColor, .BackgroundColor, .SmoothReverse, and .State supported. |
CL_RADIOGROUP_WORDWRAP | TRadioGroup.WordWrap supported. |
CL_RIBBONS | TRibbon, TRibbonApplicationMenuBar, and TRibbonQuickAccessToolbar supported. |
CL_SCREEN_MESSAGEFONT | TScreen.MessageFont supported. |
CL_STREAMREADER | TStreamReader and TStreamWriter supported. |
CL_STRINGBUILDER | TStringBuilder supported. |
CL_STRINGREADER | TStringReader and TStringWriter supported. |
CL_TRAYICON_BALLOONCLICK | TTrayIcon.OnBalloonClick supported. |
CL_TREEVIEW_DISABLED | TTreeView supports disabled tree nodes and image index for expanded nodes. |
CL_WINCONTROL_DOUBLEBUFFERED | TWinControl.DoubleBuffered and .ParentDoubleBuffered supported. |
Symbol | Meaning |
---|---|
BORLANDCPP2 | Borland C++ 2.0 |
BORLANDCPP3 | Borland C++ 3.0 |
BORLANDCPP3_1 | Borland C++ 3.1 |
BORLANDCPP4 | Borland C++ 4.0 |
BORLANDCPP5 | Borland C++ 5.0 |
BORLANDCPP5_5 | Borland C++ 5.5 |
BORLANDCPP5_6 | Borland C++ 5.6 |
CBUILDER1 | C++Builder 1.0 |
CBUILDER3 | C++Builder 3.0 |
CBUILDER4 | C++Builder 4.0 |
CBUILDER5 | C++Builder 5.0 |
CBUILDER2006 | C++Builder 2006 |
CBUILDER2007 | C++Builder 2007 |
CBUILDER2009 | C++Builder 2009 |
CBUILDER2010 | C++Builder 2010 |
CBUILDERXE | C++Builder XE |
CBUILDERXE2 | C++Builder XE2 |
CBUILDERXE3 | C++Builder XE3 |
CBUILDERXE4 | C++Builder XE4 |
CBUILDERXE5 | C++Builder XE5 |
CBUILDERXE6 | C++Builder XE6 |
CBUILDERXE7 | C++Builder XE7 |
CBUILDERXE8 | C++Builder XE8 |
CBUILDERSEATTLE | C++Builder Seattle |
Minimum compiler versions:
Symbol | Meaning |
---|---|
BORLANDCPP2UP | Borland C++ 2.0 and above |
BORLANDCPP3UP | Borland C++ 3.0 and above |
BORLANDCPP3_1UP | Borland C++ 3.1 and above |
BORLANDCPP4UP | Borland C++ 4.0 and above |
BORLANDCPP5UP | Borland C++ 5.0 and above |
BORLANDCPP5_5UP | Borland C++ 5.5 and above |
BORLANDCPP5_6UP | Borland C++ 5.6 and above |
CBUILDER1UP | C++Builder 1.0 and above (any C++Builder) |
CBUILDER3UP | C++Builder 3.0 and above |
CBUILDER4UP | C++Builder 4.0 and above |
CBUILDER5UP | C++Builder 5.0 and above |
CBUILDER2006UP | C++Builder 2006 and above |
CBUILDER2007UP | C++Builder 2007 and above |
CBUILDER2009UP | C++Builder 2009 and above |
CBUILDER2010UP | C++Builder 2010 and above |
CBUILDERXEUP | C++Builder XE and above |
CBUILDERXE2UP | C++Builder XE2 and above |
CBUILDERXE3UP | C++Builder XE3 and above |
CBUILDERXE4UP | C++Builder XE4 and above |
CBUILDERXE5UP | C++Builder XE5 and above |
CBUILDERXE6UP | C++Builder XE6 and above |
CBUILDERXE7UP | C++Builder XE7 and above |
CBUILDERXE8UP | C++Builder XE8 and above |
Compiler types:
Symbol | Meaning |
---|---|
CBUILDER | any C++Builder |
BORLANDCPP | any Borland C++ |
MINGW | MinGW |
Target platforms compiler types:
Symbol | Meaning |
---|---|
CBUILDER_32BIT | 32bit C++Builder |
Target platforms:
Symbol | Meaning |
---|---|
_32BIT | 32-bit |
_64BIT | 64-bit |
ARM | Arm. |
CONSOLE | Console mode |
LINUX | any Linux platform |
MACOSX | OSX |
MSWINDOWS | any Windows platform |
WIN32 | 32-bit Windows |
WIN64 | 64-bit Windows |
Feature:
Symbol | Meaning |
---|---|
STDCALL_SUPPORTED | STDCALL calling convention supported |