1{----------------------------------------------------------------------------}
2{file:      eDefines.inc                                                     }
3{type:      Delphi include file                                              }
4{                                                                            }
5{compiler:  Borland Pascal 7,                                                }
6{           Delphi 1-7, 2005-2007 for Win32                                  }
7{           Kylix 1-3,                                                       }
8{           C++Builder 1-6, 2006-2007                                        }
9{           Free Pascal Compiler 2.x                                         }
10{                                                                            }
11{platforms: DOS, DPMI, Win16, Win32, Win64, Linux, Mac OS X                  }
12{                                                                            }
13{author:    mh@elitedev.com                                                  }
14{                                                                            }
15{contents:  Defines that can be flexibily used to determine the exact        }
16{           compiler version used.                                           }
17{                                                                            }
18{(c)opyright elitedevelopments software. all rights reserved.                }
19{            http://www.elitedev.com                                         }
20{                                                                            }
21{ Third Party component developers are encouraged to use the set of defines  }
22{ established in this file, rather then their own system, for checking their }
23{ component libraries agains different versions of Delphi and C++Builder.    }
24{                                                                            }
25{ This file may be distributed freely with both free and commercial source   }
26{ libraries, but you are asked to please leave this comment in place, and    }
27{ to return any improvements you make to this file to the maintainer that    }
28{ is noted above.                                                            }
29{----------------------------------------------------------------------------}
30
31{----------------------------------------------------------------------------}
32{ Compiler and OS version defines:                                           }
33{                                                                            }
34{ exact compiler versions:                                                   }
35{                                                                            }
36{ BP7             Borland Pascal 7.0                                         }
37{ DELPHI1         Delphi 1.0 (any Delphi)                                    }
38{ DELPHI2         Delphi 2.0                                                 }
39{ DELPHI3         Delphi 3.0                                                 }
40{ DELPHI4         Delphi 4.0                                                 }
41{ DELPHI5         Delphi 5.0                                                 }
42{ DELPHI6         Delphi 6.0                                                 }
43{ DELPHI7         Delphi 7.0                                                 }
44{ DELPHI9         Delphi 2005                                                }
45{ DELPHI2005      Delphi 2005                                                }
46{ DELPHI2006      Delphi 2006                                                }
47{ DELPHI2007      Delphi 2007                                                }
48{ KYLIX1          Kylix 1.0                                                  }
49{ KYLIX2          Kylix 2.0                                                  }
50{ KYLIX3          Kylix 3.0                                                  }
51{ CBUILDER1       C++Builder 1.0                                             }
52{ CBUILDER3       C++Builder 3.0                                             }
53{ CBUILDER4       C++Builder 4.0                                             }
54{ CBUILDER5       C++Builder 5.0                                             }
55{                                                                            }
56{                                                                            }
57{ minimum compiler versions:                                                 }
58{                                                                            }
59{ DELPHI1UP       Delphi 1.0 and above (any Delphi)                          }
60{ DELPHI2UP       Delphi 2.0 and above                                       }
61{ DELPHI3UP       Delphi 3.0 and above                                       }
62{ DELPHI4UP       Delphi 4.0 and above                                       }
63{ DELPHI5UP       Delphi 5.0 and above                                       }
64{ DELPHI6UP       Delphi 6.0 and above                                       }
65{ DELPHI7UP       Delphi 7.0 and above                                       }
66{ DELPHI9UP       Delphi 9.0 (2005) and above                                }
67{ DELPHI10UP      Delphi 10.0 (2006) and above                               }
68{ DELPHI11UP      Delphi 11.0 (2007) and above                               }
69{ DELPHI2005UP    Delphi 2005 and above                                      }
70{ DELPHI2006UP    Delphi 2006 and above                                      }
71{ DELPHI2007UP    Delphi 2007 and above                                      }
72{ KYLIX1UP        Kylix 1.0 and above (any Kylix)                            }
73{ KYLIX2UP        Kylix 2.0 and above (any Kylix)                            }
74{ KYLIX3UP        Kylix 3.0 and above (any Kylix)                            }
75{ CBUILDER1UP     C++Builder 1.0 and above or Delphi 2 and above             }
76{ CBUILDER3UP     C++Builder 3.0 and above or Delphi 3.0 and above           }
77{ CBUILDER4UP     C++Builder 4.0 and above or Delphi 4.0 and above           }
78{ CBUILDER5UP     C++Builder 5.0 and above or Delphi 5.0 and above           }
79{ CBUILDER6UP     C++Builder 5.0 and above or Delphi 5.0 and above           }
80{                                                                            }
81{                                                                            }
82{ compiler types:                                                            }
83{                                                                            }
84{ BP              Borland Pascal (not Delphi or C++Builder)                  }
85{ DELPHI          any Delphi version (but not C++Builder or Kylix)           }
86{ KYLIX           any Kylix version (not Delphi or C++Builder for Windows)   }
87{ CBUILDER        any C++Builder for Windows (Pascal)                        }
88{                                                                            }
89{                                                                            }
90{ target platforms compiler types:                                           }
91{                                                                            }
92{ DELPHI_16BIT    16bit Delphi (but not C++Builder!)                         }
93{ DELPHI_32BIT    32bit Delphi (but not C++Builder)                          }
94{ KYLIX_32BIT     32bit Kylix (but not C++Builder)                           }
95{ CBUILDER_32BIT  32bit C++Builer's Pascal (but not Delphi)                  }
96{                                                                            }
97{                                                                            }
98{ target cpu types                                                           }
99{                                                                            }
100{ CPU16           16bit Delphi or Borland Pascal                             }
101{ CPU32           32bit Delphi or Free Pascal                                }
102{ CPU64           64bit Free Pascal                                          }
103{                                                                            }
104{ target platforms                                                           }
105{                                                                            }
106{ DOS             any DOS (plain and DPMI)                                   }
107{ REALMODE        16bit realmode DOS                                         }
108{ PROTECTEDMODE   16bit DPMI DOS                                             }
109{                                                                            }
110{ MSWINDOWS       any Windows platform                                       }
111{ WIN16           16bit Windows                                              }
112{ WIN32           32bit Windows                                              }
113{ WIN64           64bit Windows                                              }
114{ DOTNET          .NET                                                       }
115{                                                                            }
116{ LINUX           any Linux platform                                         }
117{ LINUX32         32bit Linux                                                }
118{ LINUX64         64bit Linux                                                }
119{                                                                            }
120{ DARWIN          Any Mac OS X                                               }
121{ DARWIN32        32bit Mac OS X                                             }
122{ DARWIN64        64bit Mac OS X                                             }
123{----------------------------------------------------------------------------}
124
125{ defines for Borland Pascal 7.0 }
126{$IFDEF VER70}
127  {$DEFINE BP}
128  {$DEFINE BP7}
129  {$DEFINE 16BIT}
130  {$DEFINE CPU16}
131
132  { defines for BP7 DOS real mode }
133  {$IFDEF MSDOS}
134    {$DEFINE DOS}
135    {$DEFINE REALMODE}
136  {$ENDIF}
137
138  { defines for BP7 DOS protected mode }
139  {$IFDEF DPMI}
140    {$DEFINE DOS}
141    {$DEFINE PROTECTEDMODE}
142  {$ENDIF}
143
144  { defines for BP7 Windows }
145  {$IFDEF WINDOWS}
146    {$DEFINE MSWINDOWS}
147    {$DEFINE WIN16}
148  {$ENDIF}
149{$ENDIF}
150{$IFDEF WIN32}
151{$DEFINE MSWINDOWS}
152{$ENDIF}
153{ defines for Delphi 1.0 thru 7.0 }
154{$IFDEF MSWINDOWS}
155
156  { defines for Delphi 1.0 }
157  {$IFDEF VER80}
158    {$DEFINE DELPHI}
159    {$DEFINE DELPHI1}
160    {$DEFINE DELPHI1UP}
161    {$DEFINE DELPHI_16BIT}
162    {$DEFINE WIN16}
163    {$DEFINE 16BIT}
164    {$DEFINE CPU16}
165  {$ENDIF}
166
167  { defines for Delphi 2.0 }
168  {$IFDEF VER90}
169    {$DEFINE DELPHI}
170    {$DEFINE DELPHI2}
171    {$DEFINE DELPHI1UP}
172    {$DEFINE DELPHI2UP}
173  {$ENDIF}
174
175  { defines for C++Builder 1.0 }
176  {$IFDEF VER93}
177    {$DEFINE DELPHI1UP}
178    {$DEFINE DELPHI2UP}
179    {$DEFINE CBUILDER}
180    {$DEFINE CBUILDER1}
181    {$DEFINE CBUILDER1UP}
182  {$ENDIF}
183
184  { defines for Delphi 3.0 }
185  {$IFDEF VER100}
186    {$DEFINE DELPHI}
187    {$DEFINE DELPHI3}
188    {$DEFINE DELPHI1UP}
189    {$DEFINE DELPHI2UP}
190    {$DEFINE DELPHI3UP}
191  {$ENDIF}
192
193  { defines for C++Builder 3.0 }
194  {$IFDEF VER110}
195    {$DEFINE DELPHI1UP}
196    {$DEFINE DELPHI2UP}
197    {$DEFINE DELPHI3UP}
198    {$DEFINE CBUILDER}
199    {$DEFINE CBUILDER3}
200    {$DEFINE CBUILDER1UP}
201    {$DEFINE CBUILDER3UP}
202  {$ENDIF}
203
204  { defines for Delphi 4.0 }
205  {$IFDEF VER120}
206    {$DEFINE DELPHI}
207    {$DEFINE DELPHI4}
208    {$DEFINE DELPHI1UP}
209    {$DEFINE DELPHI2UP}
210    {$DEFINE DELPHI3UP}
211    {$DEFINE DELPHI4UP}
212  {$ENDIF}
213
214  { defines for C++Builder 4.0 }
215  {$IFDEF VER125}
216    {$DEFINE DELPHI1UP}
217    {$DEFINE DELPHI2UP}
218    {$DEFINE DELPHI3UP}
219    {$DEFINE DELPHI4UP}
220    {$DEFINE CBUILDER}
221    {$DEFINE CBUILDER4}
222    {$DEFINE CBUILDER1UP}
223    {$DEFINE CBUILDER3UP}
224    {$DEFINE CBUILDER4UP}
225  {$ENDIF}
226  { defines for Delphi 5.0 }
227  {$IFDEF VER130}
228    {$DEFINE DELPHI}
229    {$DEFINE DELPHI5}
230    {$DEFINE DELPHI1UP}
231    {$DEFINE DELPHI2UP}
232    {$DEFINE DELPHI3UP}
233    {$DEFINE DELPHI4UP}
234    {$DEFINE DELPHI5UP}
235  {$ENDIF}
236
237  { defines for C++Builder 5.0 }
238  {$IFDEF VER135}
239    {$DEFINE DELPHI1UP}
240    {$DEFINE DELPHI2UP}
241    {$DEFINE DELPHI3UP}
242    {$DEFINE DELPHI4UP}
243    {$DEFINE DELPHI5UP}
244    {$DEFINE CBUILDER}
245    {$DEFINE CBUILDER5}
246    {$DEFINE CBUILDER1UP}
247    {$DEFINE CBUILDER3UP}
248    {$DEFINE CBUILDER4UP}
249    {$DEFINE CBUILDER5UP}
250  {$ENDIF}
251
252  { defines for Delphi 6.0 }
253  {$IFDEF VER140}
254    {$DEFINE VER140UP}
255    {$DEFINE DELPHI}
256    {$DEFINE DELPHI6}
257    {$DEFINE DELPHI1UP}
258    {$DEFINE DELPHI2UP}
259    {$DEFINE DELPHI3UP}
260    {$DEFINE DELPHI4UP}
261    {$DEFINE DELPHI5UP}
262    {$DEFINE DELPHI6UP}
263  {$ENDIF}
264
265  { defines for Delphi 7.0 }
266  {$IFDEF VER150}
267    {$DEFINE VER140UP}
268    {$DEFINE DELPHI}
269    {$DEFINE DELPHI7}
270    {$DEFINE DELPHI1UP}
271    {$DEFINE DELPHI2UP}
272    {$DEFINE DELPHI3UP}
273    {$DEFINE DELPHI4UP}
274    {$DEFINE DELPHI5UP}
275    {$DEFINE DELPHI6UP}
276    {$DEFINE DELPHI7UP}
277  {$ENDIF}
278
279  { defines for Delphi 2005 }
280  {$IFDEF VER170}
281    {$DEFINE VER140UP}
282    {$DEFINE DELPHI}
283    {$DEFINE DELPHI9}
284    {$DEFINE DELPHI2005}
285    {$DEFINE DELPHI1UP}
286    {$DEFINE DELPHI2UP}
287    {$DEFINE DELPHI3UP}
288    {$DEFINE DELPHI4UP}
289    {$DEFINE DELPHI5UP}
290    {$DEFINE DELPHI6UP}
291    {$DEFINE DELPHI7UP}
292    {$DEFINE DELPHI9UP}
293    {$DEFINE DELPHI2005UP}
294    {$DEFINE BDS}
295    {$DEFINE BDS3}
296    {$DEFINE BDS3UP}
297  {$ENDIF}
298
299  { defines for Delphi 2006 }
300  {$IFDEF VER180}
301    {$DEFINE VER140UP}
302    {$DEFINE DELPHI}
303    {$DEFINE DELPHI10}
304    {$DEFINE DELPHI10A}
305    {$DEFINE DELPHI2006}
306    {$DEFINE DELPHI1UP}
307    {$DEFINE DELPHI2UP}
308    {$DEFINE DELPHI3UP}
309    {$DEFINE DELPHI4UP}
310    {$DEFINE DELPHI5UP}
311    {$DEFINE DELPHI6UP}
312    {$DEFINE DELPHI7UP}
313    {$DEFINE DELPHI9UP}
314    {$DEFINE DELPHI10UP}
315    {$DEFINE DELPHI2005UP}
316    {$DEFINE DELPHI2006UP}
317    {$DEFINE BDS}
318    {$DEFINE BDS4}
319    {$DEFINE BDS3UP}
320    {$DEFINE BDS4UP}
321  {$ENDIF}
322
323  { defines for Delphi 2007 }
324  {$IFDEF VER185}
325    {$UNDEF DELPHI10A}  // declared in VER180
326    {$UNDEF DELPHI2006} // declared in VER180
327    {$UNDEF BDS4}       // declared in VER180
328
329    {$DEFINE DELPHI10B}
330    {$DEFINE DELPHI10BUP}
331    {$DEFINE DELPHI11}
332    {$DEFINE DELPHI11UP}
333    {$DEFINE DELPHI2007}
334    {$DEFINE DELPHI2007UP}
335    {$DEFINE BDS5}
336    {$DEFINE BDS5UP}
337  {$ENDIF}
338
339  { defines for Delphi 2009 }
340  {$IFDEF VER200}
341    {$DEFINE VER140UP}
342    {$DEFINE DELPHI}
343
344    {$DEFINE DELPHI12}
345    {$DEFINE DELPHI1UP}
346    {$DEFINE DELPHI2UP}
347    {$DEFINE DELPHI3UP}
348    {$DEFINE DELPHI4UP}
349    {$DEFINE DELPHI5UP}
350    {$DEFINE DELPHI6UP}
351    {$DEFINE DELPHI7UP}
352    {$DEFINE DELPHI9UP}
353    {$DEFINE DELPHI10UP}
354    {$DEFINE DELPHI11UP}
355    {$DEFINE DELPHI12UP}
356
357    {$DEFINE DELPHI2009}
358    {$DEFINE DELPHI2005UP}
359    {$DEFINE DELPHI2006UP}
360    {$DEFINE DELPHI2007UP}
361    {$DEFINE DELPHI2009UP}
362
363    {$DEFINE BDS}
364    {$DEFINE BDS6}
365    {$DEFINE BDS3UP}
366    {$DEFINE BDS4UP}
367    {$DEFINE BDS5UP}
368    {$DEFINE BDS6UP}
369  {$ENDIF}
370
371  { defines for Delphi 2010 }
372  {$IFDEF VER210}
373    {$DEFINE VER140UP}
374    {$DEFINE DELPHI}
375
376    {$DEFINE DELPHI14}
377    {$DEFINE DELPHI1UP}
378    {$DEFINE DELPHI2UP}
379    {$DEFINE DELPHI3UP}
380    {$DEFINE DELPHI4UP}
381    {$DEFINE DELPHI5UP}
382    {$DEFINE DELPHI6UP}
383    {$DEFINE DELPHI7UP}
384    {$DEFINE DELPHI9UP}
385    {$DEFINE DELPHI10UP}
386    {$DEFINE DELPHI11UP}
387    {$DEFINE DELPHI12UP}
388    {$DEFINE DELPHI14UP}
389
390    {$DEFINE DELPHI2010}
391    {$DEFINE DELPHI2005UP}
392    {$DEFINE DELPHI2006UP}
393    {$DEFINE DELPHI2007UP}
394    {$DEFINE DELPHI2009UP}
395    {$DEFINE DELPHI2010UP}
396
397    {$DEFINE BDS}
398    {$DEFINE BDS7}
399    {$DEFINE BDS3UP}
400    {$DEFINE BDS4UP}
401    {$DEFINE BDS5UP}
402    {$DEFINE BDS6UP}
403    {$DEFINE BDS7UP}
404  {$ENDIF}
405
406
407  {$IFDEF WIN32}
408    {$DEFINE MSWINDOWS} //not automatically defined for Delphi 2 thru 5
409    {$DEFINE 32BIT}
410    {$DEFINE CPU32}
411  {$ENDIF}
412{$ENDIF MSWINDOWS}
413
414{ defines for Delphi 2011 }
415{$IFDEF VER220}
416  {$DEFINE VER140UP}
417  {$DEFINE DELPHI}
418
419  {$DEFINE DELPHI15}
420  {$DEFINE DELPHI1UP}
421  {$DEFINE DELPHI2UP}
422  {$DEFINE DELPHI3UP}
423  {$DEFINE DELPHI4UP}
424  {$DEFINE DELPHI5UP}
425  {$DEFINE DELPHI6UP}
426  {$DEFINE DELPHI7UP}
427  {$DEFINE DELPHI9UP}
428  {$DEFINE DELPHI10UP}
429  {$DEFINE DELPHI11UP}
430  {$DEFINE DELPHI12UP}
431  {$DEFINE DELPHI14UP}
432  {$DEFINE DELPHI15UP}
433
434  {$DEFINE DELPHIXE}
435  {$DEFINE DELPHIXEUP}
436  {$DEFINE DELPHI2011}
437  {$DEFINE DELPHI2005UP}
438  {$DEFINE DELPHI2006UP}
439  {$DEFINE DELPHI2007UP}
440  {$DEFINE DELPHI2009UP}
441  {$DEFINE DELPHI2010UP}
442  {$DEFINE DELPHI2011UP}
443  {$DEFINE BDS}
444  {$DEFINE BDS8}
445  {$DEFINE BDS3UP}
446  {$DEFINE BDS4UP}
447  {$DEFINE BDS5UP}
448  {$DEFINE BDS6UP}
449  {$DEFINE BDS7UP}
450  {$DEFINE BDS8UP}
451  {$DEFINE 32BIT}
452  {$DEFINE CPU32}
453{$ENDIF}
454
455{ defines for Delphi XE2 }
456{$IFDEF VER230}
457  {$DEFINE VER140UP}
458  {$DEFINE DELPHI}
459
460  {$DEFINE DELPHI16}
461  {$DEFINE DELPHI1UP}
462  {$DEFINE DELPHI2UP}
463  {$DEFINE DELPHI3UP}
464  {$DEFINE DELPHI4UP}
465  {$DEFINE DELPHI5UP}
466  {$DEFINE DELPHI6UP}
467  {$DEFINE DELPHI7UP}
468  {$DEFINE DELPHI9UP}
469  {$DEFINE DELPHI10UP}
470  {$DEFINE DELPHI11UP}
471  {$DEFINE DELPHI12UP}
472  {$DEFINE DELPHI14UP}
473  {$DEFINE DELPHI15UP}
474  {$DEFINE DELPHI16UP}
475
476  {$DEFINE DELPHIXE2}
477  {$DEFINE DELPHIXEUP}
478  {$DEFINE DELPHIXE2UP}
479  {$DEFINE DELPHI2012}
480  {$DEFINE DELPHI2005UP}
481  {$DEFINE DELPHI2006UP}
482  {$DEFINE DELPHI2007UP}
483  {$DEFINE DELPHI2009UP}
484  {$DEFINE DELPHI2010UP}
485  {$DEFINE DELPHI2011UP}
486  {$DEFINE DELPHI2012UP}
487  {$DEFINE BDS}
488  {$DEFINE BDS9}
489  {$DEFINE BDS3UP}
490  {$DEFINE BDS4UP}
491  {$DEFINE BDS5UP}
492  {$DEFINE BDS6UP}
493  {$DEFINE BDS7UP}
494  {$DEFINE BDS8UP}
495  {$DEFINE BDS9UP}
496  {$IFDEF CPUX64}
497    {$DEFINE 64BIT}
498    {$DEFINE CPU64}
499  {$ELSE}
500    {$DEFINE 32BIT}
501    {$DEFINE CPU32}
502  {$ENDIF}
503{$ENDIF}
504
505
506{ defines for Delphi XE3 }
507{$IFDEF VER240}
508  {$DEFINE VER140UP}
509  {$DEFINE DELPHI}
510
511  {$DEFINE DELPHI17}
512  {$DEFINE DELPHI1UP}
513  {$DEFINE DELPHI2UP}
514  {$DEFINE DELPHI3UP}
515  {$DEFINE DELPHI4UP}
516  {$DEFINE DELPHI5UP}
517  {$DEFINE DELPHI6UP}
518  {$DEFINE DELPHI7UP}
519  {$DEFINE DELPHI9UP}
520  {$DEFINE DELPHI10UP}
521  {$DEFINE DELPHI11UP}
522  {$DEFINE DELPHI12UP}
523  {$DEFINE DELPHI14UP}
524  {$DEFINE DELPHI15UP}
525  {$DEFINE DELPHI16UP}
526  {$DEFINE DELPHI17UP}
527
528  {$DEFINE DELPHIXE3}
529  {$DEFINE DELPHIXEUP}
530  {$DEFINE DELPHIXE2UP}
531  {$DEFINE DELPHIXE3UP}
532  {$DEFINE DELPHIXE4UP}
533
534  {$DEFINE BDS}
535  {$DEFINE BDS11}
536  {$DEFINE BDS3UP}
537  {$DEFINE BDS4UP}
538  {$DEFINE BDS5UP}
539  {$DEFINE BDS6UP}
540  {$DEFINE BDS7UP}
541  {$DEFINE BDS8UP}
542  {$DEFINE BDS9UP}
543  {$DEFINE BDS10UP}
544  {$DEFINE BDS11UP}
545  {$IFDEF CPUX64}
546    {$DEFINE 64BIT}
547    {$DEFINE CPU64}
548  {$ELSE}
549    {$DEFINE 32BIT}
550    {$DEFINE CPU32}
551  {$ENDIF}
552{$ENDIF}
553
554{ defines for Delphi XE5 }
555{$IFDEF VER260}
556  {$DEFINE VER140UP}
557  {$DEFINE DELPHI}
558
559  {$DEFINE DELPHI19}
560  {$DEFINE DELPHI1UP}
561  {$DEFINE DELPHI2UP}
562  {$DEFINE DELPHI3UP}
563  {$DEFINE DELPHI4UP}
564  {$DEFINE DELPHI5UP}
565  {$DEFINE DELPHI6UP}
566  {$DEFINE DELPHI7UP}
567  {$DEFINE DELPHI9UP}
568  {$DEFINE DELPHI10UP}
569  {$DEFINE DELPHI11UP}
570  {$DEFINE DELPHI12UP}
571  {$DEFINE DELPHI14UP}
572  {$DEFINE DELPHI15UP}
573  {$DEFINE DELPHI16UP}
574  {$DEFINE DELPHI17UP}
575  {$DEFINE DELPHI18UP}
576  {$DEFINE DELPHI19UP}
577
578  {$DEFINE DELPHIXE5}
579  {$DEFINE DELPHI2005UP}
580  {$DEFINE DELPHI2006UP}
581  {$DEFINE DELPHI2007UP}
582  {$DEFINE DELPHI2009UP}
583  {$DEFINE DELPHI2010UP}
584  {$DEFINE DELPHIXEUP}
585  {$DEFINE DELPHIXE2UP}
586  {$DEFINE DELPHIXE3UP}
587  {$DEFINE DELPHIXE4UP}
588  {$DEFINE DELPHIXE5UP}
589
590
591  {$DEFINE BDS}
592  {$DEFINE BDS12}
593  {$DEFINE BDS3UP}
594  {$DEFINE BDS4UP}
595  {$DEFINE BDS5UP}
596  {$DEFINE BDS6UP}
597  {$DEFINE BDS7UP}
598  {$DEFINE BDS8UP}
599  {$DEFINE BDS9UP}
600  {$DEFINE BDS10UP}
601  {$DEFINE BDS11UP}
602  {$DEFINE BDS12UP}
603  {$IFDEF CPUX64}
604    {$DEFINE 64BIT}
605    {$DEFINE CPU64}
606  {$ELSE}
607    {$DEFINE 32BIT}
608    {$DEFINE CPU32}
609  {$ENDIF}
610{$ENDIF}
611
612{ defines for Delphi XE6 }
613{$IFDEF VER270}
614  {$DEFINE VER140UP}
615  {$DEFINE DELPHI}
616
617  {$DEFINE DELPHI20}
618  {$DEFINE DELPHI1UP}
619  {$DEFINE DELPHI2UP}
620  {$DEFINE DELPHI3UP}
621  {$DEFINE DELPHI4UP}
622  {$DEFINE DELPHI5UP}
623  {$DEFINE DELPHI6UP}
624  {$DEFINE DELPHI7UP}
625  {$DEFINE DELPHI9UP}
626  {$DEFINE DELPHI10UP}
627  {$DEFINE DELPHI11UP}
628  {$DEFINE DELPHI12UP}
629  {$DEFINE DELPHI14UP}
630  {$DEFINE DELPHI15UP}
631  {$DEFINE DELPHI16UP}
632  {$DEFINE DELPHI17UP}
633  {$DEFINE DELPHI18UP}
634  {$DEFINE DELPHI19UP}
635  {$DEFINE DELPHI20UP}
636
637  {$DEFINE DELPHIXE6}
638  {$DEFINE DELPHI2005UP}
639  {$DEFINE DELPHI2006UP}
640  {$DEFINE DELPHI2007UP}
641  {$DEFINE DELPHI2009UP}
642  {$DEFINE DELPHI2010UP}
643  {$DEFINE DELPHIXEUP}
644  {$DEFINE DELPHIXE2UP}
645  {$DEFINE DELPHIXE3UP}
646  {$DEFINE DELPHIXE4UP}
647  {$DEFINE DELPHIXE5UP}
648  {$DEFINE DELPHIXE6UP}
649
650  {$DEFINE BDS}
651  {$DEFINE BDS14}
652  {$DEFINE BDS3UP}
653  {$DEFINE BDS4UP}
654  {$DEFINE BDS5UP}
655  {$DEFINE BDS6UP}
656  {$DEFINE BDS7UP}
657  {$DEFINE BDS8UP}
658  {$DEFINE BDS9UP}
659  {$DEFINE BDS10UP}
660  {$DEFINE BDS11UP}
661  {$DEFINE BDS12UP}
662  {$DEFINE BDS14UP}
663  {$IFDEF CPUX64}
664    {$DEFINE 64BIT}
665    {$DEFINE CPU64}
666  {$ELSE}
667    {$DEFINE 32BIT}
668    {$DEFINE CPU32}
669  {$ENDIF}
670{$ENDIF}
671
672{ defines for Delphi XE7 }
673{$IFDEF VER280}
674  {$DEFINE VER140UP}
675  {$DEFINE DELPHI}
676
677  {$DEFINE DELPHI21}
678  {$DEFINE DELPHI1UP}
679  {$DEFINE DELPHI2UP}
680  {$DEFINE DELPHI3UP}
681  {$DEFINE DELPHI4UP}
682  {$DEFINE DELPHI5UP}
683  {$DEFINE DELPHI6UP}
684  {$DEFINE DELPHI7UP}
685  {$DEFINE DELPHI9UP}
686  {$DEFINE DELPHI10UP}
687  {$DEFINE DELPHI11UP}
688  {$DEFINE DELPHI12UP}
689  {$DEFINE DELPHI14UP}
690  {$DEFINE DELPHI15UP}
691  {$DEFINE DELPHI16UP}
692  {$DEFINE DELPHI17UP}
693  {$DEFINE DELPHI18UP}
694  {$DEFINE DELPHI19UP}
695  {$DEFINE DELPHI20UP}
696  {$DEFINE DELPHI21UP}
697
698  {$DEFINE DELPHIXE7}
699  {$DEFINE DELPHI2005UP}
700  {$DEFINE DELPHI2006UP}
701  {$DEFINE DELPHI2007UP}
702  {$DEFINE DELPHI2009UP}
703  {$DEFINE DELPHI2010UP}
704  {$DEFINE DELPHIXEUP}
705  {$DEFINE DELPHIXE2UP}
706  {$DEFINE DELPHIXE3UP}
707  {$DEFINE DELPHIXE4UP}
708  {$DEFINE DELPHIXE5UP}
709  {$DEFINE DELPHIXE6UP}
710  {$DEFINE DELPHIXE7UP}
711
712  {$DEFINE BDS}
713  {$DEFINE BDS15}
714  {$DEFINE BDS3UP}
715  {$DEFINE BDS4UP}
716  {$DEFINE BDS5UP}
717  {$DEFINE BDS6UP}
718  {$DEFINE BDS7UP}
719  {$DEFINE BDS8UP}
720  {$DEFINE BDS9UP}
721  {$DEFINE BDS10UP}
722  {$IFDEF CPUX64}
723    {$DEFINE 64BIT}
724    {$DEFINE CPU64}
725  {$ELSE}
726    {$DEFINE 32BIT}
727    {$DEFINE CPU32}
728  {$ENDIF}
729{$ENDIF}
730
731{ defines for Delphi XE8 }
732{$IFDEF VER290}
733  {$DEFINE VER140UP}
734  {$DEFINE DELPHI}
735
736  {$DEFINE DELPHI22}
737  {$DEFINE DELPHI1UP}
738  {$DEFINE DELPHI2UP}
739  {$DEFINE DELPHI3UP}
740  {$DEFINE DELPHI4UP}
741  {$DEFINE DELPHI5UP}
742  {$DEFINE DELPHI6UP}
743  {$DEFINE DELPHI7UP}
744  {$DEFINE DELPHI9UP}
745  {$DEFINE DELPHI10UP}
746  {$DEFINE DELPHI11UP}
747  {$DEFINE DELPHI12UP}
748  {$DEFINE DELPHI14UP}
749  {$DEFINE DELPHI15UP}
750  {$DEFINE DELPHI16UP}
751  {$DEFINE DELPHI17UP}
752  {$DEFINE DELPHI18UP}
753  {$DEFINE DELPHI19UP}
754  {$DEFINE DELPHI20UP}
755  {$DEFINE DELPHI21UP}
756  {$DEFINE DELPHI22UP}
757
758  {$DEFINE DELPHIXE8}
759  {$DEFINE DELPHI2005UP}
760  {$DEFINE DELPHI2006UP}
761  {$DEFINE DELPHI2007UP}
762  {$DEFINE DELPHI2009UP}
763  {$DEFINE DELPHI2010UP}
764  {$DEFINE DELPHIXEUP}
765  {$DEFINE DELPHIXE2UP}
766  {$DEFINE DELPHIXE3UP}
767  {$DEFINE DELPHIXE4UP}
768  {$DEFINE DELPHIXE5UP}
769  {$DEFINE DELPHIXE6UP}
770  {$DEFINE DELPHIXE7UP}
771  {$DEFINE DELPHIXE8UP}
772
773  {$DEFINE BDS}
774  {$DEFINE BDS16}
775  {$DEFINE BDS3UP}
776  {$DEFINE BDS4UP}
777  {$DEFINE BDS5UP}
778  {$DEFINE BDS6UP}
779  {$DEFINE BDS7UP}
780  {$DEFINE BDS8UP}
781  {$DEFINE BDS9UP}
782  {$DEFINE BDS10UP}
783  {$DEFINE BDS11UP}
784  {$DEFINE BDS12UP}
785  {$DEFINE BDS14UP}
786  {$DEFINE BDS15UP}
787  {$DEFINE BDS16UP}
788  {$IFDEF CPUX64}
789    {$DEFINE 64BIT}
790    {$DEFINE CPU64}
791  {$ELSE}
792    {$DEFINE 32BIT}
793    {$DEFINE CPU32}
794  {$ENDIF}
795{$ENDIF}
796
797{ defines for Delphi XE9 (Delphi 10 Seattle) }
798{$IFDEF VER300}
799  {$DEFINE VER140UP}
800  {$DEFINE DELPHI}
801
802  {$DEFINE DELPHI23}
803  {$DEFINE DELPHI1UP}
804  {$DEFINE DELPHI2UP}
805  {$DEFINE DELPHI3UP}
806  {$DEFINE DELPHI4UP}
807  {$DEFINE DELPHI5UP}
808  {$DEFINE DELPHI6UP}
809  {$DEFINE DELPHI7UP}
810  {$DEFINE DELPHI9UP}
811  {$DEFINE DELPHI10UP}
812  {$DEFINE DELPHI11UP}
813  {$DEFINE DELPHI12UP}
814  {$DEFINE DELPHI14UP}
815  {$DEFINE DELPHI15UP}
816  {$DEFINE DELPHI16UP}
817  {$DEFINE DELPHI17UP}
818  {$DEFINE DELPHI18UP}
819  {$DEFINE DELPHI19UP}
820  {$DEFINE DELPHI20UP}
821  {$DEFINE DELPHI21UP}
822  {$DEFINE DELPHI22UP}
823  {$DEFINE DELPHI23UP}
824
825  {$DEFINE DELPHIXE9}{$DEFINE DELPHI_SEATTLE}
826  {$DEFINE DELPHI2005UP}
827  {$DEFINE DELPHI2006UP}
828  {$DEFINE DELPHI2007UP}
829  {$DEFINE DELPHI2009UP}
830  {$DEFINE DELPHI2010UP}
831  {$DEFINE DELPHIXEUP}
832  {$DEFINE DELPHIXE2UP}
833  {$DEFINE DELPHIXE3UP}
834  {$DEFINE DELPHIXE4UP}
835  {$DEFINE DELPHIXE5UP}
836  {$DEFINE DELPHIXE6UP}
837  {$DEFINE DELPHIXE7UP}
838  {$DEFINE DELPHIXE8UP}
839  {$DEFINE DELPHIXE9UP}
840  {$DEFINE DELPHI_SEATTLE_UP}
841
842  {$DEFINE BDS}
843  {$DEFINE BDS17}
844  {$DEFINE BDS3UP}
845  {$DEFINE BDS4UP}
846  {$DEFINE BDS5UP}
847  {$DEFINE BDS6UP}
848  {$DEFINE BDS7UP}
849  {$DEFINE BDS8UP}
850  {$DEFINE BDS9UP}
851  {$DEFINE BDS10UP}
852  {$DEFINE BDS11UP}
853  {$DEFINE BDS12UP}
854  {$DEFINE BDS14UP}
855  {$DEFINE BDS15UP}
856  {$DEFINE BDS16UP}
857  {$DEFINE BDS17UP}
858  {$IFDEF CPUX64}
859    {$DEFINE 64BIT}
860    {$DEFINE CPU64}
861  {$ELSE}
862    {$DEFINE 32BIT}
863    {$DEFINE CPU32}
864  {$ENDIF}
865{$ENDIF}
866
867{ defines for Delphi XE10 (10.1 Berlin) }
868{$IFDEF VER310}
869  {$DEFINE VER140UP}
870  {$DEFINE DELPHI}
871
872  {$DEFINE DELPHI23}
873  {$DEFINE DELPHI1UP}
874  {$DEFINE DELPHI2UP}
875  {$DEFINE DELPHI3UP}
876  {$DEFINE DELPHI4UP}
877  {$DEFINE DELPHI5UP}
878  {$DEFINE DELPHI6UP}
879  {$DEFINE DELPHI7UP}
880  {$DEFINE DELPHI9UP}
881  {$DEFINE DELPHI10UP}
882  {$DEFINE DELPHI11UP}
883  {$DEFINE DELPHI12UP}
884  {$DEFINE DELPHI14UP}
885  {$DEFINE DELPHI15UP}
886  {$DEFINE DELPHI16UP}
887  {$DEFINE DELPHI17UP}
888  {$DEFINE DELPHI18UP}
889  {$DEFINE DELPHI19UP}
890  {$DEFINE DELPHI20UP}
891  {$DEFINE DELPHI21UP}
892  {$DEFINE DELPHI22UP}
893  {$DEFINE DELPHI23UP}
894  {$DEFINE DELPHI24UP}
895
896  {$DEFINE DELPHIXE10}{$DEFINE DELPHI_BERLIN}
897  {$DEFINE DELPHI2005UP}
898  {$DEFINE DELPHI2006UP}
899  {$DEFINE DELPHI2007UP}
900  {$DEFINE DELPHI2009UP}
901  {$DEFINE DELPHI2010UP}
902  {$DEFINE DELPHIXEUP}
903  {$DEFINE DELPHIXE2UP}
904  {$DEFINE DELPHIXE3UP}
905  {$DEFINE DELPHIXE4UP}
906  {$DEFINE DELPHIXE5UP}
907  {$DEFINE DELPHIXE6UP}
908  {$DEFINE DELPHIXE7UP}
909  {$DEFINE DELPHIXE8UP}
910  {$DEFINE DELPHIXE9UP}{$DEFINE DELPHI_SEATTLE_UP}
911  {$DEFINE DELPHIXE10UP}{$DEFINE DELPHI_BERLIN_UP}
912
913  {$DEFINE BDS}
914  {$DEFINE BDS18}
915  {$DEFINE BDS3UP}
916  {$DEFINE BDS4UP}
917  {$DEFINE BDS5UP}
918  {$DEFINE BDS6UP}
919  {$DEFINE BDS7UP}
920  {$DEFINE BDS8UP}
921  {$DEFINE BDS9UP}
922  {$DEFINE BDS10UP}
923  {$DEFINE BDS11UP}
924  {$DEFINE BDS12UP}
925  {$DEFINE BDS14UP}
926  {$DEFINE BDS15UP}
927  {$DEFINE BDS16UP}
928  {$DEFINE BDS17UP}
929  {$DEFINE BDS18UP}
930  {$IFDEF CPUX64}
931    {$DEFINE 64BIT}
932    {$DEFINE CPU64}
933  {$ELSE}
934    {$DEFINE 32BIT}
935    {$DEFINE CPU32}
936  {$ENDIF}
937{$ENDIF}
938
939{ defines for Delphi XE11 (Delphi 10.2 Tokyo) }
940{$IFDEF VER320}
941  {$DEFINE VER140UP}
942  {$DEFINE DELPHI}
943
944  {$DEFINE DELPHI25}
945  {$DEFINE DELPHI1UP}
946  {$DEFINE DELPHI2UP}
947  {$DEFINE DELPHI3UP}
948  {$DEFINE DELPHI4UP}
949  {$DEFINE DELPHI5UP}
950  {$DEFINE DELPHI6UP}
951  {$DEFINE DELPHI7UP}
952  {$DEFINE DELPHI9UP}
953  {$DEFINE DELPHI10UP}
954  {$DEFINE DELPHI11UP}
955  {$DEFINE DELPHI12UP}
956  {$DEFINE DELPHI14UP}
957  {$DEFINE DELPHI15UP}
958  {$DEFINE DELPHI16UP}
959  {$DEFINE DELPHI17UP}
960  {$DEFINE DELPHI18UP}
961  {$DEFINE DELPHI19UP}
962  {$DEFINE DELPHI20UP}
963  {$DEFINE DELPHI21UP}
964  {$DEFINE DELPHI22UP}
965  {$DEFINE DELPHI23UP}
966  {$DEFINE DELPHI24UP}
967  {$DEFINE DELPHI25UP}
968
969  {$DEFINE DELPHIXE11}{$DEFINE DELPHI_TOKYO}
970  {$DEFINE DELPHI2005UP}
971  {$DEFINE DELPHI2006UP}
972  {$DEFINE DELPHI2007UP}
973  {$DEFINE DELPHI2009UP}
974  {$DEFINE DELPHI2010UP}
975  {$DEFINE DELPHIXEUP}
976  {$DEFINE DELPHIXE2UP}
977  {$DEFINE DELPHIXE3UP}
978  {$DEFINE DELPHIXE4UP}
979  {$DEFINE DELPHIXE5UP}
980  {$DEFINE DELPHIXE6UP}
981  {$DEFINE DELPHIXE7UP}
982  {$DEFINE DELPHIXE8UP}
983  {$DEFINE DELPHIXE9UP}{$DEFINE DELPHI_SEATTLE_UP}
984  {$DEFINE DELPHIXE10UP}{$DEFINE DELPHI_BERLIN_UP}
985  {$DEFINE DELPHIXE11UP}{$DEFINE DELPHI_TOKYO_UP}
986
987  {$DEFINE BDS}
988  {$DEFINE BDS19}
989  {$DEFINE BDS3UP}
990  {$DEFINE BDS4UP}
991  {$DEFINE BDS5UP}
992  {$DEFINE BDS6UP}
993  {$DEFINE BDS7UP}
994  {$DEFINE BDS8UP}
995  {$DEFINE BDS9UP}
996  {$DEFINE BDS10UP}
997  {$DEFINE BDS11UP}
998  {$DEFINE BDS12UP}
999  {$DEFINE BDS14UP}
1000  {$DEFINE BDS15UP}
1001  {$DEFINE BDS16UP}
1002  {$DEFINE BDS17UP}
1003  {$DEFINE BDS18UP}
1004  {$DEFINE BDS19UP}
1005  {$IFDEF CPUX64}
1006    {$DEFINE 64BIT}
1007    {$DEFINE CPU64}
1008  {$ELSE}
1009    {$DEFINE 32BIT}
1010    {$DEFINE CPU32}
1011  {$ENDIF}
1012{$ENDIF}
1013
1014{ defines for Delphi XE12 (Delphi 10.3 Rio) }
1015{$IFDEF VER330}
1016  {$DEFINE VER140UP}
1017  {$DEFINE DELPHI}
1018
1019  {$DEFINE DELPHI26}
1020  {$DEFINE DELPHI1UP}
1021  {$DEFINE DELPHI2UP}
1022  {$DEFINE DELPHI3UP}
1023  {$DEFINE DELPHI4UP}
1024  {$DEFINE DELPHI5UP}
1025  {$DEFINE DELPHI6UP}
1026  {$DEFINE DELPHI7UP}
1027  {$DEFINE DELPHI9UP}
1028  {$DEFINE DELPHI10UP}
1029  {$DEFINE DELPHI11UP}
1030  {$DEFINE DELPHI12UP}
1031  {$DEFINE DELPHI14UP}
1032  {$DEFINE DELPHI15UP}
1033  {$DEFINE DELPHI16UP}
1034  {$DEFINE DELPHI17UP}
1035  {$DEFINE DELPHI18UP}
1036  {$DEFINE DELPHI19UP}
1037  {$DEFINE DELPHI20UP}
1038  {$DEFINE DELPHI21UP}
1039  {$DEFINE DELPHI22UP}
1040  {$DEFINE DELPHI23UP}
1041  {$DEFINE DELPHI24UP}
1042  {$DEFINE DELPHI25UP}
1043  {$DEFINE DELPHI26UP}
1044
1045  {$DEFINE DELPHIXE12}{$DEFINE DELPHI_RIO}
1046  {$DEFINE DELPHI2005UP}
1047  {$DEFINE DELPHI2006UP}
1048  {$DEFINE DELPHI2007UP}
1049  {$DEFINE DELPHI2009UP}
1050  {$DEFINE DELPHI2010UP}
1051  {$DEFINE DELPHIXEUP}
1052  {$DEFINE DELPHIXE2UP}
1053  {$DEFINE DELPHIXE3UP}
1054  {$DEFINE DELPHIXE4UP}
1055  {$DEFINE DELPHIXE5UP}
1056  {$DEFINE DELPHIXE6UP}
1057  {$DEFINE DELPHIXE7UP}
1058  {$DEFINE DELPHIXE8UP}
1059  {$DEFINE DELPHIXE9UP}{$DEFINE DELPHI_SEATTLE_UP}
1060  {$DEFINE DELPHIXE10UP}{$DEFINE DELPHI_BERLIN_UP}
1061  {$DEFINE DELPHIXE11UP}{$DEFINE DELPHI_TOKYO_UP}
1062  {$DEFINE DELPHIXE12UP}{$DEFINE DELPHI_RIO_UP}
1063
1064  {$DEFINE BDS}
1065  {$DEFINE BDS20}
1066  {$DEFINE BDS3UP}
1067  {$DEFINE BDS4UP}
1068  {$DEFINE BDS5UP}
1069  {$DEFINE BDS6UP}
1070  {$DEFINE BDS7UP}
1071  {$DEFINE BDS8UP}
1072  {$DEFINE BDS9UP}
1073  {$DEFINE BDS10UP}
1074  {$DEFINE BDS11UP}
1075  {$DEFINE BDS12UP}
1076  {$DEFINE BDS14UP}
1077  {$DEFINE BDS15UP}
1078  {$DEFINE BDS16UP}
1079  {$DEFINE BDS17UP}
1080  {$DEFINE BDS18UP}
1081  {$DEFINE BDS19UP}
1082  {$DEFINE BDS20UP}
1083  {$IFDEF CPUX64}
1084    {$DEFINE 64BIT}
1085    {$DEFINE CPU64}
1086  {$ELSE}
1087    {$DEFINE 32BIT}
1088    {$DEFINE CPU32}
1089  {$ENDIF}
1090{$ENDIF}
1091
1092
1093{ defines for "Delphi for .NET" }
1094{$IFDEF CLR}
1095  {$DEFINE DOTNET}
1096{$ENDIF}
1097
1098{$IFDEF DELPHI}
1099  {$IFDEF DELPHI2UP}
1100    {$DEFINE DELPHI_32BIT}
1101  {$ENDIF}
1102{$ENDIF}
1103
1104{$IFDEF CBUILDER}
1105  {$DEFINE CBUILDER_32BIT}
1106{$ENDIF}
1107
1108{$IFNDEF FPC}
1109  {$IFNDEF DelphiXE11UP}
1110    { Kylix 1.0 thru 3.0 }
1111    {$IFDEF LINUX}
1112
1113      {$DEFINE VER140UP}
1114
1115      { Any Kylix }
1116      {$DEFINE 32BIT}
1117      {$DEFINE LINUX32}
1118      {$DEFINE KYLIX_32BIT}
1119      {$DEFINE KYLIX}
1120      {$DEFINE KYLIX1UP}
1121
1122      {$IFDEF CONDITIONALEXPRESSIONS}
1123        {$IF Declared(CompilerVersion)}
1124
1125           { Kylix 2.0 }
1126           {$IF Declared(RTLVersion) and (RTLVersion = 14.1)}
1127             {$DEFINE KYLIX2}
1128             {$DEFINE KYLIX1UP}
1129             {$DEFINE KYLIX2UP}
1130           {$IFEND}
1131
1132           { Kylix 3.0 - Delphi portion }
1133           {$IF Declared(RTLVersion) and (RTLVersion = 14.5)}
1134             {$DEFINE KYLIX3}
1135             {$DEFINE KYLIX1UP}
1136             {$DEFINE KYLIX2UP}
1137             {$DEFINE KYLIX3UP}
1138           {$IFEND}
1139
1140        { Kylix 1.0 }
1141        {$ELSE}
1142          {$DEFINE KYLIX1}
1143        {$IFEND}
1144      {$ENDIF CONDITIONALEXPRESSIONS}
1145    {$ENDIF LINUX}
1146  {$ENDIF DelphiXE11UP}
1147{$ENDIF}
1148
1149{ CPU }
1150
1151{$IFDEF FPC}
1152  {$IFDEF MSWINDOWS}
1153    {$IFDEF CPU64}
1154      {$DEFINE WIN64}
1155    {$ENDIF}
1156  {$ENDIF}
1157  {$IFDEF LINUX}
1158    {$DEFINE FPC_LINUX}
1159    {$IFDEF CPU32}
1160      {$DEFINE LINUX32}
1161    {$ENDIF}
1162    {$IFDEF CPU64}
1163      {$DEFINE LINUX64}
1164    {$ENDIF}
1165  {$ENDIF}
1166  {$IFDEF DARWIN}
1167    {$DEFINE FPC_OSX}
1168    {$IFDEF CPU32}
1169      {$DEFINE DARWIN32}
1170    {$ENDIF}
1171    {$IFDEF CPU64}
1172      {$DEFINE DARWIN64}
1173    {$ENDIF}
1174  {$ENDIF}
1175  {$IFDEF FPC_WIDESTRING_EQUAL_UNICODESTRING}
1176    {$DEFINE WIDESTRING_EQUAL_UNICODESTRING}
1177  {$ENDIF}
1178  {$DEFINE UNICODE_SUPPORT}
1179{$ELSE}
1180  {$DEFINE ENDIAN_LITTLE} // To have endianness symbol defined in Delphi too
1181{$ENDIF}
1182
1183{$IFDEF DELPHI}
1184  {$DEFINE DELPHI_or_MSWINDOWS}
1185  {$IFNDEF UNICODE}
1186    {$DEFINE WIDESTRING_EQUAL_UNICODESTRING}
1187  {$ELSE}
1188    {$DEFINE UNICODE_SUPPORT}
1189  {$ENDIF}
1190  {$IFDEF NEXTGEN}
1191    {$DEFINE WIDESTRING_EQUAL_UNICODESTRING}
1192  {$ENDIF}
1193{$ENDIF}
1194
1195{$IFDEF MSWINDOWS}
1196  {$DEFINE DELPHI_or_MSWINDOWS}
1197{$ENDIF}
1198
1199{$IFDEF DELPHI}
1200  {$IFDEF MACOS}
1201    {$DEFINE DELPHI_OSX}
1202    {$IFDEF CPUX64}
1203      {$DEFINE DELPHI_OSX64}
1204    {$ELSE}
1205      {$DEFINE DELPHI_OSX32}
1206    {$ENDIF}
1207  {$ENDIF}
1208
1209  {$IFDEF ANDROID}
1210    {$DEFINE DELPHI_ANDROID}
1211    {$IFDEF CPUX64}
1212      {$DEFINE DELPHI_ANDROID64}
1213    {$ELSE}
1214      {$DEFINE DELPHI_ANDROID32}
1215    {$ENDIF}
1216  {$ENDIF}
1217
1218  {$IFDEF LINUX}
1219    {$DEFINE DELPHI_LINUX}
1220    {$IFDEF LINUX32}
1221      {$DEFINE DELPHI_LINUX32}
1222    {$ENDIF}
1223    {$IFDEF LINUX64}
1224      {$DEFINE DELPHI_LINUX64}
1225    {$ENDIF}
1226  {$ENDIF}
1227{$ENDIF}
1228
1229{$IFDEF NEXTGEN}
1230  {$DEFINE NEXTGEN_or_DELPHILINUX}
1231{$ENDIF}
1232{$IFDEF DELPHI_LINUX}
1233  {$DEFINE NEXTGEN_or_DELPHILINUX}
1234{$ENDIF}
1235
1236{$IFDEF NEXTGEN_or_DELPHILINUX}
1237  {$DEFINE FPC_SAFECALL_BUG}          // nextgen&linux compiler causes bug with safecall declarations
1238{$ENDIF}
1239