| 1 | {$IFNDEF JEDI_INC} | 
|---|
| 2 | {$DEFINE JEDI_INC} | 
|---|
| 3 |  | 
|---|
| 4 | {**************************************************************************************************} | 
|---|
| 5 | {                                                                                                  } | 
|---|
| 6 | {  The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} | 
|---|
| 7 | {  you may not use this file except in compliance with the License. You may obtain a copy of the   } | 
|---|
| 8 | {  License at http://www.mozilla.org/MPL/                                                          } | 
|---|
| 9 | {                                                                                                  } | 
|---|
| 10 | {  Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF  } | 
|---|
| 11 | {  ANY KIND, either express or implied. See the License for the specific language governing rights } | 
|---|
| 12 | {  and limitations under the License.                                                              } | 
|---|
| 13 | {                                                                                                  } | 
|---|
| 14 | {  The Original Code is: jedi.inc.                                                                 } | 
|---|
| 15 | {  The Initial Developer of the Original Code is Project JEDI http://www.delphi-jedi.org           } | 
|---|
| 16 | {                                                                                                  } | 
|---|
| 17 | {  Alternatively, the contents of this file may be used under the terms of the GNU Lesser General  } | 
|---|
| 18 | {  Public License (the  "LGPL License"), in which case the provisions of the LGPL License are      } | 
|---|
| 19 | {  applicable instead of those above. If you wish to allow use of your version of this file only   } | 
|---|
| 20 | {  under the terms of the LGPL License and not to allow others to use your version of this file    } | 
|---|
| 21 | {  under the MPL, indicate your decision by deleting the provisions above and replace them with    } | 
|---|
| 22 | {  the notice and other provisions required by the LGPL License. If you do not delete the          } | 
|---|
| 23 | {  provisions above, a recipient may use your version of this file under either the MPL or the     } | 
|---|
| 24 | {  LGPL License.                                                                                   } | 
|---|
| 25 | {                                                                                                  } | 
|---|
| 26 | {  For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html                    } | 
|---|
| 27 | {                                                                                                  } | 
|---|
| 28 | {**************************************************************************************************} | 
|---|
| 29 | {                                                                                                  } | 
|---|
| 30 | {  This file defines various generic compiler directives used in different libraries, e.g. in the  } | 
|---|
| 31 | {  JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in     } | 
|---|
| 32 | {  this file are of generic nature and consist mostly of mappings from the VERXXX directives       } | 
|---|
| 33 | {  defined by Delphi, C++Builder and FPC to friendly names such as DELPHI5 and                     } | 
|---|
| 34 | {  SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for    } | 
|---|
| 35 | {  compiler versions and/or whether the compiler supports certain features (such as widestrings or } | 
|---|
| 36 | {  64 bit integers. The libraries provide an additional, library specific, include file. For the   } | 
|---|
| 37 | {  JCL e.g. this is jcl.inc. These files should be included in source files instead of this file   } | 
|---|
| 38 | {  (which is pulled in automatically).                                                             } | 
|---|
| 39 | {                                                                                                  } | 
|---|
| 40 | {**************************************************************************************************} | 
|---|
| 41 | {                                                                                                  } | 
|---|
| 42 | { Last modified: $Date:: 2008-12-28 22:55:28 +0100 (dim. 28 déc. 2008)                          $ } | 
|---|
| 43 | { Revision:      $Rev:: 2580                                                                     $ } | 
|---|
| 44 | { Author:        $Author:: uschuster                                                             $ } | 
|---|
| 45 | {                                                                                                  } | 
|---|
| 46 | {**************************************************************************************************} | 
|---|
| 47 |  | 
|---|
| 48 | (* | 
|---|
| 49 |  | 
|---|
| 50 | - Development environment directives | 
|---|
| 51 |  | 
|---|
| 52 | This file defines two directives to indicate which development environment the | 
|---|
| 53 | library is being compiled with. Currently this can either be Delphi, Kylix, | 
|---|
| 54 | C++Builder or FPC. | 
|---|
| 55 |  | 
|---|
| 56 | Directive           Description | 
|---|
| 57 | ------------------------------------------------------------------------------ | 
|---|
| 58 | DELPHI              Defined if compiled with Delphi | 
|---|
| 59 | KYLIX               Defined if compiled with Kylix | 
|---|
| 60 | DELPHICOMPILER      Defined if compiled with Delphi or Kylix/Delphi | 
|---|
| 61 | BCB                 Defined if compiled with C++Builder | 
|---|
| 62 | CPPBUILDER          Defined if compiled with C++Builder (alias for BCB) | 
|---|
| 63 | BCBCOMPILER         Defined if compiled with C++Builder or Kylix/C++ | 
|---|
| 64 | DELPHILANGUAGE      Defined if compiled with Delphi, Kylix or C++Builder | 
|---|
| 65 | BORLAND             Defined if compiled with Delphi, Kylix or C++Builder | 
|---|
| 66 | FPC                 Defined if compiled with FPC | 
|---|
| 67 |  | 
|---|
| 68 | - Platform Directives | 
|---|
| 69 |  | 
|---|
| 70 | Platform directives are not all explicitly defined in this file, some are | 
|---|
| 71 | defined by the compiler itself. They are listed here only for completeness. | 
|---|
| 72 |  | 
|---|
| 73 | Directive           Description | 
|---|
| 74 | ------------------------------------------------------------------------------ | 
|---|
| 75 | WIN32               Defined when target platform is 32 bit Windows | 
|---|
| 76 | WIN64               Defined when target platform is 64 bit Windows | 
|---|
| 77 | MSWINDOWS           Defined when target platform is 32 bit Windows | 
|---|
| 78 | LINUX               Defined when target platform is Linux | 
|---|
| 79 | UNIX                Defined when target platform is Unix-like (including Linux) | 
|---|
| 80 | CLR                 Defined when target platform is .NET | 
|---|
| 81 |  | 
|---|
| 82 | - Architecture directives. These are auto-defined by FPC | 
|---|
| 83 | CPU32 and CPU64 are mostly for generic pointer size dependant differences rather | 
|---|
| 84 | than for a specific architecture. | 
|---|
| 85 |  | 
|---|
| 86 | CPU386              Defined when target platform is native x86 (win32) | 
|---|
| 87 | CPUx86_64           Defined when target platform is native x86_64 (win64) | 
|---|
| 88 | CPU32               Defined when target is 32-bit | 
|---|
| 89 | CPU64               Defined when target is 64-bit | 
|---|
| 90 |  | 
|---|
| 91 | - Visual library Directives | 
|---|
| 92 |  | 
|---|
| 93 | The following directives indicate for a visual library. In a Delphi/BCB | 
|---|
| 94 | (Win32) application you need to define the VisualCLX symbol in the project | 
|---|
| 95 | options, if  you want to use the VisualCLX library. Alternatively you can use | 
|---|
| 96 | the IDE expert, which is distributed with the JCL to do this automatically. | 
|---|
| 97 |  | 
|---|
| 98 | Directive           Description | 
|---|
| 99 | ------------------------------------------------------------------------------ | 
|---|
| 100 | VCL                 Defined for Delphi/BCB (Win32) exactly if VisualCLX is not defined | 
|---|
| 101 | VisualCLX           Defined for Kylix; needs to be defined for Delphi/BCB to | 
|---|
| 102 | use JCL with VisualCLX applications. | 
|---|
| 103 |  | 
|---|
| 104 |  | 
|---|
| 105 | - Other cross-platform related defines | 
|---|
| 106 |  | 
|---|
| 107 | These symbols are intended to help in writing portable code. | 
|---|
| 108 |  | 
|---|
| 109 | Directive           Description | 
|---|
| 110 | ------------------------------------------------------------------------------ | 
|---|
| 111 | PUREPASCAL          Code is machine-independent (as opposed to assembler code) | 
|---|
| 112 | Win32API            Code is specific for the Win32 API; | 
|---|
| 113 | use instead of "{$IFNDEF CLR} {$IFDEF MSWINDOWS}" constructs | 
|---|
| 114 |  | 
|---|
| 115 |  | 
|---|
| 116 | - Delphi Versions | 
|---|
| 117 |  | 
|---|
| 118 | The following directives are direct mappings from the VERXXX directives to a | 
|---|
| 119 | friendly name of the associated compiler. These directives are only defined if | 
|---|
| 120 | the compiler is Delphi (ie DELPHI is defined). | 
|---|
| 121 |  | 
|---|
| 122 | Directive           Description | 
|---|
| 123 | ------------------------------------------------------------------------------ | 
|---|
| 124 | DELPHI1             Defined when compiling with Delphi 1 (Codename WASABI/MANGO) | 
|---|
| 125 | DELPHI2             Defined when compiling with Delphi 2 (Codename POLARIS) | 
|---|
| 126 | DELPHI3             Defined when compiling with Delphi 3 (Codename IVORY) | 
|---|
| 127 | DELPHI4             Defined when compiling with Delphi 4 (Codename ALLEGRO) | 
|---|
| 128 | DELPHI5             Defined when compiling with Delphi 5 (Codename ARGUS) | 
|---|
| 129 | DELPHI6             Defined when compiling with Delphi 6 (Codename ILLIAD) | 
|---|
| 130 | DELPHI7             Defined when compiling with Delphi 7 (Codename AURORA) | 
|---|
| 131 | DELPHI8             Defined when compiling with Delphi 8 (Codename OCTANE) | 
|---|
| 132 | DELPHI2005          Defined when compiling with Delphi 2005 (Codename DIAMONDBACK) | 
|---|
| 133 | DELPHI9             Alias for DELPHI2005 | 
|---|
| 134 | DELPHI10            Defined when compiling with Delphi 2006 (Codename DEXTER) | 
|---|
| 135 | DELPHI2006          Alias for DELPHI10 | 
|---|
| 136 | DELPHI11            Defined when compiling with Delphi 2007 for Win32 (Codename SPACELY) | 
|---|
| 137 | DELPHI2007          Alias for DELPHI11 | 
|---|
| 138 | DELPHI12            Defined when compiling with Delphi 2009 for Win32 (Codename TIBURON) | 
|---|
| 139 | DELPHI2009          Alias for DELPHI12 | 
|---|
| 140 | DELPHI1_UP          Defined when compiling with Delphi 1 or higher | 
|---|
| 141 | DELPHI2_UP          Defined when compiling with Delphi 2 or higher | 
|---|
| 142 | DELPHI3_UP          Defined when compiling with Delphi 3 or higher | 
|---|
| 143 | DELPHI4_UP          Defined when compiling with Delphi 4 or higher | 
|---|
| 144 | DELPHI5_UP          Defined when compiling with Delphi 5 or higher | 
|---|
| 145 | DELPHI6_UP          Defined when compiling with Delphi 6 or higher | 
|---|
| 146 | DELPHI7_UP          Defined when compiling with Delphi 7 or higher | 
|---|
| 147 | DELPHI8_UP          Defined when compiling with Delphi 8 or higher | 
|---|
| 148 | DELPHI2005_UP       Defined when compiling with Delphi 2005 or higher | 
|---|
| 149 | DELPHI9_UP          Alias for DELPHI2005_UP | 
|---|
| 150 | DELPHI10_UP         Defined when compiling with Delphi 2006 or higher | 
|---|
| 151 | DELPHI2006_UP       Alias for DELPHI10_UP | 
|---|
| 152 | DELPHI11_UP         Defined when compiling with Delphi 2007 for Win32 or higher | 
|---|
| 153 | DELPHI2007_UP       Alias for DELPHI11_UP | 
|---|
| 154 | DELPHI12_UP         Defined when compiling with Delphi 2009 for Win32 or higher | 
|---|
| 155 | DELPHI2009_UP       Alias for DELPHI12_UP | 
|---|
| 156 |  | 
|---|
| 157 |  | 
|---|
| 158 | - Kylix Versions | 
|---|
| 159 |  | 
|---|
| 160 | The following directives are direct mappings from the VERXXX directives to a | 
|---|
| 161 | friendly name of the associated compiler. These directives are only defined if | 
|---|
| 162 | the compiler is Kylix (ie KYLIX is defined). | 
|---|
| 163 |  | 
|---|
| 164 | Directive           Description | 
|---|
| 165 | ------------------------------------------------------------------------------ | 
|---|
| 166 | KYLIX1              Defined when compiling with Kylix 1 | 
|---|
| 167 | KYLIX2              Defined when compiling with Kylix 2 | 
|---|
| 168 | KYLIX3              Defined when compiling with Kylix 3 (Codename CORTEZ) | 
|---|
| 169 | KYLIX1_UP           Defined when compiling with Kylix 1 or higher | 
|---|
| 170 | KYLIX2_UP           Defined when compiling with Kylix 2 or higher | 
|---|
| 171 | KYLIX3_UP           Defined when compiling with Kylix 3 or higher | 
|---|
| 172 |  | 
|---|
| 173 |  | 
|---|
| 174 | - Delphi Compiler Versions (Delphi / Kylix, not in BCB mode) | 
|---|
| 175 |  | 
|---|
| 176 | Directive           Description | 
|---|
| 177 | ------------------------------------------------------------------------------ | 
|---|
| 178 | DELPHICOMPILER1      Defined when compiling with Delphi 1 | 
|---|
| 179 | DELPHICOMPILER2      Defined when compiling with Delphi 2 | 
|---|
| 180 | DELPHICOMPILER3      Defined when compiling with Delphi 3 | 
|---|
| 181 | DELPHICOMPILER4      Defined when compiling with Delphi 4 | 
|---|
| 182 | DELPHICOMPILER5      Defined when compiling with Delphi 5 | 
|---|
| 183 | DELPHICOMPILER6      Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 | 
|---|
| 184 | DELPHICOMPILER7      Defined when compiling with Delphi 7 | 
|---|
| 185 | DELPHICOMPILER8      Defined when compiling with Delphi 8 | 
|---|
| 186 | DELPHICOMPILER9      Defined when compiling with Delphi 2005 | 
|---|
| 187 | DELPHICOMPILER10     Defined when compiling with Delphi Personality of BDS 4.0 | 
|---|
| 188 | DELPHICOMPILER11     Defined when compiling with Delphi 2007 for Win32 | 
|---|
| 189 | DELPHICOMPILER12     Defined when compiling with Delphi Personality of BDS 6.0 | 
|---|
| 190 | DELPHICOMPILER1_UP   Defined when compiling with Delphi 1 or higher | 
|---|
| 191 | DELPHICOMPILER2_UP   Defined when compiling with Delphi 2 or higher | 
|---|
| 192 | DELPHICOMPILER3_UP   Defined when compiling with Delphi 3 or higher | 
|---|
| 193 | DELPHICOMPILER4_UP   Defined when compiling with Delphi 4 or higher | 
|---|
| 194 | DELPHICOMPILER5_UP   Defined when compiling with Delphi 5 or higher | 
|---|
| 195 | DELPHICOMPILER6_UP   Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher | 
|---|
| 196 | DELPHICOMPILER7_UP   Defined when compiling with Delphi 7 or higher | 
|---|
| 197 | DELPHICOMPILER8_UP   Defined when compiling with Delphi 8 or higher | 
|---|
| 198 | DELPHICOMPILER9_UP   Defined when compiling with Delphi 2005 | 
|---|
| 199 | DELPHICOMPILER10_UP  Defined when compiling with Delphi 2006 or higher | 
|---|
| 200 | DELPHICOMPILER11_UP  Defined when compiling with Delphi 2007 for Win32 or higher | 
|---|
| 201 | DELPHICOMPILER12_UP  Defined when compiling with Delphi 2009 for Win32 or higher | 
|---|
| 202 |  | 
|---|
| 203 |  | 
|---|
| 204 | - C++Builder Versions | 
|---|
| 205 |  | 
|---|
| 206 | The following directives are direct mappings from the VERXXX directives to a | 
|---|
| 207 | friendly name of the associated compiler. These directives are only defined if | 
|---|
| 208 | the compiler is C++Builder (ie BCB is defined). | 
|---|
| 209 |  | 
|---|
| 210 | Directive    Description | 
|---|
| 211 | ------------------------------------------------------------------------------ | 
|---|
| 212 | BCB1         Defined when compiling with C++Builder 1 | 
|---|
| 213 | BCB3         Defined when compiling with C++Builder 3 | 
|---|
| 214 | BCB4         Defined when compiling with C++Builder 4 | 
|---|
| 215 | BCB5         Defined when compiling with C++Builder 5 (Codename RAMPAGE) | 
|---|
| 216 | BCB6         Defined when compiling with C++Builder 6 (Codename RIPTIDE) | 
|---|
| 217 | BCB10        Defined when compiling with C++Builder Personality of BDS 4.0 (also known as C++Builder 2006) (Codename DEXTER) | 
|---|
| 218 | BCB11        Defined when compiling with C++Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) (Codename COGSWELL) | 
|---|
| 219 | BCB12        Defined when compiling with C++Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) (Codename TIBURON) | 
|---|
| 220 | BCB1_UP      Defined when compiling with C++Builder 1 or higher | 
|---|
| 221 | BCB3_UP      Defined when compiling with C++Builder 3 or higher | 
|---|
| 222 | BCB4_UP      Defined when compiling with C++Builder 4 or higher | 
|---|
| 223 | BCB5_UP      Defined when compiling with C++Builder 5 or higher | 
|---|
| 224 | BCB6_UP      Defined when compiling with C++Builder 6 or higher | 
|---|
| 225 | BCB10_UP     Defined when compiling with C++Builder Personality of BDS 4.0 or higher | 
|---|
| 226 | BCB11_UP     Defined when compiling with C++Builder Personality of RAD Studio 2007 or higher | 
|---|
| 227 | BCB12_UP     Defined when compiling with C++Builder Personality of RAD Studio 2009 or higher | 
|---|
| 228 |  | 
|---|
| 229 |  | 
|---|
| 230 | - CodeGear RAD Studio / Borland Developer Studio Versions | 
|---|
| 231 |  | 
|---|
| 232 | The following directives are direct mappings from the VERXXX directives to a | 
|---|
| 233 | friendly name of the associated IDE. These directives are only defined if | 
|---|
| 234 | the IDE is Borland Developer Studio Version 2 or above. | 
|---|
| 235 |  | 
|---|
| 236 | Note: Borland Developer Studio 2006 is marketed as Delphi 2006 or C++Builder 2006, | 
|---|
| 237 | but those provide only different labels for identical content. | 
|---|
| 238 |  | 
|---|
| 239 | Directive    Description | 
|---|
| 240 | ------------------------------------------------------------------------------ | 
|---|
| 241 | BDS          Defined when compiling with BDS version of dcc32.exe (Codename SIDEWINDER) | 
|---|
| 242 | BDS2         Defined when compiling with BDS 2.0 (Delphi 8) (Codename OCTANE) | 
|---|
| 243 | BDS3         Defined when compiling with BDS 3.0 (Delphi 2005) (Codename DIAMONDBACK) | 
|---|
| 244 | BDS4         Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) (Codename DEXTER) | 
|---|
| 245 | BDS5         Defined when compiling with BDS 5.0 (CodeGear RAD Studio 2007) (Codename HIGHLANDER) | 
|---|
| 246 | BDS6         Defined when compiling with BDS 6.0 (CodeGear RAD Studio 2009) (Codename TIBURON) | 
|---|
| 247 | BDS2_UP      Defined when compiling with BDS 2.0 or higher | 
|---|
| 248 | BDS3_UP      Defined when compiling with BDS 3.0 or higher | 
|---|
| 249 | BDS4_UP      Defined when compiling with BDS 4.0 or higher | 
|---|
| 250 | BDS5_UP      Defined when compiling with BDS 5.0 or higher | 
|---|
| 251 | BDS6_UP      Defined when compiling with BDS 6.0 or higher | 
|---|
| 252 |  | 
|---|
| 253 | - Compiler Versions | 
|---|
| 254 |  | 
|---|
| 255 | The following directives are direct mappings from the VERXXX directives to a | 
|---|
| 256 | friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X | 
|---|
| 257 | directives, these directives are indepedent of the development environment. | 
|---|
| 258 | That is, they are defined regardless of whether compilation takes place using | 
|---|
| 259 | Delphi or C++Builder. | 
|---|
| 260 |  | 
|---|
| 261 | Directive     Description | 
|---|
| 262 | ------------------------------------------------------------------------------ | 
|---|
| 263 | COMPILER1      Defined when compiling with Delphi 1 | 
|---|
| 264 | COMPILER2      Defined when compiling with Delphi 2 or C++Builder 1 | 
|---|
| 265 | COMPILER3      Defined when compiling with Delphi 3 | 
|---|
| 266 | COMPILER35     Defined when compiling with C++Builder 3 | 
|---|
| 267 | COMPILER4      Defined when compiling with Delphi 4 or C++Builder 4 | 
|---|
| 268 | COMPILER5      Defined when compiling with Delphi 5 or C++Builder 5 | 
|---|
| 269 | COMPILER6      Defined when compiling with Delphi 6 or C++Builder 6 | 
|---|
| 270 | COMPILER7      Defined when compiling with Delphi 7 | 
|---|
| 271 | COMPILER8      Defined when compiling with Delphi 8 | 
|---|
| 272 | COMPILER9      Defined when compiling with Delphi 9 | 
|---|
| 273 | COMPILER10     Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 | 
|---|
| 274 | COMPILER11     Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 | 
|---|
| 275 | COMPILER12     Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 | 
|---|
| 276 | COMPILER1_UP   Defined when compiling with Delphi 1 or higher | 
|---|
| 277 | COMPILER2_UP   Defined when compiling with Delphi 2 or C++Builder 1 or higher | 
|---|
| 278 | COMPILER3_UP   Defined when compiling with Delphi 3 or higher | 
|---|
| 279 | COMPILER35_UP  Defined when compiling with C++Builder 3 or higher | 
|---|
| 280 | COMPILER4_UP   Defined when compiling with Delphi 4 or C++Builder 4 or higher | 
|---|
| 281 | COMPILER5_UP   Defined when compiling with Delphi 5 or C++Builder 5 or higher | 
|---|
| 282 | COMPILER6_UP   Defined when compiling with Delphi 6 or C++Builder 6 or higher | 
|---|
| 283 | COMPILER7_UP   Defined when compiling with Delphi 7 | 
|---|
| 284 | COMPILER8_UP   Defined when compiling with Delphi 8 | 
|---|
| 285 | COMPILER9_UP   Defined when compiling with Delphi Personalities of BDS 3.0 | 
|---|
| 286 | COMPILER10_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher | 
|---|
| 287 | COMPILER11_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher | 
|---|
| 288 | COMPILER12_UP  Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher | 
|---|
| 289 |  | 
|---|
| 290 |  | 
|---|
| 291 | - RTL Versions | 
|---|
| 292 |  | 
|---|
| 293 | Use e.g. following to determine the exact RTL version since version 14.0: | 
|---|
| 294 | {$IFDEF CONDITIONALEXPRESSIONS} | 
|---|
| 295 | {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)} | 
|---|
| 296 | // code for Delphi 6.02 or higher, Kylix 2 or higher, C++Builder 6 or higher | 
|---|
| 297 | ... | 
|---|
| 298 | {$IFEND} | 
|---|
| 299 | {$ENDIF} | 
|---|
| 300 |  | 
|---|
| 301 | Directive     Description | 
|---|
| 302 | ------------------------------------------------------------------------------ | 
|---|
| 303 | RTL80_UP      Defined when compiling with Delphi 1 or higher | 
|---|
| 304 | RTL90_UP      Defined when compiling with Delphi 2 or higher | 
|---|
| 305 | RTL93_UP      Defined when compiling with C++Builder 1 or higher | 
|---|
| 306 | RTL100_UP     Defined when compiling with Delphi 3 or higher | 
|---|
| 307 | RTL110_UP     Defined when compiling with C++Builder 3 or higher | 
|---|
| 308 | RTL120_UP     Defined when compiling with Delphi 4 or higher | 
|---|
| 309 | RTL125_UP     Defined when compiling with C++Builder 4 or higher | 
|---|
| 310 | RTL130_UP     Defined when compiling with Delphi 5 or C++Builder 5 or higher | 
|---|
| 311 | RTL140_UP     Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++Builder 6 or higher | 
|---|
| 312 | RTL150_UP     Defined when compiling with Delphi 7 or higher | 
|---|
| 313 | RTL160_UP     Defined when compiling with Delphi 8 or higher | 
|---|
| 314 | RTL170_UP     Defined when compiling with Delphi Personalities of BDS 3.0 or higher | 
|---|
| 315 | RTL180_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher | 
|---|
| 316 | RTL185_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher | 
|---|
| 317 | RTL190_UP     Defined when compiling with Delphi.NET of BDS 5.0 or higher | 
|---|
| 318 | RTL200_UP     Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher | 
|---|
| 319 |  | 
|---|
| 320 |  | 
|---|
| 321 | - CLR Versions | 
|---|
| 322 |  | 
|---|
| 323 | Directive     Description | 
|---|
| 324 | ------------------------------------------------------------------------------ | 
|---|
| 325 | CLR            Defined when compiling for .NET | 
|---|
| 326 | CLR10          Defined when compiling for .NET 1.0 (may be overriden by FORCE_CLR10) | 
|---|
| 327 | CLR10_UP       Defined when compiling for .NET 1.0 or higher | 
|---|
| 328 | CLR11          Defined when compiling for .NET 1.1 (may be overriden by FORCE_CLR11) | 
|---|
| 329 | CLR11_UP       Defined when compiling for .NET 1.1 or higher | 
|---|
| 330 | CLR20          Defined when compiling for .NET 2.0 (may be overriden by FORCE_CLR20) | 
|---|
| 331 | CLR20_UP       Defined when compiling for .NET 2.0 or higher | 
|---|
| 332 |  | 
|---|
| 333 |  | 
|---|
| 334 | - Feature Directives | 
|---|
| 335 |  | 
|---|
| 336 | The features directives are used to test if the compiler supports specific | 
|---|
| 337 | features, such as method overloading, and adjust the sources accordingly. Use | 
|---|
| 338 | of these directives is preferred over the use of the DELPHI and COMPILER | 
|---|
| 339 | directives. | 
|---|
| 340 |  | 
|---|
| 341 | Directive              Description | 
|---|
| 342 | ------------------------------------------------------------------------------ | 
|---|
| 343 | SUPPORTS_CONSTPARAMS           Compiler supports const parameters (D1+) | 
|---|
| 344 | SUPPORTS_SINGLE                Compiler supports the Single type (D1+) | 
|---|
| 345 | SUPPORTS_DOUBLE                Compiler supports the Double type (D1+) | 
|---|
| 346 | SUPPORTS_EXTENDED              Compiler supports the Extended type (D1+) | 
|---|
| 347 | SUPPORTS_CURRENCY              Compiler supports the Currency type (D2+) | 
|---|
| 348 | SUPPORTS_THREADVAR             Compiler supports threadvar declarations (D2+) | 
|---|
| 349 | SUPPORTS_OUTPARAMS             Compiler supports out parameters (D3+) | 
|---|
| 350 | SUPPORTS_VARIANT               Compiler supports variant (D2+) | 
|---|
| 351 | SUPPORTS_WIDECHAR              Compiler supports the WideChar type (D2+) | 
|---|
| 352 | SUPPORTS_WIDESTRING            Compiler supports the WideString type (D3+/BCB3+) | 
|---|
| 353 | SUPPORTS_INTERFACE             Compiler supports interfaces (D3+/BCB3+) | 
|---|
| 354 | SUPPORTS_DISPINTERFACE         Compiler supports dispatch interfaces (D3+/BCB3+) | 
|---|
| 355 | SUPPORTS_DISPID                Compiler supports dispatch ids (D3+/BCB3+/FPC) | 
|---|
| 356 | SUPPORTS_EXTSYM                Compiler supports the $EXTERNALSYM directive (D4+/BCB3+) | 
|---|
| 357 | SUPPORTS_NODEFINE              Compiler supports the $NODEFINE directive (D4+/BCB3+) | 
|---|
| 358 | SUPPORTS_LONGWORD              Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+) | 
|---|
| 359 | SUPPORTS_INT64                 Compiler supports the Int64 type (D4+/BCB4+) | 
|---|
| 360 | SUPPORTS_DYNAMICARRAYS         Compiler supports dynamic arrays (D4+/BCB4+) | 
|---|
| 361 | SUPPORTS_DEFAULTPARAMS         Compiler supports default parameters (D4+/BCB4+) | 
|---|
| 362 | SUPPORTS_OVERLOAD              Compiler supports overloading (D4+/BCB4+) | 
|---|
| 363 | SUPPORTS_IMPLEMENTS            Compiler supports implements (D4+/BCB4+) | 
|---|
| 364 | SUPPORTS_DEPRECATED            Compiler supports the deprecated directive (D6+/BCB6+) | 
|---|
| 365 | SUPPORTS_PLATFORM              Compiler supports the platform directive (D6+/BCB6+) | 
|---|
| 366 | SUPPORTS_LIBRARY               Compiler supports the library directive (D6+/BCB6+/FPC) | 
|---|
| 367 | SUPPORTS_LOCAL                 Compiler supports the local directive (D6+/BCB6+) | 
|---|
| 368 | SUPPORTS_SETPEFLAGS            Compiler supports the SetPEFlags directive (D6+/BCB6+) | 
|---|
| 369 | SUPPORTS_EXPERIMENTAL_WARNINGS Compiler supports the WARN SYMBOL_EXPERIMENTAL and WARN UNIT_EXPERIMENTAL directives (D6+/BCB6+) | 
|---|
| 370 | SUPPORTS_INLINE                Compiler supports the inline directive (D9+/FPC) | 
|---|
| 371 | SUPPORTS_FOR_IN                Compiler supports for in loops (D9+) | 
|---|
| 372 | SUPPORTS_NESTED_CONSTANTS      Compiler supports nested constants (D9+) | 
|---|
| 373 | SUPPORTS_NESTED_TYPES          Compiler supports nested types (D9+) | 
|---|
| 374 | SUPPORTS_REGION                Compiler supports the REGION and ENDREGION directives (D9+) | 
|---|
| 375 | SUPPORTS_ENHANCED_RECORDS      Compiler supports class [operator|function|procedure] for record types (D9.NET, D10+) | 
|---|
| 376 | SUPPORTS_CLASS_FIELDS          Compiler supports class fields (D9.NET, D10+) | 
|---|
| 377 | SUPPORTS_CLASS_HELPERS         Compiler supports class helpers (D9.NET, D10+) | 
|---|
| 378 | SUPPORTS_CLASS_OPERATORS       Compiler supports class operators (D9.NET, D10+) | 
|---|
| 379 | SUPPORTS_STRICT                Compiler supports strict keyword (D9.NET, D10+) | 
|---|
| 380 | SUPPORTS_STATIC                Compiler supports static keyword (D9.NET, D10+) | 
|---|
| 381 | SUPPORTS_FINAL                 Compiler supports final keyword (D9.NET, D10+) | 
|---|
| 382 | SUPPORTS_METHODINFO            Compiler supports the METHODINFO directives (D10+) | 
|---|
| 383 | SUPPORTS_GENERICS              Compiler supports generic implementations (D11.NET, D12+) | 
|---|
| 384 | SUPPORTS_DEPRECATED_DETAILS    Compiler supports additional text for the deprecated directive (D11.NET, D12+) | 
|---|
| 385 | ACCEPT_DEPRECATED              Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) | 
|---|
| 386 | ACCEPT_PLATFORM                Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) | 
|---|
| 387 | ACCEPT_LIBRARY                 Compiler supports or ignores the library directive (D6+/BCB6+) | 
|---|
| 388 | SUPPORTS_CUSTOMVARIANTS        Compiler supports custom variants (D6+/BCB6+) | 
|---|
| 389 | SUPPORTS_VARARGS               Compiler supports varargs (D6+/BCB6+) | 
|---|
| 390 | SUPPORTS_ENUMVALUE             Compiler supports assigning ordinalities to values of enums (D6+/BCB6+) | 
|---|
| 391 | SUPPORTS_DEPRECATED_WARNINGS   Compiler supports deprecated warnings (D6+/BCB6+) | 
|---|
| 392 | SUPPORTS_LIBRARY_WARNINGS      Compiler supports library warnings (D6+/BCB6+) | 
|---|
| 393 | SUPPORTS_PLATFORM_WARNINGS     Compiler supports platform warnings (D6+/BCB6+) | 
|---|
| 394 | SUPPORTS_UNSAFE_WARNINGS       Compiler supports unsafe warnings (D7) | 
|---|
| 395 | SUPPORTS_WEAKPACKAGEUNIT       Compiler supports the WEAKPACKAGEUNIT directive | 
|---|
| 396 | SUPPORTS_COMPILETIME_MESSAGES  Compiler supports the MESSAGE directive | 
|---|
| 397 | SUPPORTS_PACKAGES              Compiler supports Packages | 
|---|
| 398 | HAS_UNIT_LIBC                  Unit Libc exists (Kylix, FPC on Linux/x86) | 
|---|
| 399 | HAS_UNIT_RTLCONSTS             Unit RTLConsts exists (D6+/BCB6+/FPC) | 
|---|
| 400 | HAS_UNIT_TYPES                 Unit Types exists (D6+/BCB6+/FPC) | 
|---|
| 401 | HAS_UNIT_VARIANTS              Unit Variants exists (D6+/BCB6+/FPC) | 
|---|
| 402 | HAS_UNIT_STRUTILS              Unit StrUtils exists (D6+/BCB6+/FPC) | 
|---|
| 403 | HAS_UNIT_DATEUTILS             Unit DateUtils exists (D6+/BCB6+/FPC) | 
|---|
| 404 | HAS_UNIT_CONTNRS               Unit contnrs exists (D6+/BCB6+/FPC) | 
|---|
| 405 | HAS_UNIT_HTTPPROD              Unit HTTPProd exists (D9+) | 
|---|
| 406 | HAS_UNIT_ANSISTRINGS           Unit AnsiStrings exists (D12+) | 
|---|
| 407 | HAS_UNIT_PNGIMAGE              Unit PngImage exists (D12+) | 
|---|
| 408 | XPLATFORM_RTL                  The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) | 
|---|
| 409 | SUPPORTS_UNICODE               string type is aliased to an unicode string (WideString or UnicodeString) (DX.NET, D12+) | 
|---|
| 410 | SUPPORTS_UNICODE_STRING        Compiler supports UnicodeString (D12+) | 
|---|
| 411 |  | 
|---|
| 412 |  | 
|---|
| 413 | - Compiler Settings | 
|---|
| 414 |  | 
|---|
| 415 | The compiler settings directives indicate whether a specific compiler setting | 
|---|
| 416 | is in effect. This facilitates changing compiler settings locally in a more | 
|---|
| 417 | compact and readible manner. | 
|---|
| 418 |  | 
|---|
| 419 | Directive              Description | 
|---|
| 420 | ------------------------------------------------------------------------------ | 
|---|
| 421 | ALIGN_ON               Compiling in the A+ state (no alignment) | 
|---|
| 422 | BOOLEVAL_ON            Compiling in the B+ state (complete boolean evaluation) | 
|---|
| 423 | ASSERTIONS_ON          Compiling in the C+ state (assertions on) | 
|---|
| 424 | DEBUGINFO_ON           Compiling in the D+ state (debug info generation on) | 
|---|
| 425 | IMPORTEDDATA_ON        Compiling in the G+ state (creation of imported data references) | 
|---|
| 426 | LONGSTRINGS_ON         Compiling in the H+ state (string defined as AnsiString) | 
|---|
| 427 | IOCHECKS_ON            Compiling in the I+ state (I/O checking enabled) | 
|---|
| 428 | WRITEABLECONST_ON      Compiling in the J+ state (typed constants can be modified) | 
|---|
| 429 | LOCALSYMBOLS           Compiling in the L+ state (local symbol generation) | 
|---|
| 430 | TYPEINFO_ON            Compiling in the M+ state (RTTI generation on) | 
|---|
| 431 | OPTIMIZATION_ON        Compiling in the O+ state (code optimization on) | 
|---|
| 432 | OPENSTRINGS_ON         Compiling in the P+ state (variable string parameters are openstrings) | 
|---|
| 433 | OVERFLOWCHECKS_ON      Compiling in the Q+ state (overflow checing on) | 
|---|
| 434 | RANGECHECKS_ON         Compiling in the R+ state (range checking on) | 
|---|
| 435 | TYPEDADDRESS_ON        Compiling in the T+ state (pointers obtained using the @ operator are typed) | 
|---|
| 436 | SAFEDIVIDE_ON          Compiling in the U+ state (save FDIV instruction through RTL emulation) | 
|---|
| 437 | VARSTRINGCHECKS_ON     Compiling in the V+ state (type checking of shortstrings) | 
|---|
| 438 | STACKFRAMES_ON         Compiling in the W+ state (generation of stack frames) | 
|---|
| 439 | EXTENDEDSYNTAX_ON      Compiling in the X+ state (Delphi extended syntax enabled) | 
|---|
| 440 | *) | 
|---|
| 441 |  | 
|---|
| 442 | {$DEFINE BORLAND} | 
|---|
| 443 |  | 
|---|
| 444 | { Set FreePascal to Delphi mode } | 
|---|
| 445 | {$IFDEF FPC} | 
|---|
| 446 | {$MODE DELPHI} | 
|---|
| 447 | {$ASMMODE Intel} | 
|---|
| 448 | {$UNDEF BORLAND} | 
|---|
| 449 | // FPC defines CPU* and Unix automatically | 
|---|
| 450 | {$ENDIF} | 
|---|
| 451 |  | 
|---|
| 452 | {$IFDEF BORLAND} | 
|---|
| 453 | {$IFDEF LINUX} | 
|---|
| 454 | {$DEFINE KYLIX} | 
|---|
| 455 | {$ENDIF LINUX} | 
|---|
| 456 | {$IFNDEF CLR} | 
|---|
| 457 | {$DEFINE CPU386}  // For Borland compilers select the x86 compat assembler by default | 
|---|
| 458 | {$DEFINE CPU32}   // Assume Borland compilers are 32-bit (rather than 64-bit) | 
|---|
| 459 | {$ENDIF ~CLR} | 
|---|
| 460 | {$ENDIF BORLAND} | 
|---|
| 461 |  | 
|---|
| 462 | {------------------------------------------------------------------------------} | 
|---|
| 463 | { VERXXX to COMPILERX, DELPHIX and BCBX mappings                               } | 
|---|
| 464 | {------------------------------------------------------------------------------} | 
|---|
| 465 |  | 
|---|
| 466 | {$IFDEF BORLAND} | 
|---|
| 467 | {$IFDEF KYLIX} | 
|---|
| 468 | {$I kylix.inc} // FPC incompatible stuff | 
|---|
| 469 | {$ELSE ~KYLIX} | 
|---|
| 470 |  | 
|---|
| 471 | {$DEFINE UNKNOWN_COMPILER_VERSION} | 
|---|
| 472 |  | 
|---|
| 473 | {$IFDEF VER80} | 
|---|
| 474 | {$DEFINE COMPILER1} | 
|---|
| 475 | {$DEFINE DELPHI1} | 
|---|
| 476 | {$DEFINE DELPHICOMPILER1} | 
|---|
| 477 | {$DEFINE RTL80_UP} | 
|---|
| 478 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 479 | {$ENDIF} | 
|---|
| 480 |  | 
|---|
| 481 | {$IFDEF VER90} | 
|---|
| 482 | {$DEFINE COMPILER2} | 
|---|
| 483 | {$DEFINE DELPHI2} | 
|---|
| 484 | {$DEFINE DELPHICOMPILER2} | 
|---|
| 485 | {$DEFINE RTL90_UP} | 
|---|
| 486 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 487 | {$ENDIF} | 
|---|
| 488 |  | 
|---|
| 489 | {$IFDEF VER93} | 
|---|
| 490 | {$DEFINE COMPILER2} | 
|---|
| 491 | {$DEFINE BCB1} | 
|---|
| 492 | {$DEFINE BCB} | 
|---|
| 493 | {$DEFINE RTL93_UP} | 
|---|
| 494 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 495 | {$ENDIF} | 
|---|
| 496 |  | 
|---|
| 497 | {$IFDEF VER100} | 
|---|
| 498 | {$DEFINE COMPILER3} | 
|---|
| 499 | {$DEFINE DELPHI3} | 
|---|
| 500 | {$DEFINE DELPHICOMPILER3} | 
|---|
| 501 | {$DEFINE RTL100_UP} | 
|---|
| 502 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 503 | {$ENDIF} | 
|---|
| 504 |  | 
|---|
| 505 | {$IFDEF VER110} | 
|---|
| 506 | {$DEFINE COMPILER35} | 
|---|
| 507 | {$DEFINE BCB3} | 
|---|
| 508 | {$DEFINE RTL110_UP} | 
|---|
| 509 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 510 | {$ENDIF} | 
|---|
| 511 |  | 
|---|
| 512 | {$IFDEF VER120} | 
|---|
| 513 | {$DEFINE COMPILER4} | 
|---|
| 514 | {$DEFINE DELPHI4} | 
|---|
| 515 | {$DEFINE DELPHICOMPILER4} | 
|---|
| 516 | {$DEFINE RTL120_UP} | 
|---|
| 517 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 518 | {$ENDIF} | 
|---|
| 519 |  | 
|---|
| 520 | {$IFDEF VER125} | 
|---|
| 521 | {$DEFINE COMPILER4} | 
|---|
| 522 | {$DEFINE BCB4} | 
|---|
| 523 | {$DEFINE BCB} | 
|---|
| 524 | {$DEFINE RTL125_UP} | 
|---|
| 525 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 526 | {$ENDIF} | 
|---|
| 527 |  | 
|---|
| 528 | {$IFDEF VER130} | 
|---|
| 529 | {$DEFINE COMPILER5} | 
|---|
| 530 | {$IFDEF BCB} | 
|---|
| 531 | {$DEFINE BCB5} | 
|---|
| 532 | {$ELSE} | 
|---|
| 533 | {$DEFINE DELPHI5} | 
|---|
| 534 | {$DEFINE DELPHICOMPILER5} | 
|---|
| 535 | {$ENDIF} | 
|---|
| 536 | {$DEFINE RTL130_UP} | 
|---|
| 537 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 538 | {$ENDIF} | 
|---|
| 539 |  | 
|---|
| 540 | {$IFDEF VER140} | 
|---|
| 541 | {$DEFINE COMPILER6} | 
|---|
| 542 | {$IFDEF BCB} | 
|---|
| 543 | {$DEFINE BCB6} | 
|---|
| 544 | {$ELSE} | 
|---|
| 545 | {$DEFINE DELPHI6} | 
|---|
| 546 | {$DEFINE DELPHICOMPILER6} | 
|---|
| 547 | {$ENDIF} | 
|---|
| 548 | {$DEFINE RTL140_UP} | 
|---|
| 549 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 550 | {$ENDIF} | 
|---|
| 551 |  | 
|---|
| 552 | {$IFDEF VER150} | 
|---|
| 553 | {$DEFINE COMPILER7} | 
|---|
| 554 | {$DEFINE DELPHI7} | 
|---|
| 555 | {$DEFINE DELPHICOMPILER7} | 
|---|
| 556 | {$DEFINE RTL150_UP} | 
|---|
| 557 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 558 | {$ENDIF} | 
|---|
| 559 |  | 
|---|
| 560 | {$IFDEF VER160} | 
|---|
| 561 | {$DEFINE BDS2} | 
|---|
| 562 | {$DEFINE BDS} | 
|---|
| 563 | {$IFDEF CLR} | 
|---|
| 564 | {$DEFINE CLR10} | 
|---|
| 565 | {$ENDIF CLR} | 
|---|
| 566 | {$DEFINE COMPILER8} | 
|---|
| 567 | {$DEFINE DELPHI8} | 
|---|
| 568 | {$DEFINE DELPHICOMPILER8} | 
|---|
| 569 | {$DEFINE RTL160_UP} | 
|---|
| 570 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 571 | {$ENDIF} | 
|---|
| 572 |  | 
|---|
| 573 | {$IFDEF VER170} | 
|---|
| 574 | {$DEFINE BDS3} | 
|---|
| 575 | {$DEFINE BDS} | 
|---|
| 576 | {$IFDEF CLR} | 
|---|
| 577 | {$DEFINE CLR11} | 
|---|
| 578 | {$ENDIF CLR} | 
|---|
| 579 | {$DEFINE COMPILER9} | 
|---|
| 580 | {$DEFINE DELPHI9} | 
|---|
| 581 | {$DEFINE DELPHI2005} // synonym to DELPHI9 | 
|---|
| 582 | {$DEFINE DELPHICOMPILER9} | 
|---|
| 583 | {$DEFINE RTL170_UP} | 
|---|
| 584 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 585 | {$ENDIF} | 
|---|
| 586 |  | 
|---|
| 587 | {$IFDEF VER180} | 
|---|
| 588 | {$DEFINE BDS} | 
|---|
| 589 | {$IFDEF CLR} | 
|---|
| 590 | {$DEFINE CLR11} | 
|---|
| 591 | {$ENDIF CLR} | 
|---|
| 592 | {$IFDEF VER185} | 
|---|
| 593 | {$DEFINE BDS5} | 
|---|
| 594 | {$DEFINE COMPILER11} | 
|---|
| 595 | {$IFDEF BCB} | 
|---|
| 596 | {$DEFINE BCB11} | 
|---|
| 597 | {$ELSE} | 
|---|
| 598 | {$DEFINE DELPHI11} | 
|---|
| 599 | {$DEFINE DELPHI2007} // synonym to DELPHI11 | 
|---|
| 600 | {$DEFINE DELPHICOMPILER11} | 
|---|
| 601 | {$ENDIF} | 
|---|
| 602 | {$DEFINE RTL185_UP} | 
|---|
| 603 | {$ELSE ~~VER185} | 
|---|
| 604 | {$DEFINE BDS4} | 
|---|
| 605 | {$DEFINE COMPILER10} | 
|---|
| 606 | {$IFDEF BCB} | 
|---|
| 607 | {$DEFINE BCB10} | 
|---|
| 608 | {$ELSE} | 
|---|
| 609 | {$DEFINE DELPHI10} | 
|---|
| 610 | {$DEFINE DELPHI2006} // synonym to DELPHI10 | 
|---|
| 611 | {$DEFINE DELPHICOMPILER10} | 
|---|
| 612 | {$ENDIF} | 
|---|
| 613 | {$DEFINE RTL180_UP} | 
|---|
| 614 | {$ENDIF ~VER185} | 
|---|
| 615 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 616 | {$ENDIF} | 
|---|
| 617 |  | 
|---|
| 618 | {$IFDEF VER190} // Delphi 2007 for .NET | 
|---|
| 619 | {$DEFINE BDS} | 
|---|
| 620 | {$DEFINE BDS5} | 
|---|
| 621 | {$IFDEF CLR} | 
|---|
| 622 | {$DEFINE CLR20} | 
|---|
| 623 | {$ENDIF CLR} | 
|---|
| 624 | {$DEFINE COMPILER11} | 
|---|
| 625 | {$DEFINE DELPHI11} | 
|---|
| 626 | {$DEFINE DELPHI2007} // synonym to DELPHI11 | 
|---|
| 627 | {$DEFINE DELPHICOMPILER11} | 
|---|
| 628 | {$DEFINE RTL190_UP} | 
|---|
| 629 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 630 | {$ENDIF VER190} | 
|---|
| 631 |  | 
|---|
| 632 | {$IFDEF VER200} // RAD Studio 2009 | 
|---|
| 633 | {$DEFINE BDS} | 
|---|
| 634 | {$DEFINE BDS6} | 
|---|
| 635 | {$IFDEF CLR} | 
|---|
| 636 | {$DEFINE CLR20} | 
|---|
| 637 | {$ENDIF CLR} | 
|---|
| 638 | {$DEFINE COMPILER12} | 
|---|
| 639 | {$IFDEF BCB} | 
|---|
| 640 | {$DEFINE BCB12} | 
|---|
| 641 | {$ELSE} | 
|---|
| 642 | {$DEFINE DELPHI12} | 
|---|
| 643 | {$DEFINE DELPHI2009} // synonym to DELPHI12 | 
|---|
| 644 | {$DEFINE DELPHICOMPILER12} | 
|---|
| 645 | {$ENDIF BCB} | 
|---|
| 646 | {$IFDEF CLR} | 
|---|
| 647 | {$DEFINE RTL190_UP} | 
|---|
| 648 | {$ELSE} | 
|---|
| 649 | {$DEFINE RTL200_UP} | 
|---|
| 650 | {$ENDIF} | 
|---|
| 651 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 652 | {$ENDIF VER200} | 
|---|
| 653 |  | 
|---|
| 654 | {$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version) | 
|---|
| 655 | {$DEFINE BDS} | 
|---|
| 656 | {$DEFINE BDS6} | 
|---|
| 657 | {$DEFINE COMPILER12} | 
|---|
| 658 | {$IFDEF BCB} | 
|---|
| 659 | {$DEFINE BCB12} | 
|---|
| 660 | {$ELSE} | 
|---|
| 661 | {$DEFINE DELPHI12} | 
|---|
| 662 | {$DEFINE DELPHI2009} // synonym to DELPHI12 | 
|---|
| 663 | {$DEFINE DELPHICOMPILER12} | 
|---|
| 664 | {$ENDIF BCB} | 
|---|
| 665 | {$IFDEF CLR} | 
|---|
| 666 | {$DEFINE RTL190_UP} | 
|---|
| 667 | {$ELSE} | 
|---|
| 668 | {$DEFINE RTL200_UP} | 
|---|
| 669 | {$ENDIF} | 
|---|
| 670 | {$UNDEF UNKNOWN_COMPILER_VERSION} | 
|---|
| 671 | {$ENDIF} | 
|---|
| 672 |  | 
|---|
| 673 | {$ENDIF ~KYLIX} | 
|---|
| 674 |  | 
|---|
| 675 | {$IFDEF BCB} | 
|---|
| 676 | {$DEFINE CPPBUILDER} | 
|---|
| 677 | {$DEFINE BCBCOMPILER} | 
|---|
| 678 | {$ELSE ~BCB} | 
|---|
| 679 | {$DEFINE DELPHI} | 
|---|
| 680 | {$DEFINE DELPHICOMPILER} | 
|---|
| 681 | {$ENDIF ~BCB} | 
|---|
| 682 |  | 
|---|
| 683 | {$ENDIF BORLAND} | 
|---|
| 684 |  | 
|---|
| 685 | {------------------------------------------------------------------------------} | 
|---|
| 686 | { DELPHIX_UP from DELPHIX mappings                                             } | 
|---|
| 687 | {------------------------------------------------------------------------------} | 
|---|
| 688 |  | 
|---|
| 689 | {$IFDEF DELPHI12} {$DEFINE DELPHI12_UP} {$ENDIF} | 
|---|
| 690 | {$IFDEF DELPHI11} {$DEFINE DELPHI11_UP} {$ENDIF} | 
|---|
| 691 | {$IFDEF DELPHI10} {$DEFINE DELPHI10_UP} {$ENDIF} | 
|---|
| 692 | {$IFDEF DELPHI9}  {$DEFINE DELPHI9_UP}  {$ENDIF} | 
|---|
| 693 | {$IFDEF DELPHI8}  {$DEFINE DELPHI8_UP}  {$ENDIF} | 
|---|
| 694 | {$IFDEF DELPHI7}  {$DEFINE DELPHI7_UP}  {$ENDIF} | 
|---|
| 695 | {$IFDEF DELPHI6}  {$DEFINE DELPHI6_UP}  {$ENDIF} | 
|---|
| 696 | {$IFDEF DELPHI5}  {$DEFINE DELPHI5_UP}  {$ENDIF} | 
|---|
| 697 | {$IFDEF DELPHI4}  {$DEFINE DELPHI4_UP}  {$ENDIF} | 
|---|
| 698 | {$IFDEF DELPHI3}  {$DEFINE DELPHI3_UP}  {$ENDIF} | 
|---|
| 699 | {$IFDEF DELPHI2}  {$DEFINE DELPHI2_UP}  {$ENDIF} | 
|---|
| 700 | {$IFDEF DELPHI1}  {$DEFINE DELPHI1_UP}  {$ENDIF} | 
|---|
| 701 |  | 
|---|
| 702 | {------------------------------------------------------------------------------} | 
|---|
| 703 | { DELPHIX_UP from DELPHIX_UP mappings                                          } | 
|---|
| 704 | {------------------------------------------------------------------------------} | 
|---|
| 705 |  | 
|---|
| 706 | {$IFDEF DELPHI12_UP} | 
|---|
| 707 | {$DEFINE DELPHI2009_UP} // synonym to DELPHI12_UP | 
|---|
| 708 | {$DEFINE DELPHI11_UP} | 
|---|
| 709 | {$ENDIF} | 
|---|
| 710 |  | 
|---|
| 711 | {$IFDEF DELPHI11_UP} | 
|---|
| 712 | {$DEFINE DELPHI2007_UP} // synonym to DELPHI11_UP | 
|---|
| 713 | {$DEFINE DELPHI10_UP} | 
|---|
| 714 | {$ENDIF} | 
|---|
| 715 |  | 
|---|
| 716 | {$IFDEF DELPHI10_UP} | 
|---|
| 717 | {$DEFINE DELPHI2006_UP} // synonym to DELPHI10_UP | 
|---|
| 718 | {$DEFINE DELPHI9_UP} | 
|---|
| 719 | {$ENDIF} | 
|---|
| 720 |  | 
|---|
| 721 | {$IFDEF DELPHI9_UP} | 
|---|
| 722 | {$DEFINE DELPHI2005_UP} // synonym to DELPHI9_UP | 
|---|
| 723 | {$DEFINE DELPHI8_UP} | 
|---|
| 724 | {$ENDIF} | 
|---|
| 725 |  | 
|---|
| 726 | {$IFDEF DELPHI8_UP} {$DEFINE DELPHI7_UP} {$ENDIF} | 
|---|
| 727 | {$IFDEF DELPHI7_UP} {$DEFINE DELPHI6_UP} {$ENDIF} | 
|---|
| 728 | {$IFDEF DELPHI6_UP} {$DEFINE DELPHI5_UP} {$ENDIF} | 
|---|
| 729 | {$IFDEF DELPHI5_UP} {$DEFINE DELPHI4_UP} {$ENDIF} | 
|---|
| 730 | {$IFDEF DELPHI4_UP} {$DEFINE DELPHI3_UP} {$ENDIF} | 
|---|
| 731 | {$IFDEF DELPHI3_UP} {$DEFINE DELPHI2_UP} {$ENDIF} | 
|---|
| 732 | {$IFDEF DELPHI2_UP} {$DEFINE DELPHI1_UP} {$ENDIF} | 
|---|
| 733 |  | 
|---|
| 734 | {------------------------------------------------------------------------------} | 
|---|
| 735 | { BCBX_UP from BCBX mappings                                                   } | 
|---|
| 736 | {------------------------------------------------------------------------------} | 
|---|
| 737 |  | 
|---|
| 738 | {$IFDEF BCB12} {$DEFINE BCB12_UP} {$ENDIF} | 
|---|
| 739 | {$IFDEF BCB11} {$DEFINE BCB11_UP} {$ENDIF} | 
|---|
| 740 | {$IFDEF BCB10} {$DEFINE BCB10_UP} {$ENDIF} | 
|---|
| 741 | {$IFDEF BCB6}  {$DEFINE BCB6_UP}  {$ENDIF} | 
|---|
| 742 | {$IFDEF BCB5}  {$DEFINE BCB5_UP}  {$ENDIF} | 
|---|
| 743 | {$IFDEF BCB4}  {$DEFINE BCB4_UP}  {$ENDIF} | 
|---|
| 744 | {$IFDEF BCB3}  {$DEFINE BCB3_UP}  {$ENDIF} | 
|---|
| 745 | {$IFDEF BCB1}  {$DEFINE BCB1_UP}  {$ENDIF} | 
|---|
| 746 |  | 
|---|
| 747 | {------------------------------------------------------------------------------} | 
|---|
| 748 | { BCBX_UP from BCBX_UP mappings                                                } | 
|---|
| 749 | {------------------------------------------------------------------------------} | 
|---|
| 750 |  | 
|---|
| 751 | {$IFDEF BCB12_UP} {$DEFINE BCB11_UP} {$ENDIF} | 
|---|
| 752 | {$IFDEF BCB11_UP} {$DEFINE BCB10_UP} {$ENDIF} | 
|---|
| 753 | {$IFDEF BCB10_UP} {$DEFINE BCB6_UP}  {$ENDIF} | 
|---|
| 754 | {$IFDEF BCB6_UP}  {$DEFINE BCB5_UP}  {$ENDIF} | 
|---|
| 755 | {$IFDEF BCB5_UP}  {$DEFINE BCB4_UP}  {$ENDIF} | 
|---|
| 756 | {$IFDEF BCB4_UP}  {$DEFINE BCB3_UP}  {$ENDIF} | 
|---|
| 757 | {$IFDEF BCB3_UP}  {$DEFINE BCB1_UP}  {$ENDIF} | 
|---|
| 758 |  | 
|---|
| 759 | {------------------------------------------------------------------------------} | 
|---|
| 760 | { BDSX_UP from BDSX mappings                                                   } | 
|---|
| 761 | {------------------------------------------------------------------------------} | 
|---|
| 762 |  | 
|---|
| 763 | {$IFDEF BDS6} {$DEFINE BDS6_UP} {$ENDIF} | 
|---|
| 764 | {$IFDEF BDS5} {$DEFINE BDS5_UP} {$ENDIF} | 
|---|
| 765 | {$IFDEF BDS4} {$DEFINE BDS4_UP} {$ENDIF} | 
|---|
| 766 | {$IFDEF BDS3} {$DEFINE BDS3_UP} {$ENDIF} | 
|---|
| 767 | {$IFDEF BDS2} {$DEFINE BDS2_UP} {$ENDIF} | 
|---|
| 768 |  | 
|---|
| 769 | {------------------------------------------------------------------------------} | 
|---|
| 770 | { BDSX_UP from BDSX_UP mappings                                                } | 
|---|
| 771 | {------------------------------------------------------------------------------} | 
|---|
| 772 |  | 
|---|
| 773 | {$IFDEF BDS6_UP} {$DEFINE BDS5_UP} {$ENDIF} | 
|---|
| 774 | {$IFDEF BDS5_UP} {$DEFINE BDS4_UP} {$ENDIF} | 
|---|
| 775 | {$IFDEF BDS4_UP} {$DEFINE BDS3_UP} {$ENDIF} | 
|---|
| 776 | {$IFDEF BDS3_UP} {$DEFINE BDS2_UP} {$ENDIF} | 
|---|
| 777 |  | 
|---|
| 778 | {------------------------------------------------------------------------------} | 
|---|
| 779 | { DELPHICOMPILERX_UP from DELPHICOMPILERX mappings                             } | 
|---|
| 780 | {------------------------------------------------------------------------------} | 
|---|
| 781 |  | 
|---|
| 782 | {$IFDEF DELPHICOMPILER12} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} | 
|---|
| 783 | {$IFDEF DELPHICOMPILER11} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} | 
|---|
| 784 | {$IFDEF DELPHICOMPILER10} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} | 
|---|
| 785 | {$IFDEF DELPHICOMPILER9}  {$DEFINE DELPHICOMPILER9_UP}  {$ENDIF} | 
|---|
| 786 | {$IFDEF DELPHICOMPILER8}  {$DEFINE DELPHICOMPILER8_UP}  {$ENDIF} | 
|---|
| 787 | {$IFDEF DELPHICOMPILER7}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF} | 
|---|
| 788 | {$IFDEF DELPHICOMPILER6}  {$DEFINE DELPHICOMPILER6_UP}  {$ENDIF} | 
|---|
| 789 | {$IFDEF DELPHICOMPILER5}  {$DEFINE DELPHICOMPILER5_UP}  {$ENDIF} | 
|---|
| 790 | {$IFDEF DELPHICOMPILER4}  {$DEFINE DELPHICOMPILER4_UP}  {$ENDIF} | 
|---|
| 791 | {$IFDEF DELPHICOMPILER3}  {$DEFINE DELPHICOMPILER3_UP}  {$ENDIF} | 
|---|
| 792 | {$IFDEF DELPHICOMPILER2}  {$DEFINE DELPHICOMPILER2_UP}  {$ENDIF} | 
|---|
| 793 | {$IFDEF DELPHICOMPILER1}  {$DEFINE DELPHICOMPILER1_UP}  {$ENDIF} | 
|---|
| 794 |  | 
|---|
| 795 | {------------------------------------------------------------------------------} | 
|---|
| 796 | { DELPHICOMPILERX_UP from DELPHICOMPILERX_UP mappings                          } | 
|---|
| 797 | {------------------------------------------------------------------------------} | 
|---|
| 798 |  | 
|---|
| 799 | {$IFDEF DELPHICOMPILER12_UP} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} | 
|---|
| 800 | {$IFDEF DELPHICOMPILER11_UP} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} | 
|---|
| 801 | {$IFDEF DELPHICOMPILER10_UP} {$DEFINE DELPHICOMPILER9_UP}  {$ENDIF} | 
|---|
| 802 | {$IFDEF DELPHICOMPILER9_UP}  {$DEFINE DELPHICOMPILER8_UP}  {$ENDIF} | 
|---|
| 803 | {$IFDEF DELPHICOMPILER8_UP}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF} | 
|---|
| 804 | {$IFDEF DELPHICOMPILER8_UP}  {$DEFINE DELPHICOMPILER7_UP}  {$ENDIF} | 
|---|
| 805 | {$IFDEF DELPHICOMPILER7_UP}  {$DEFINE DELPHICOMPILER6_UP}  {$ENDIF} | 
|---|
| 806 | {$IFDEF DELPHICOMPILER6_UP}  {$DEFINE DELPHICOMPILER5_UP}  {$ENDIF} | 
|---|
| 807 | {$IFDEF DELPHICOMPILER5_UP}  {$DEFINE DELPHICOMPILER4_UP}  {$ENDIF} | 
|---|
| 808 | {$IFDEF DELPHICOMPILER4_UP}  {$DEFINE DELPHICOMPILER3_UP}  {$ENDIF} | 
|---|
| 809 | {$IFDEF DELPHICOMPILER3_UP}  {$DEFINE DELPHICOMPILER2_UP}  {$ENDIF} | 
|---|
| 810 | {$IFDEF DELPHICOMPILER2_UP}  {$DEFINE DELPHICOMPILER1_UP}  {$ENDIF} | 
|---|
| 811 |  | 
|---|
| 812 | {------------------------------------------------------------------------------} | 
|---|
| 813 | { COMPILERX_UP from COMPILERX mappings                                         } | 
|---|
| 814 | {------------------------------------------------------------------------------} | 
|---|
| 815 |  | 
|---|
| 816 | {$IFDEF COMPILER12} {$DEFINE COMPILER12_UP} {$ENDIF} | 
|---|
| 817 | {$IFDEF COMPILER11} {$DEFINE COMPILER11_UP} {$ENDIF} | 
|---|
| 818 | {$IFDEF COMPILER10} {$DEFINE COMPILER10_UP} {$ENDIF} | 
|---|
| 819 | {$IFDEF COMPILER9}  {$DEFINE COMPILER9_UP}  {$ENDIF} | 
|---|
| 820 | {$IFDEF COMPILER8}  {$DEFINE COMPILER8_UP}  {$ENDIF} | 
|---|
| 821 | {$IFDEF COMPILER7}  {$DEFINE COMPILER7_UP}  {$ENDIF} | 
|---|
| 822 | {$IFDEF COMPILER6}  {$DEFINE COMPILER6_UP}  {$ENDIF} | 
|---|
| 823 | {$IFDEF COMPILER5}  {$DEFINE COMPILER5_UP}  {$ENDIF} | 
|---|
| 824 | {$IFDEF COMPILER4}  {$DEFINE COMPILER4_UP}  {$ENDIF} | 
|---|
| 825 | {$IFDEF COMPILER35} {$DEFINE COMPILER35_UP} {$ENDIF} | 
|---|
| 826 | {$IFDEF COMPILER3}  {$DEFINE COMPILER3_UP}  {$ENDIF} | 
|---|
| 827 | {$IFDEF COMPILER2}  {$DEFINE COMPILER2_UP}  {$ENDIF} | 
|---|
| 828 | {$IFDEF COMPILER1}  {$DEFINE COMPILER1_UP}  {$ENDIF} | 
|---|
| 829 |  | 
|---|
| 830 | {------------------------------------------------------------------------------} | 
|---|
| 831 | { COMPILERX_UP from COMPILERX_UP mappings                                      } | 
|---|
| 832 | {------------------------------------------------------------------------------} | 
|---|
| 833 |  | 
|---|
| 834 | {$IFDEF COMPILER12_UP} {$DEFINE COMPILER11_UP} {$ENDIF} | 
|---|
| 835 | {$IFDEF COMPILER11_UP} {$DEFINE COMPILER10_UP} {$ENDIF} | 
|---|
| 836 | {$IFDEF COMPILER10_UP} {$DEFINE COMPILER9_UP}  {$ENDIF} | 
|---|
| 837 | {$IFDEF COMPILER9_UP}  {$DEFINE COMPILER8_UP}  {$ENDIF} | 
|---|
| 838 | {$IFDEF COMPILER8_UP}  {$DEFINE COMPILER7_UP}  {$ENDIF} | 
|---|
| 839 | {$IFDEF COMPILER7_UP}  {$DEFINE COMPILER6_UP}  {$ENDIF} | 
|---|
| 840 | {$IFDEF COMPILER6_UP}  {$DEFINE COMPILER5_UP}  {$ENDIF} | 
|---|
| 841 | {$IFDEF COMPILER5_UP}  {$DEFINE COMPILER4_UP}  {$ENDIF} | 
|---|
| 842 | {$IFDEF COMPILER4_UP}  {$DEFINE COMPILER35_UP} {$ENDIF} | 
|---|
| 843 | {$IFDEF COMPILER35_UP} {$DEFINE COMPILER3_UP}  {$ENDIF} | 
|---|
| 844 | {$IFDEF COMPILER3_UP}  {$DEFINE COMPILER2_UP}  {$ENDIF} | 
|---|
| 845 | {$IFDEF COMPILER2_UP}  {$DEFINE COMPILER1_UP}  {$ENDIF} | 
|---|
| 846 |  | 
|---|
| 847 | {------------------------------------------------------------------------------} | 
|---|
| 848 | { RTLX_UP from RTLX_UP mappings                                                } | 
|---|
| 849 | {------------------------------------------------------------------------------} | 
|---|
| 850 |  | 
|---|
| 851 | {$IFDEF RTL200_UP} {$DEFINE RTL190_UP} {$ENDIF} | 
|---|
| 852 | {$IFDEF RTL190_UP} {$DEFINE RTL185_UP} {$ENDIF} | 
|---|
| 853 | {$IFDEF RTL185_UP} {$DEFINE RTL180_UP} {$ENDIF} | 
|---|
| 854 | {$IFDEF RTL180_UP} {$DEFINE RTL170_UP} {$ENDIF} | 
|---|
| 855 | {$IFDEF RTL170_UP} {$DEFINE RTL160_UP} {$ENDIF} | 
|---|
| 856 | {$IFDEF RTL160_UP} {$DEFINE RTL150_UP} {$ENDIF} | 
|---|
| 857 | {$IFDEF RTL150_UP} {$DEFINE RTL145_UP} {$ENDIF} | 
|---|
| 858 | {$IFDEF RTL145_UP} {$DEFINE RTL142_UP} {$ENDIF} | 
|---|
| 859 | {$IFDEF RTL142_UP} {$DEFINE RTL140_UP} {$ENDIF} | 
|---|
| 860 | {$IFDEF RTL140_UP} {$DEFINE RTL130_UP} {$ENDIF} | 
|---|
| 861 | {$IFDEF RTL130_UP} {$DEFINE RTL125_UP} {$ENDIF} | 
|---|
| 862 | {$IFDEF RTL125_UP} {$DEFINE RTL120_UP} {$ENDIF} | 
|---|
| 863 | {$IFDEF RTL120_UP} {$DEFINE RTL110_UP} {$ENDIF} | 
|---|
| 864 | {$IFDEF RTL110_UP} {$DEFINE RTL100_UP} {$ENDIF} | 
|---|
| 865 | {$IFDEF RTL100_UP} {$DEFINE RTL93_UP}  {$ENDIF} | 
|---|
| 866 | {$IFDEF RTL93_UP}  {$DEFINE RTL90_UP}  {$ENDIF} | 
|---|
| 867 | {$IFDEF RTL90_UP}  {$DEFINE RTL80_UP}  {$ENDIF} | 
|---|
| 868 |  | 
|---|
| 869 | {------------------------------------------------------------------------------} | 
|---|
| 870 | { Check for CLR overrides of default detection                                 } | 
|---|
| 871 | {------------------------------------------------------------------------------} | 
|---|
| 872 |  | 
|---|
| 873 | {$IFDEF CLR} | 
|---|
| 874 | {$IFDEF FORCE_CLR10} | 
|---|
| 875 | {$DEFINE CLR10} | 
|---|
| 876 | {$UNDEF CLR11} | 
|---|
| 877 | {$UNDEF CLR20} | 
|---|
| 878 | {$ENDIF FORCE_CLR10} | 
|---|
| 879 |  | 
|---|
| 880 | {$IFDEF FORCE_CLR11} | 
|---|
| 881 | {$UNDEF CLR10} | 
|---|
| 882 | {$DEFINE CLR11} | 
|---|
| 883 | {$UNDEF CLR20} | 
|---|
| 884 | {$ENDIF FORCE_CLR11} | 
|---|
| 885 |  | 
|---|
| 886 | {$IFDEF FORCE_CLR20} | 
|---|
| 887 | {$UNDEF CLR10} | 
|---|
| 888 | {$UNDEF CLR11} | 
|---|
| 889 | {$DEFINE CLR20} | 
|---|
| 890 | {$ENDIF FORCE_CLR20} | 
|---|
| 891 | {$ENDIF CLR} | 
|---|
| 892 |  | 
|---|
| 893 | {------------------------------------------------------------------------------} | 
|---|
| 894 | { CLRX from CLRX_UP mappings                                                   } | 
|---|
| 895 | {------------------------------------------------------------------------------} | 
|---|
| 896 |  | 
|---|
| 897 | {$IFDEF CLR10} {$DEFINE CLR10_UP} {$ENDIF} | 
|---|
| 898 | {$IFDEF CLR11} {$DEFINE CLR11_UP} {$ENDIF} | 
|---|
| 899 | {$IFDEF CLR20} {$DEFINE CLR20_UP} {$ENDIF} | 
|---|
| 900 |  | 
|---|
| 901 | {------------------------------------------------------------------------------} | 
|---|
| 902 | { CLRX_UP from CLRX_UP mappings                                                } | 
|---|
| 903 | {------------------------------------------------------------------------------} | 
|---|
| 904 |  | 
|---|
| 905 | {$IFDEF CLR20_UP} {$DEFINE CLR11_UP} {$ENDIF} | 
|---|
| 906 | {$IFDEF CLR11_UP} {$DEFINE CLR10_UP} {$ENDIF} | 
|---|
| 907 |  | 
|---|
| 908 | {------------------------------------------------------------------------------} | 
|---|
| 909 |  | 
|---|
| 910 | {$IFDEF DELPHICOMPILER} | 
|---|
| 911 | {$DEFINE DELPHILANGUAGE} | 
|---|
| 912 | {$ENDIF} | 
|---|
| 913 |  | 
|---|
| 914 | {$IFDEF BCBCOMPILER} | 
|---|
| 915 | {$DEFINE DELPHILANGUAGE} | 
|---|
| 916 | {$ENDIF} | 
|---|
| 917 |  | 
|---|
| 918 | {------------------------------------------------------------------------------} | 
|---|
| 919 | { KYLIXX_UP from KYLIXX mappings                                               } | 
|---|
| 920 | {------------------------------------------------------------------------------} | 
|---|
| 921 |  | 
|---|
| 922 | {$IFDEF KYLIX3} {$DEFINE KYLIX3_UP} {$ENDIF} | 
|---|
| 923 | {$IFDEF KYLIX2} {$DEFINE KYLIX2_UP} {$ENDIF} | 
|---|
| 924 | {$IFDEF KYLIX1} {$DEFINE KYLIX1_UP} {$ENDIF} | 
|---|
| 925 |  | 
|---|
| 926 | {------------------------------------------------------------------------------} | 
|---|
| 927 | { KYLIXX_UP from KYLIXX_UP mappings                                            } | 
|---|
| 928 | {------------------------------------------------------------------------------} | 
|---|
| 929 |  | 
|---|
| 930 | {$IFDEF KYLIX3_UP} {$DEFINE KYLIX2_UP} {$ENDIF} | 
|---|
| 931 | {$IFDEF KYLIX2_UP} {$DEFINE KYLIX1_UP} {$ENDIF} | 
|---|
| 932 |  | 
|---|
| 933 | {------------------------------------------------------------------------------} | 
|---|
| 934 | { Map COMPILERX_UP to friendly feature names                                   } | 
|---|
| 935 | {------------------------------------------------------------------------------} | 
|---|
| 936 |  | 
|---|
| 937 | {$IFDEF FPC} | 
|---|
| 938 | {$IFDEF  VER1_0} | 
|---|
| 939 | Please use FPC 2.0 or higher to compile this. | 
|---|
| 940 | {$ELSE} | 
|---|
| 941 | {$DEFINE SUPPORTS_OUTPARAMS} | 
|---|
| 942 | {$DEFINE SUPPORTS_WIDECHAR} | 
|---|
| 943 | {$DEFINE SUPPORTS_WIDESTRING} | 
|---|
| 944 | {$IFDEF HASINTF} | 
|---|
| 945 | {$DEFINE SUPPORTS_INTERFACE} | 
|---|
| 946 | {$ENDIF} | 
|---|
| 947 | {$IFDEF HASVARIANT} | 
|---|
| 948 | {$DEFINE SUPPORTS_VARIANT} | 
|---|
| 949 | {$ENDIF} | 
|---|
| 950 | {$IFDEF FPC_HAS_TYPE_SINGLE} | 
|---|
| 951 | {$DEFINE SUPPORTS_SINGLE} | 
|---|
| 952 | {$ENDIF} | 
|---|
| 953 | {$IFDEF FPC_HAS_TYPE_DOUBLE} | 
|---|
| 954 | {$DEFINE SUPPORTS_DOUBLE} | 
|---|
| 955 | {$ENDIF} | 
|---|
| 956 | {$IFDEF FPC_HAS_TYPE_EXTENDED} | 
|---|
| 957 | {$DEFINE SUPPORTS_EXTENDED} | 
|---|
| 958 | {$ENDIF} | 
|---|
| 959 | {$IFDEF HASCURRENCY} | 
|---|
| 960 | {$DEFINE SUPPORTS_CURRENCY} | 
|---|
| 961 | {$ENDIF} | 
|---|
| 962 | {$DEFINE SUPPORTS_THREADVAR} | 
|---|
| 963 | {$DEFINE SUPPORTS_CONSTPARAMS} | 
|---|
| 964 | {$DEFINE SUPPORTS_LONGWORD} | 
|---|
| 965 | {$DEFINE SUPPORTS_INT64} | 
|---|
| 966 | {$DEFINE SUPPORTS_DYNAMICARRAYS} | 
|---|
| 967 | {$DEFINE SUPPORTS_DEFAULTPARAMS} | 
|---|
| 968 | {$DEFINE SUPPORTS_OVERLOAD} | 
|---|
| 969 | {$DEFINE ACCEPT_DEPRECATED}  // 2.2 also gives warnings | 
|---|
| 970 | {$DEFINE ACCEPT_PLATFORM}    // 2.2 also gives warnings | 
|---|
| 971 | {$DEFINE ACCEPT_LIBRARY} | 
|---|
| 972 | {$DEFINE SUPPORTS_EXTSYM} | 
|---|
| 973 | {$DEFINE SUPPORTS_NODEFINE} | 
|---|
| 974 |  | 
|---|
| 975 | {$DEFINE SUPPORTS_CUSTOMVARIANTS} | 
|---|
| 976 | {$DEFINE SUPPORTS_VARARGS} | 
|---|
| 977 | {$DEFINE SUPPORTS_ENUMVALUE} | 
|---|
| 978 | {$IFDEF LINUX} | 
|---|
| 979 | {$DEFINE HAS_UNIT_LIBC} | 
|---|
| 980 | {$ENDIF LINUX} | 
|---|
| 981 | {$DEFINE HAS_UNIT_CONTNRS} | 
|---|
| 982 | {$DEFINE HAS_UNIT_TYPES} | 
|---|
| 983 | {$DEFINE HAS_UNIT_VARIANTS} | 
|---|
| 984 | {$DEFINE HAS_UNIT_STRUTILS} | 
|---|
| 985 | {$DEFINE HAS_UNIT_DATEUTILS} | 
|---|
| 986 | {$DEFINE HAS_UNIT_RTLCONSTS} | 
|---|
| 987 |  | 
|---|
| 988 | {$DEFINE XPLATFORM_RTL} | 
|---|
| 989 |  | 
|---|
| 990 | {$IFDEF VER2_2} | 
|---|
| 991 | {$DEFINE SUPPORTS_DISPINTERFACE} | 
|---|
| 992 | {$DEFINE SUPPORTS_IMPLEMENTS} | 
|---|
| 993 | {$DEFINE SUPPORTS_DISPID} | 
|---|
| 994 | {$ELSE} | 
|---|
| 995 | {$UNDEF SUPPORTS_DISPINTERFACE} | 
|---|
| 996 | {$UNDEF SUPPORTS_IMPLEMENTS} | 
|---|
| 997 | {$endif} | 
|---|
| 998 | {$UNDEF SUPPORTS_UNSAFE_WARNINGS} | 
|---|
| 999 | {$ENDIF} | 
|---|
| 1000 | {$ENDIF FPC} | 
|---|
| 1001 |  | 
|---|
| 1002 | {$IFDEF CLR} | 
|---|
| 1003 | {$DEFINE SUPPORTS_UNICODE} | 
|---|
| 1004 | {$ENDIF CLR} | 
|---|
| 1005 |  | 
|---|
| 1006 | {$IFDEF COMPILER1_UP} | 
|---|
| 1007 | {$DEFINE SUPPORTS_CONSTPARAMS} | 
|---|
| 1008 | {$DEFINE SUPPORTS_SINGLE} | 
|---|
| 1009 | {$DEFINE SUPPORTS_DOUBLE} | 
|---|
| 1010 | {$DEFINE SUPPORTS_EXTENDED} | 
|---|
| 1011 | {$DEFINE SUPPORTS_PACKAGES} | 
|---|
| 1012 | {$ENDIF COMPILER1_UP} | 
|---|
| 1013 |  | 
|---|
| 1014 | {$IFDEF COMPILER2_UP} | 
|---|
| 1015 | {$DEFINE SUPPORTS_CURRENCY} | 
|---|
| 1016 | {$DEFINE SUPPORTS_THREADVAR} | 
|---|
| 1017 | {$DEFINE SUPPORTS_VARIANT} | 
|---|
| 1018 | {$DEFINE SUPPORTS_WIDECHAR} | 
|---|
| 1019 | {$ENDIF COMPILER2_UP} | 
|---|
| 1020 |  | 
|---|
| 1021 | {$IFDEF COMPILER3_UP} | 
|---|
| 1022 | {$DEFINE SUPPORTS_OUTPARAMS} | 
|---|
| 1023 | {$DEFINE SUPPORTS_WIDESTRING} | 
|---|
| 1024 | {$DEFINE SUPPORTS_INTERFACE} | 
|---|
| 1025 | {$DEFINE SUPPORTS_DISPINTERFACE} | 
|---|
| 1026 | {$DEFINE SUPPORTS_DISPID} | 
|---|
| 1027 | {$DEFINE SUPPORTS_WEAKPACKAGEUNIT} | 
|---|
| 1028 | {$ENDIF COMPILER3_UP} | 
|---|
| 1029 |  | 
|---|
| 1030 | {$IFDEF COMPILER35_UP} | 
|---|
| 1031 | {$DEFINE SUPPORTS_EXTSYM} | 
|---|
| 1032 | {$DEFINE SUPPORTS_NODEFINE} | 
|---|
| 1033 | {$ENDIF COMPILER35_UP} | 
|---|
| 1034 |  | 
|---|
| 1035 | {$IFDEF COMPILER4_UP} | 
|---|
| 1036 | {$DEFINE SUPPORTS_LONGWORD} | 
|---|
| 1037 | {$DEFINE SUPPORTS_INT64} | 
|---|
| 1038 | {$DEFINE SUPPORTS_DYNAMICARRAYS} | 
|---|
| 1039 | {$DEFINE SUPPORTS_DEFAULTPARAMS} | 
|---|
| 1040 | {$DEFINE SUPPORTS_OVERLOAD} | 
|---|
| 1041 | {$DEFINE SUPPORTS_IMPLEMENTS} | 
|---|
| 1042 | {$ENDIF COMPILER4_UP} | 
|---|
| 1043 |  | 
|---|
| 1044 | {$IFDEF COMPILER6_UP} | 
|---|
| 1045 | {$DEFINE SUPPORTS_DEPRECATED} | 
|---|
| 1046 | {$DEFINE SUPPORTS_LIBRARY} | 
|---|
| 1047 | {$DEFINE SUPPORTS_PLATFORM} | 
|---|
| 1048 | {$DEFINE SUPPORTS_LOCAL} | 
|---|
| 1049 | {$DEFINE SUPPORTS_SETPEFLAGS} | 
|---|
| 1050 | {$DEFINE SUPPORTS_EXPERIMENTAL_WARNINGS} | 
|---|
| 1051 | {$DEFINE ACCEPT_DEPRECATED} | 
|---|
| 1052 | {$DEFINE ACCEPT_PLATFORM} | 
|---|
| 1053 | {$DEFINE ACCEPT_LIBRARY} | 
|---|
| 1054 | {$DEFINE SUPPORTS_DEPRECATED_WARNINGS} | 
|---|
| 1055 | {$DEFINE SUPPORTS_LIBRARY_WARNINGS} | 
|---|
| 1056 | {$DEFINE SUPPORTS_PLATFORM_WARNINGS} | 
|---|
| 1057 | {$DEFINE SUPPORTS_CUSTOMVARIANTS} | 
|---|
| 1058 | {$DEFINE SUPPORTS_VARARGS} | 
|---|
| 1059 | {$DEFINE SUPPORTS_ENUMVALUE} | 
|---|
| 1060 | {$DEFINE SUPPORTS_COMPILETIME_MESSAGES} | 
|---|
| 1061 | {$ENDIF COMPILER6_UP} | 
|---|
| 1062 |  | 
|---|
| 1063 | {$IFDEF COMPILER7_UP} | 
|---|
| 1064 | {$DEFINE SUPPORTS_UNSAFE_WARNINGS} | 
|---|
| 1065 | {$ENDIF COMPILER7_UP} | 
|---|
| 1066 |  | 
|---|
| 1067 | {$IFDEF COMPILER9_UP} | 
|---|
| 1068 | {$DEFINE SUPPORTS_FOR_IN} | 
|---|
| 1069 | {$DEFINE SUPPORTS_INLINE} | 
|---|
| 1070 | {$DEFINE SUPPORTS_NESTED_CONSTANTS} | 
|---|
| 1071 | {$DEFINE SUPPORTS_NESTED_TYPES} | 
|---|
| 1072 | {$DEFINE SUPPORTS_REGION} | 
|---|
| 1073 | {$IFDEF CLR} | 
|---|
| 1074 | {$DEFINE SUPPORTS_ENHANCED_RECORDS} | 
|---|
| 1075 | {$DEFINE SUPPORTS_CLASS_FIELDS} | 
|---|
| 1076 | {$DEFINE SUPPORTS_CLASS_HELPERS} | 
|---|
| 1077 | {$DEFINE SUPPORTS_CLASS_OPERATORS} | 
|---|
| 1078 | {$DEFINE SUPPORTS_STRICT} | 
|---|
| 1079 | {$DEFINE SUPPORTS_STATIC} | 
|---|
| 1080 | {$DEFINE SUPPORTS_FINAL} | 
|---|
| 1081 | {$ENDIF CLR} | 
|---|
| 1082 | {$ENDIF COMPILER9_UP} | 
|---|
| 1083 |  | 
|---|
| 1084 | {$IFDEF COMPILER10_UP} | 
|---|
| 1085 | {$DEFINE SUPPORTS_ENHANCED_RECORDS} | 
|---|
| 1086 | {$DEFINE SUPPORTS_CLASS_FIELDS} | 
|---|
| 1087 | {$DEFINE SUPPORTS_CLASS_HELPERS} | 
|---|
| 1088 | {$DEFINE SUPPORTS_CLASS_OPERATORS} | 
|---|
| 1089 | {$DEFINE SUPPORTS_STRICT} | 
|---|
| 1090 | {$DEFINE SUPPORTS_STATIC} | 
|---|
| 1091 | {$DEFINE SUPPORTS_FINAL} | 
|---|
| 1092 | {$DEFINE SUPPORTS_METHODINFO} | 
|---|
| 1093 | {$ENDIF COMPILER10_UP} | 
|---|
| 1094 |  | 
|---|
| 1095 | {$IFDEF COMPILER11_UP} | 
|---|
| 1096 | {$IFDEF CLR} | 
|---|
| 1097 | {$DEFINE SUPPORTS_GENERICS} | 
|---|
| 1098 | {$DEFINE SUPPORTS_DEPRECATED_DETAILS} | 
|---|
| 1099 | {$ENDIF CLR} | 
|---|
| 1100 | {$ENDIF COMPILER11_UP} | 
|---|
| 1101 |  | 
|---|
| 1102 | {$IFDEF COMPILER12_UP} | 
|---|
| 1103 | {$DEFINE SUPPORTS_GENERICS} | 
|---|
| 1104 | {$DEFINE SUPPORTS_DEPRECATED_DETAILS} | 
|---|
| 1105 | {$IFNDEF CLR} | 
|---|
| 1106 | {$DEFINE SUPPORTS_UNICODE} | 
|---|
| 1107 | {$DEFINE SUPPORTS_UNICODE_STRING} | 
|---|
| 1108 | {$ENDIF  CLR} | 
|---|
| 1109 | {$ENDIF COMPILER12_UP} | 
|---|
| 1110 |  | 
|---|
| 1111 | {$IFDEF RTL130_UP} | 
|---|
| 1112 | {$DEFINE HAS_UNIT_CONTNRS} | 
|---|
| 1113 | {$ENDIF RTL130_UP} | 
|---|
| 1114 |  | 
|---|
| 1115 | {$IFDEF RTL140_UP} | 
|---|
| 1116 | {$IFDEF LINUX} | 
|---|
| 1117 | {$DEFINE HAS_UNIT_LIBC} | 
|---|
| 1118 | {$ENDIF LINUX} | 
|---|
| 1119 | {$DEFINE HAS_UNIT_RTLCONSTS} | 
|---|
| 1120 | {$DEFINE HAS_UNIT_TYPES} | 
|---|
| 1121 | {$DEFINE HAS_UNIT_VARIANTS} | 
|---|
| 1122 | {$DEFINE HAS_UNIT_STRUTILS} | 
|---|
| 1123 | {$DEFINE HAS_UNIT_DATEUTILS} | 
|---|
| 1124 | {$DEFINE XPLATFORM_RTL} | 
|---|
| 1125 | {$ENDIF RTL140_UP} | 
|---|
| 1126 |  | 
|---|
| 1127 | {$IFDEF RTL170_UP} | 
|---|
| 1128 | {$DEFINE HAS_UNIT_HTTPPROD} | 
|---|
| 1129 | {$ENDIF RTL170_UP} | 
|---|
| 1130 |  | 
|---|
| 1131 | {$IFDEF RTL200_UP} | 
|---|
| 1132 | {$DEFINE HAS_UNIT_ANSISTRINGS} | 
|---|
| 1133 | {$DEFINE HAS_UNIT_PNGIMAGE} | 
|---|
| 1134 | {$ENDIF RTL200_UP} | 
|---|
| 1135 |  | 
|---|
| 1136 | {------------------------------------------------------------------------------} | 
|---|
| 1137 | { Cross-platform related defines                                               } | 
|---|
| 1138 | {------------------------------------------------------------------------------} | 
|---|
| 1139 |  | 
|---|
| 1140 | {$IFNDEF CPU386} | 
|---|
| 1141 | {$DEFINE PUREPASCAL} | 
|---|
| 1142 | {$ENDIF} | 
|---|
| 1143 |  | 
|---|
| 1144 | {$IFDEF WIN32} | 
|---|
| 1145 | {$DEFINE MSWINDOWS} // predefined for D6+/BCB6+ | 
|---|
| 1146 | {$DEFINE Win32API} | 
|---|
| 1147 | {$ENDIF} | 
|---|
| 1148 |  | 
|---|
| 1149 | {$IFDEF DELPHILANGUAGE} | 
|---|
| 1150 | {$IFDEF LINUX} | 
|---|
| 1151 | {$DEFINE UNIX} | 
|---|
| 1152 | {$ENDIF} | 
|---|
| 1153 |  | 
|---|
| 1154 | {$IFNDEF CONSOLE} | 
|---|
| 1155 | {$IFDEF LINUX} | 
|---|
| 1156 | {$DEFINE VisualCLX} | 
|---|
| 1157 | {$ENDIF} | 
|---|
| 1158 | {$IFNDEF VisualCLX} | 
|---|
| 1159 | {$DEFINE VCL} | 
|---|
| 1160 | {$ENDIF} | 
|---|
| 1161 | {$ENDIF ~CONSOLE} | 
|---|
| 1162 | {$ENDIF DELPHILANGUAGE} | 
|---|
| 1163 |  | 
|---|
| 1164 | {------------------------------------------------------------------------------} | 
|---|
| 1165 | { Compiler settings                                                            } | 
|---|
| 1166 | {------------------------------------------------------------------------------} | 
|---|
| 1167 |  | 
|---|
| 1168 | {$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF} | 
|---|
| 1169 | {$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF} | 
|---|
| 1170 | {$IFDEF COMPILER2_UP} | 
|---|
| 1171 | {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF} | 
|---|
| 1172 | {$ENDIF} | 
|---|
| 1173 | {$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF} | 
|---|
| 1174 | {$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF} | 
|---|
| 1175 | {$IFDEF COMPILER2_UP} | 
|---|
| 1176 | {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF} | 
|---|
| 1177 | {$ENDIF} | 
|---|
| 1178 |  | 
|---|
| 1179 | // Hints | 
|---|
| 1180 | {$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF} | 
|---|
| 1181 | {$IFDEF COMPILER2_UP} | 
|---|
| 1182 | {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF} | 
|---|
| 1183 | {$ENDIF} | 
|---|
| 1184 | {$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$ENDIF} | 
|---|
| 1185 | {$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF} | 
|---|
| 1186 | {$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF} | 
|---|
| 1187 | {$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF} | 
|---|
| 1188 | {$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF} | 
|---|
| 1189 | {$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF} | 
|---|
| 1190 |  | 
|---|
| 1191 | // Real compatibility | 
|---|
| 1192 | {$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF} | 
|---|
| 1193 | {$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF} | 
|---|
| 1194 | {$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF} | 
|---|
| 1195 | {$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF} | 
|---|
| 1196 |  | 
|---|
| 1197 | // Warnings | 
|---|
| 1198 | {$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF} | 
|---|
| 1199 |  | 
|---|
| 1200 | // for Delphi/BCB trial versions remove the point from the line below | 
|---|
| 1201 | {.$UNDEF SUPPORTS_WEAKPACKAGEUNIT} | 
|---|
| 1202 |  | 
|---|
| 1203 | {$ENDIF ~JEDI_INC} | 
|---|