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}
|
---|