source: trunk/Packages/Graphics32/GR32_Compiler.inc

Last change on this file was 2, checked in by chronos, 5 years ago
File size: 17.7 KB
Line 
1(* ***** BEGIN LICENSE BLOCK *****
2 * Version: MPL 1.1 or LGPL 2.1 with linking exception
3 *
4 * The contents of this file are subject to the Mozilla Public License Version
5 * 1.1 (the "License"); you may not use this file except in compliance with
6 * the License. You may obtain a copy of the License at
7 * http://www.mozilla.org/MPL/
8 *
9 * Software distributed under the License is distributed on an "AS IS" basis,
10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11 * for the specific language governing rights and limitations under the
12 * License.
13 *
14 * Alternatively, the contents of this file may be used under the terms of the
15 * Free Pascal modified version of the GNU Lesser General Public License
16 * Version 2.1 (the "FPC modified LGPL License"), in which case the provisions
17 * of this license are applicable instead of those above.
18 * Please see the file LICENSE.txt for additional information concerning this
19 * license.
20 *
21 * The Original Code is Graphics32
22 *
23 * The Initial Developer of the Original Code is
24 * Alex A. Denisov
25 *
26 * Portions created by the Initial Developer are Copyright (C) 2000-2009
27 * the Initial Developer. All Rights Reserved.
28 *
29 * Contributor(s):
30 * Andre Beckedorf <Andre@metaException.de>
31 * Michael Hansen <dyster_tid@hotmail.com>
32 * Christian Budde <Christian@aixcoustic.com>
33 *
34 * ***** END LICENSE BLOCK ***** *)
35
36
37(*
38 Available Compilers:
39 --------------------
40
41 COMPILERFPC - FPC (since version 2.6.0)
42 COMPILER6 - Delphi 6
43 COMPILER7 - Delphi 7
44 COMPILER2005 - Delphi 2005
45 COMPILER2006 - Delphi 2006 / BDS 2006
46 COMPILER2007 - Delphi / RAD Studio 2007
47 COMPILER2009 - Delphi 2009
48 COMPILER2010 - Delphi 2010
49 COMPILERXE1 - Delphi XE
50 COMPILERXE2 - Delphi XE2
51 COMPILERXE3 - Delphi XE3
52 COMPILERXE4 - Delphi XE4
53 COMPILERXE5 - Delphi XE5
54 COMPILERXE6 - Delphi XE6
55 COMPILERXE7 - Delphi XE7
56 COMPILERXE8 - Delphi XE8
57 COMPILERRX - Delphi RX
58 COMPILERRX1 - Delphi RX1
59 COMPILERRX2 - Delphi RX2 (10.2 Tokyo)
60 COMPILERRX3 - Delphi RX3 (10.3 Rio)
61
62
63 Available Targets:
64 ------------------
65
66 TARGET_x86 - x86 (32-Bit)
67 TARGET_x64 - x86 (64-Bit)
68 TARGET_POWERPC - Power PC
69
70*)
71
72
73
74{$IFDEF FPC}
75 {$DEFINE COMPILERFPC}
76{$ENDIF}
77
78{$IFDEF VER_LATEST} // adjust for newer version (always use latest version)
79 {$DEFINE COMPILERRX3}
80 {$IFNDEF BCB}
81 {$DEFINE DELPHIRX3}
82 {$ELSE}
83 {$DEFINE BCBRX3}
84 {$ENDIF}
85 {$UNDEF VER_LATEST}
86{$ENDIF}
87
88{$IFDEF VER330}
89 {$DEFINE COMPILERRX3}
90 {$IFNDEF BCB}
91 {$DEFINE DELPHIRX3}
92 {$ELSE}
93 {$DEFINE BCBRX3}
94 {$ENDIF}
95{$ENDIF}
96
97{$IFDEF VER320}
98 {$DEFINE COMPILERRX2}
99 {$IFNDEF BCB}
100 {$DEFINE DELPHIRX2}
101 {$ELSE}
102 {$DEFINE BCBRX2}
103 {$ENDIF}
104{$ENDIF}
105
106{$IFDEF VER310}
107 {$DEFINE COMPILERRX1}
108 {$IFNDEF BCB}
109 {$DEFINE DELPHIRX1}
110 {$ELSE}
111 {$DEFINE BCBRX1}
112 {$ENDIF}
113{$ENDIF}
114
115{$IFDEF VER300}
116 {$DEFINE COMPILERRX}
117 {$IFNDEF BCB}
118 {$DEFINE DELPHIRX}
119 {$ELSE}
120 {$DEFINE BCBRX}
121 {$ENDIF}
122{$ENDIF}
123
124{$IFDEF VER290}
125 {$DEFINE COMPILERXE8}
126 {$IFNDEF BCB}
127 {$DEFINE DELPHIXE8}
128 {$ELSE}
129 {$DEFINE BCBXE8}
130 {$ENDIF}
131{$ENDIF}
132
133{$IFDEF VER280}
134 {$DEFINE COMPILERXE7}
135 {$IFNDEF BCB}
136 {$DEFINE DELPHIXE7}
137 {$ELSE}
138 {$DEFINE BCBXE7}
139 {$ENDIF}
140{$ENDIF}
141
142{$IFDEF VER270}
143 {$DEFINE COMPILERXE6}
144 {$IFNDEF BCB}
145 {$DEFINE DELPHIXE6}
146 {$ELSE}
147 {$DEFINE BCBXE6}
148 {$ENDIF}
149{$ENDIF}
150
151{$IFDEF VER260}
152 {$DEFINE COMPILERXE5}
153 {$IFNDEF BCB}
154 {$DEFINE DELPHIXE5}
155 {$ELSE}
156 {$DEFINE BCBXE5}
157 {$ENDIF}
158{$ENDIF}
159
160{$IFDEF VER250}
161 {$DEFINE COMPILERXE4}
162 {$IFNDEF BCB}
163 {$DEFINE DELPHIXE4}
164 {$ELSE}
165 {$DEFINE BCBXE4}
166 {$ENDIF}
167{$ENDIF}
168
169{$IFDEF VER240}
170 {$DEFINE COMPILERXE3}
171 {$IFNDEF BCB}
172 {$DEFINE DELPHIXE3}
173 {$ELSE}
174 {$DEFINE BCBXE3}
175 {$ENDIF}
176{$ENDIF}
177
178{$IFDEF VER230}
179 {$DEFINE COMPILERXE2}
180 {$IFNDEF BCB}
181 {$DEFINE DELPHIXE2}
182 {$ELSE}
183 {$DEFINE BCBXE2}
184 {$ENDIF}
185{$ENDIF}
186
187{$IFDEF VER220}
188 {$DEFINE COMPILERXE1}
189 {$IFNDEF BCB}
190 {$DEFINE DELPHIXE1}
191 {$ELSE}
192 {$DEFINE BCBXE1}
193 {$ENDIF}
194{$ENDIF}
195
196{$IFDEF VER210}
197 {$DEFINE COMPILER2010}
198 {$IFNDEF BCB}
199 {$DEFINE DELPHI2010}
200 {$ELSE}
201 {$DEFINE BCB14}
202 {$ENDIF}
203{$ENDIF}
204
205{$IFDEF VER200}
206 {$DEFINE COMPILER2009}
207 {$IFNDEF BCB}
208 {$DEFINE DELPHI2009}
209 {$ELSE}
210 {$DEFINE BCB12}
211 {$ENDIF}
212{$ENDIF}
213
214{$IFDEF VER185}
215 {$DEFINE COMPILER2007}
216 {$IFNDEF BCB}
217 {$DEFINE DELPHI2007}
218 {$ELSE}
219 {$DEFINE BCB11}
220 {$ENDIF}
221{$ENDIF}
222
223{$IFDEF VER180}
224 {$DEFINE COMPILER2006}
225 {$IFNDEF BCB}
226 {$DEFINE DELPHI2006}
227 {$ELSE}
228 {$DEFINE BCB10}
229 {$ENDIF}
230{$ENDIF}
231
232{$IFDEF VER170}
233 {$DEFINE COMPILER2005}
234 {$IFNDEF BCB}
235 {$DEFINE DELPHI2005}
236 {$ELSE}
237 {$DEFINE BCB8}
238 {$ENDIF}
239{$ENDIF}
240
241{$IFDEF VER150}
242 {$DEFINE COMPILER7}
243 {$IFNDEF BCB}
244 {$DEFINE DELPHI7}
245 {$ELSE}
246 {$DEFINE BCB7}
247 {$ENDIF}
248{$ENDIF}
249
250{$IFDEF VER140}
251 {$DEFINE COMPILER6}
252 {$IFNDEF BCB}
253 {$DEFINE DELPHI6}
254 {$ELSE}
255 {$DEFINE BCB6}
256 {$ENDIF}
257{$ENDIF}
258
259{$IFDEF COMPILERRX3}
260 {$DEFINE COMPILERRX3_UP}
261 {$DEFINE COMPILERRX2_UP}
262 {$DEFINE COMPILERRX1_UP}
263 {$DEFINE COMPILERRX_UP}
264 {$DEFINE COMPILERXE8_UP}
265 {$DEFINE COMPILERXE7_UP}
266 {$DEFINE COMPILERXE6_UP}
267 {$DEFINE COMPILERXE5_UP}
268 {$DEFINE COMPILERXE4_UP}
269 {$DEFINE COMPILERXE3_UP}
270 {$DEFINE COMPILERXE2_UP}
271 {$DEFINE COMPILERXE1_UP}
272 {$DEFINE COMPILER2010_UP}
273 {$DEFINE COMPILER2009_UP}
274 {$DEFINE COMPILER2007_UP}
275 {$DEFINE COMPILER2006_UP}
276 {$DEFINE COMPILER2005_UP}
277 {$DEFINE COMPILER7_UP}
278 {$DEFINE COMPILER6_UP}
279{$ENDIF}
280
281{$IFDEF COMPILERRX2}
282 {$DEFINE COMPILERRX2_UP}
283 {$DEFINE COMPILERRX1_UP}
284 {$DEFINE COMPILERRX_UP}
285 {$DEFINE COMPILERXE8_UP}
286 {$DEFINE COMPILERXE7_UP}
287 {$DEFINE COMPILERXE6_UP}
288 {$DEFINE COMPILERXE5_UP}
289 {$DEFINE COMPILERXE4_UP}
290 {$DEFINE COMPILERXE3_UP}
291 {$DEFINE COMPILERXE2_UP}
292 {$DEFINE COMPILERXE1_UP}
293 {$DEFINE COMPILER2010_UP}
294 {$DEFINE COMPILER2009_UP}
295 {$DEFINE COMPILER2007_UP}
296 {$DEFINE COMPILER2006_UP}
297 {$DEFINE COMPILER2005_UP}
298 {$DEFINE COMPILER7_UP}
299 {$DEFINE COMPILER6_UP}
300{$ENDIF}
301
302{$IFDEF COMPILERRX1}
303 {$DEFINE COMPILERRX1_UP}
304 {$DEFINE COMPILERRX_UP}
305 {$DEFINE COMPILERXE8_UP}
306 {$DEFINE COMPILERXE7_UP}
307 {$DEFINE COMPILERXE6_UP}
308 {$DEFINE COMPILERXE5_UP}
309 {$DEFINE COMPILERXE4_UP}
310 {$DEFINE COMPILERXE3_UP}
311 {$DEFINE COMPILERXE2_UP}
312 {$DEFINE COMPILERXE1_UP}
313 {$DEFINE COMPILER2010_UP}
314 {$DEFINE COMPILER2009_UP}
315 {$DEFINE COMPILER2007_UP}
316 {$DEFINE COMPILER2006_UP}
317 {$DEFINE COMPILER2005_UP}
318 {$DEFINE COMPILER7_UP}
319 {$DEFINE COMPILER6_UP}
320{$ENDIF}
321
322{$IFDEF COMPILERRX}
323 {$DEFINE COMPILERRX_UP}
324 {$DEFINE COMPILERXE8_UP}
325 {$DEFINE COMPILERXE7_UP}
326 {$DEFINE COMPILERXE6_UP}
327 {$DEFINE COMPILERXE5_UP}
328 {$DEFINE COMPILERXE4_UP}
329 {$DEFINE COMPILERXE3_UP}
330 {$DEFINE COMPILERXE2_UP}
331 {$DEFINE COMPILERXE1_UP}
332 {$DEFINE COMPILER2010_UP}
333 {$DEFINE COMPILER2009_UP}
334 {$DEFINE COMPILER2007_UP}
335 {$DEFINE COMPILER2006_UP}
336 {$DEFINE COMPILER2005_UP}
337 {$DEFINE COMPILER7_UP}
338 {$DEFINE COMPILER6_UP}
339{$ENDIF}
340
341{$IFDEF COMPILERXE8}
342 {$DEFINE COMPILERXE8_UP}
343 {$DEFINE COMPILERXE7_UP}
344 {$DEFINE COMPILERXE6_UP}
345 {$DEFINE COMPILERXE5_UP}
346 {$DEFINE COMPILERXE4_UP}
347 {$DEFINE COMPILERXE3_UP}
348 {$DEFINE COMPILERXE2_UP}
349 {$DEFINE COMPILERXE1_UP}
350 {$DEFINE COMPILER2010_UP}
351 {$DEFINE COMPILER2009_UP}
352 {$DEFINE COMPILER2007_UP}
353 {$DEFINE COMPILER2006_UP}
354 {$DEFINE COMPILER2005_UP}
355 {$DEFINE COMPILER7_UP}
356 {$DEFINE COMPILER6_UP}
357{$ENDIF}
358
359{$IFDEF COMPILERXE7}
360 {$DEFINE COMPILERXE7_UP}
361 {$DEFINE COMPILERXE6_UP}
362 {$DEFINE COMPILERXE5_UP}
363 {$DEFINE COMPILERXE4_UP}
364 {$DEFINE COMPILERXE3_UP}
365 {$DEFINE COMPILERXE2_UP}
366 {$DEFINE COMPILERXE1_UP}
367 {$DEFINE COMPILER2010_UP}
368 {$DEFINE COMPILER2009_UP}
369 {$DEFINE COMPILER2007_UP}
370 {$DEFINE COMPILER2006_UP}
371 {$DEFINE COMPILER2005_UP}
372 {$DEFINE COMPILER7_UP}
373 {$DEFINE COMPILER6_UP}
374{$ENDIF}
375
376{$IFDEF COMPILERXE6}
377 {$DEFINE COMPILERXE6_UP}
378 {$DEFINE COMPILERXE5_UP}
379 {$DEFINE COMPILERXE4_UP}
380 {$DEFINE COMPILERXE3_UP}
381 {$DEFINE COMPILERXE2_UP}
382 {$DEFINE COMPILERXE1_UP}
383 {$DEFINE COMPILER2010_UP}
384 {$DEFINE COMPILER2009_UP}
385 {$DEFINE COMPILER2007_UP}
386 {$DEFINE COMPILER2006_UP}
387 {$DEFINE COMPILER2005_UP}
388 {$DEFINE COMPILER7_UP}
389 {$DEFINE COMPILER6_UP}
390{$ENDIF}
391
392{$IFDEF COMPILERXE5}
393 {$DEFINE COMPILERXE5_UP}
394 {$DEFINE COMPILERXE4_UP}
395 {$DEFINE COMPILERXE3_UP}
396 {$DEFINE COMPILERXE2_UP}
397 {$DEFINE COMPILERXE1_UP}
398 {$DEFINE COMPILER2010_UP}
399 {$DEFINE COMPILER2009_UP}
400 {$DEFINE COMPILER2007_UP}
401 {$DEFINE COMPILER2006_UP}
402 {$DEFINE COMPILER2005_UP}
403 {$DEFINE COMPILER7_UP}
404 {$DEFINE COMPILER6_UP}
405{$ENDIF}
406
407{$IFDEF COMPILERXE4}
408 {$DEFINE COMPILERXE4_UP}
409 {$DEFINE COMPILERXE3_UP}
410 {$DEFINE COMPILERXE2_UP}
411 {$DEFINE COMPILERXE1_UP}
412 {$DEFINE COMPILER2010_UP}
413 {$DEFINE COMPILER2009_UP}
414 {$DEFINE COMPILER2007_UP}
415 {$DEFINE COMPILER2006_UP}
416 {$DEFINE COMPILER2005_UP}
417 {$DEFINE COMPILER7_UP}
418 {$DEFINE COMPILER6_UP}
419{$ENDIF}
420
421{$IFDEF COMPILERXE3}
422 {$DEFINE COMPILERXE3_UP}
423 {$DEFINE COMPILERXE2_UP}
424 {$DEFINE COMPILERXE1_UP}
425 {$DEFINE COMPILER2010_UP}
426 {$DEFINE COMPILER2009_UP}
427 {$DEFINE COMPILER2007_UP}
428 {$DEFINE COMPILER2006_UP}
429 {$DEFINE COMPILER2005_UP}
430 {$DEFINE COMPILER7_UP}
431 {$DEFINE COMPILER6_UP}
432{$ENDIF}
433
434{$IFDEF COMPILERXE2}
435 {$DEFINE COMPILERXE2_UP}
436 {$DEFINE COMPILERXE1_UP}
437 {$DEFINE COMPILER2010_UP}
438 {$DEFINE COMPILER2009_UP}
439 {$DEFINE COMPILER2007_UP}
440 {$DEFINE COMPILER2006_UP}
441 {$DEFINE COMPILER2005_UP}
442 {$DEFINE COMPILER7_UP}
443 {$DEFINE COMPILER6_UP}
444{$ENDIF}
445
446{$IFDEF COMPILERXE1}
447 {$DEFINE COMPILERXE1_UP}
448 {$DEFINE COMPILER2010_UP}
449 {$DEFINE COMPILER2009_UP}
450 {$DEFINE COMPILER2007_UP}
451 {$DEFINE COMPILER2006_UP}
452 {$DEFINE COMPILER2005_UP}
453 {$DEFINE COMPILER7_UP}
454 {$DEFINE COMPILER6_UP}
455{$ENDIF}
456
457{$IFDEF COMPILER2010}
458 {$DEFINE COMPILER2010_UP}
459 {$DEFINE COMPILER2009_UP}
460 {$DEFINE COMPILER2007_UP}
461 {$DEFINE COMPILER2006_UP}
462 {$DEFINE COMPILER2005_UP}
463 {$DEFINE COMPILER7_UP}
464 {$DEFINE COMPILER6_UP}
465{$ENDIF}
466
467{$IFDEF COMPILER2009}
468 {$DEFINE COMPILER2009_UP}
469 {$DEFINE COMPILER2007_UP}
470 {$DEFINE COMPILER2006_UP}
471 {$DEFINE COMPILER2005_UP}
472 {$DEFINE COMPILER7_UP}
473 {$DEFINE COMPILER6_UP}
474{$ENDIF}
475
476{$IFDEF COMPILER2007}
477 {$DEFINE COMPILER2007_UP}
478 {$DEFINE COMPILER2006_UP}
479 {$DEFINE COMPILER2005_UP}
480 {$DEFINE COMPILER7_UP}
481 {$DEFINE COMPILER6_UP}
482{$ENDIF}
483
484{$IFDEF COMPILER2006}
485 {$DEFINE COMPILER2006_UP}
486 {$DEFINE COMPILER2005_UP}
487 {$DEFINE COMPILER7_UP}
488 {$DEFINE COMPILER6_UP}
489{$ENDIF}
490
491{$IFDEF COMPILER2005}
492 {$DEFINE COMPILER2005_UP}
493 {$DEFINE COMPILER7_UP}
494 {$DEFINE COMPILER6_UP}
495{$ENDIF}
496
497{$IFDEF COMPILER7}
498 {$DEFINE COMPILER7_UP}
499 {$DEFINE COMPILER6_UP}
500{$ENDIF}
501
502{$IFDEF COMPILER6}
503 {$DEFINE COMPILER6_UP}
504{$ENDIF}
505
506{$IFDEF COMPILERFPC}
507 {$DEFINE PLATFORM_INDEPENDENT}
508 {$MODE Delphi}
509{$ENDIF}
510
511{$IFDEF COMPILERXE2_UP}
512 {$IFDEF TARGET_x64}
513 {$EXCESSPRECISION OFF}
514 {$ENDIF}
515{$ENDIF}
516
517{$IFNDEF COMPILER6_UP}
518{$IFNDEF COMPILERFPC}
519+--------------------------------------------------------------------+
520| Graphics32 may only be installed with Delphi/BCB 6 (or higher) |
521| or Free Pascal / Lazarus |
522+--------------------------------------------------------------------+
523{$ENDIF}
524{$ENDIF}
525
526
527(*
528 Symbol INLININGSUPPORTED:
529 -------------------------
530
531 In later Delphi versions procedures and functions that do not contain
532 assembler code can be inlined. This can be extremely useful for calls
533 to a small portion of code in a loop. However, depending on the instruction
534 cache size, this may or may not result in a performance boost compared to a
535 call of assembler optimized code.
536*)
537
538{$IFDEF COMPILER2007_UP}
539 // disabled prior Delphi versions due to a compiler bug
540 // see (http://qc.embarcadero.com/wc/qcmain.aspx?d=41166)
541 {$DEFINE INLININGSUPPORTED}
542{$ENDIF}
543
544{$IFDEF COMPILERFPC}
545 {$DEFINE INLININGSUPPORTED}
546{$ENDIF}
547
548
549(*
550 Symbol TARGET_* :
551 Defines the processor platform (x86, x64 or PowerPC)
552*)
553
554{$IFDEF COMPILERFPC}
555 // Set up internal CPU target directives according to FPC directives
556 {$IFDEF CPU386}
557 {$IFDEF CPUI386}
558 // target is an Intel 80386 or later.
559 {$DEFINE TARGET_x86}
560 {$ASMMODE INTEL}
561 {$ENDIF}
562
563 {$IFDEF CPUX86_64}
564 // target is a 64-bit processor (AMD or INTEL).
565 {$DEFINE TARGET_x64}
566 {$ASMMODE INTEL}
567 {$ENDIF}
568
569 {$IFDEF CPUPOWERPC}
570 // target is a 32-bit PowerPC or compatible.
571 // currently only indirect support, added here as example on how to add
572 // future specific targets
573 {$DEFINE TARGET_POWERPC}
574 {$ENDIF}
575 {$ENDIF}
576
577 {$IFDEF CPUX86_64}
578 // target is a 64-bit processor (AMD or INTEL).
579 {$DEFINE TARGET_x64}
580 {$ASMMODE INTEL}
581 {$ENDIF}
582
583 {$IFDEF CPUARM}
584 // target is an ARM processor.
585 {$DEFINE TARGET_ARM}
586 {$ENDIF}
587{$ELSE}
588 // check for XE2 64-Bit compiler define
589 {$IFDEF CPUX64}
590 {$DEFINE TARGET_x64}
591 {$ELSE}
592 // define default (delphi etc) target (32 bit Intel 80386 or later)
593 {$DEFINE TARGET_x86}
594 {$ENDIF}
595{$ENDIF}
596
597
598(*
599 Symbol BITS_GETTER:
600 -------------------
601
602*)
603
604{$IFDEF COMPILERFPC}
605 // Widgetsets other then Windows will want to implement BITS_GETTER
606 {$IFNDEF LCLWin32}
607 {$DEFINE BITS_GETTER}
608 {$ENDIF}
609{$ENDIF}
610
611
612(*
613 Symbol PUREPASCAL:
614 ------------------
615
616 Forces GR32 into pure pascal mode.
617
618
619 NOTE: Further work needed to make assembly routines FPC compatible.
620
621 NOTE: The DARWIN target of Free Pascal generates PIC code by default
622 Which isn't compatible with the current assembler, so force PUREPASCAL
623
624 NOTE: Due to several issues with the Delphi X64 compiler, PUREPASCAL is
625 defined. However, most of the assembler optimized code does already work.
626 (for issues please see http://qc.embarcadero.com/wc/qcmain.aspx?d=98616
627 and http://qc.embarcadero.com/wc/qcmain.aspx?d=98613)
628*)
629
630{$IFDEF COMPILERFPC}
631 {-$DEFINE PUREPASCAL}
632{$ENDIF}
633
634{$IFDEF TARGET_x64}
635 {-$DEFINE PUREPASCAL}
636{$ENDIF}
637
638{$IFDEF TARGET_ARM}
639 {$DEFINE PUREPASCAL}
640 {$DEFINE OMIT_MMX}
641 {$DEFINE OMIT_SSE2}
642{$ENDIF}
643
644{$IFDEF DARWIN}
645 {$DEFINE PUREPASCAL}
646{$ENDIF}
647
648(*
649 Symbol BITS_GETTER:
650 -------------------
651
652*)
653
654{$IFDEF COMPILERFPC}
655 // Widgetsets other then Windows will want to implement BITS_GETTER
656 {$IFNDEF LCLWin32}
657 {$DEFINE BITS_GETTER}
658 {$ENDIF}
659{$ENDIF}
660
661
662(*
663 Symbol NATIVE_SINCOS:
664 ---------------------
665
666 Use native FPU function to retrieve SIN/COS values for a given argument
667
668 NOTE: On older systems a native call is typically much faster than calling
669 Sin() and Cos() from a higher level library (such as the math/system unit)
670 separately. However, on 64-bit systems a call can be slower, due to
671 additional conversion between XMM registers and the FPU
672*)
673
674{$IFDEF PUREPASCAL}
675 {$DEFINE NATIVE_SINCOS}
676{$ENDIF}
677{$IFDEF TARGET_x64}
678 {$DEFINE NATIVE_SINCOS}
679{$ENDIF}
680
681
682(*
683 Symbol HAS_NATIVEINT:
684 ---------------------
685
686 With the latest compilers (Delphi XE1+ and FPC 2.6.0+) the type NativeInt
687 is available which has the native size of the OS (32-Bit or 64-Bit). Thus,
688 it can be used to perform pointer arithmetrics.
689
690 NOTE: Please do not use simple Cardinal() or Integer() casts on pointers only
691*)
692
693{$IFDEF COMPILERXE1_UP}
694 {$DEFINE HAS_NATIVEINT}
695{$ENDIF}
696{$IFDEF FPC}
697 {$DEFINE HAS_NATIVEINT}
698{$ENDIF}
699
700
701(*
702 Miscellaneous Defines:
703 ---------------------- *)
704
705
706{$IFDEF COMPILER6}
707 {$DEFINE EXT_PROP_EDIT}
708{$ENDIF}
709
710{$IFNDEF COMPILER2010_UP}
711 {$DEFINE USETHREADRESUME}
712{$ENDIF}
713{$IFDEF COMPILERFPC}
714 {$UNDEF USETHREADRESUME}
715{$ENDIF}
716
717{$IFDEF LINUX}
718 {$IFNDEF FPC}
719 {$DEFINE BITS_GETTER}
720 {$ENDIF}
721 {$DEFINE UNIX}
722{$ENDIF}
723
724{$IFNDEF FPC}
725 {$IFNDEF LINUX}
726 {$DEFINE Windows}
727 {$ENDIF}
728{$ENDIF}
729
730{$R-}{$Q-} // switch off overflow and range checking
731
732{$IFDEF COMPILER6_UP}
733 {$DEFINE EXT_PROP_EDIT}
734{$ENDIF}
735
736{$IFDEF COMPILER2005_UP}
737 {$DEFINE HasParentBackground}
738{$ENDIF}
739
740{$IFDEF COMPILER2010_UP}
741 {$DEFINE SUPPORT_ENHANCED_RECORDS}
742{$ENDIF}
743
744{$IFNDEF COMPILERFPC}
745 {$DEFINE SUPPORT_XPTHEMES} // enable support for windows xp themes
746{$ENDIF}
747
748
749
750(*
751 Compatibility Symbols
752 ---------------------
753
754 These symbols are deprecated and will be removed in future releases.
755 *)
756
757
758{$IFDEF COMPILER6_UP}
759 {$DEFINE COMPILER6}
760{$ENDIF}
761
762{$IFDEF COMPILER7_UP}
763 {$DEFINE COMPILER7}
764{$ENDIF}
765
766{$IFDEF COMPILER2005_UP}
767 {$DEFINE COMPILER2005}
768{$ENDIF}
769
770{$IFDEF COMPILER2006}
771 {$DEFINE COMPILER2006}
772{$ENDIF}
773
774{$IFDEF COMPILER2007_UP}
775 {$DEFINE COMPILER2007}
776{$ENDIF}
777
778{$IFDEF COMPILER2009_UP}
779 {$DEFINE COMPILER2009}
780{$ENDIF}
781
782{$IFDEF COMPILER2010_UP}
783 {$DEFINE COMPILER2010}
784{$ENDIF}
785
786{$IFDEF COMPILERXE1_UP}
787 {$DEFINE COMPILERXE1}
788{$ENDIF}
789
790{$IFDEF COMPILERXE2_UP}
791 {$DEFINE COMPILERXE2}
792{$ENDIF}
793
794{$IFDEF COMPILERXE3_UP}
795 {$DEFINE COMPILERXE3}
796{$ENDIF}
797
798{$IFDEF COMPILERXE4_UP}
799 {$DEFINE COMPILERXE4}
800{$ENDIF}
801
802{$IFDEF COMPILERXE5_UP}
803 {$DEFINE COMPILERXE5}
804{$ENDIF}
805
806{$IFDEF COMPILERXE6_UP}
807 {$DEFINE COMPILERXE6}
808{$ENDIF}
809
810{$IFDEF COMPILERXE7_UP}
811 {$DEFINE COMPILERXE7}
812{$ENDIF}
813
814{$IFDEF COMPILERXE8_UP}
815 {$DEFINE COMPILERXE8}
816{$ENDIF}
817
818{$IFDEF COMPILERRX_UP}
819 {$DEFINE COMPILERRX8}
820{$ENDIF}
821
822{$IFDEF COMPILERRX1_UP}
823 {$DEFINE COMPILERRX1}
824{$ENDIF}
825
826{$IFDEF COMPILERRX2_UP}
827 {$DEFINE COMPILERRX2}
828{$ENDIF}
Note: See TracBrowser for help on using the repository browser.