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