├── .gitignore ├── README.md ├── license.txt └── src ├── Defines.inc ├── Log4D.pas └── jedi.inc /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | *.~* 63 | 64 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 65 | *.stat 66 | 67 | # DUnit configuration 68 | dunit.ini 69 | Unittests.dproj 70 | 71 | # Free Pascal compiler-generated binaries (safe to delete) 72 | *.ppu 73 | *.compiled 74 | *.obj 75 | lib 76 | 77 | # Free Pascal history and backups 78 | backup 79 | *.bak 80 | *.or 81 | 82 | # Free Pascal local files (user-specific info) 83 | *.lps 84 | 85 | # Free Pascal (other) 86 | *.rsj 87 | *.ico 88 | *.res 89 | *.rst 90 | 91 | # Other 92 | *.log 93 | 94 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # log4d 2 | 3 | This project contains files from the Log4D project with fixes to support newer Delphi versions and Free Pascal. 4 | 5 | Log4D is a port of the well known log4j logging framework. You can find the original Log4D project at http://sourceforge.net/projects/log4d/ 6 | 7 | You can find this project at https://github.com/michaelJustin/log4d 8 | 9 | See also: https://mikejustin.wordpress.com/2012/09/12/delphi-and-free-pascal-logging-with-the-log4d-open-source-library/ 10 | Log4D help files are available online at http://cc.embarcadero.com/item/16446. 11 | -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | MOZILLA PUBLIC LICENSE 4 | Version 1.1 5 | 6 | --------------- 7 | 8 | 1. Definitions. 9 | 10 | 1.0.1. "Commercial Use" means distribution or otherwise making the 11 | Covered Code available to a third party. 12 | 13 | 1.1. "Contributor" means each entity that creates or contributes to 14 | the creation of Modifications. 15 | 16 | 1.2. "Contributor Version" means the combination of the Original 17 | Code, prior Modifications used by a Contributor, and the Modifications 18 | made by that particular Contributor. 19 | 20 | 1.3. "Covered Code" means the Original Code or Modifications or the 21 | combination of the Original Code and Modifications, in each case 22 | including portions thereof. 23 | 24 | 1.4. "Electronic Distribution Mechanism" means a mechanism generally 25 | accepted in the software development community for the electronic 26 | transfer of data. 27 | 28 | 1.5. "Executable" means Covered Code in any form other than Source 29 | Code. 30 | 31 | 1.6. "Initial Developer" means the individual or entity identified 32 | as the Initial Developer in the Source Code notice required by Exhibit 33 | A. 34 | 35 | 1.7. "Larger Work" means a work which combines Covered Code or 36 | portions thereof with code not governed by the terms of this License. 37 | 38 | 1.8. "License" means this document. 39 | 40 | 1.8.1. "Licensable" means having the right to grant, to the maximum 41 | extent possible, whether at the time of the initial grant or 42 | subsequently acquired, any and all of the rights conveyed herein. 43 | 44 | 1.9. "Modifications" means any addition to or deletion from the 45 | substance or structure of either the Original Code or any previous 46 | Modifications. When Covered Code is released as a series of files, a 47 | Modification is: 48 | A. Any addition to or deletion from the contents of a file 49 | containing Original Code or previous Modifications. 50 | 51 | B. Any new file that contains any part of the Original Code or 52 | previous Modifications. 53 | 54 | 1.10. "Original Code" means Source Code of computer software code 55 | which is described in the Source Code notice required by Exhibit A as 56 | Original Code, and which, at the time of its release under this 57 | License is not already Covered Code governed by this License. 58 | 59 | 1.10.1. "Patent Claims" means any patent claim(s), now owned or 60 | hereafter acquired, including without limitation, method, process, 61 | and apparatus claims, in any patent Licensable by grantor. 62 | 63 | 1.11. "Source Code" means the preferred form of the Covered Code for 64 | making modifications to it, including all modules it contains, plus 65 | any associated interface definition files, scripts used to control 66 | compilation and installation of an Executable, or source code 67 | differential comparisons against either the Original Code or another 68 | well known, available Covered Code of the Contributor's choice. The 69 | Source Code can be in a compressed or archival form, provided the 70 | appropriate decompression or de-archiving software is widely available 71 | for no charge. 72 | 73 | 1.12. "You" (or "Your") means an individual or a legal entity 74 | exercising rights under, and complying with all of the terms of, this 75 | License or a future version of this License issued under Section 6.1. 76 | For legal entities, "You" includes any entity which controls, is 77 | controlled by, or is under common control with You. For purposes of 78 | this definition, "control" means (a) the power, direct or indirect, 79 | to cause the direction or management of such entity, whether by 80 | contract or otherwise, or (b) ownership of more than fifty percent 81 | (50%) of the outstanding shares or beneficial ownership of such 82 | entity. 83 | 84 | 2. Source Code License. 85 | 86 | 2.1. The Initial Developer Grant. 87 | The Initial Developer hereby grants You a world-wide, royalty-free, 88 | non-exclusive license, subject to third party intellectual property 89 | claims: 90 | (a) under intellectual property rights (other than patent or 91 | trademark) Licensable by Initial Developer to use, reproduce, 92 | modify, display, perform, sublicense and distribute the Original 93 | Code (or portions thereof) with or without Modifications, and/or 94 | as part of a Larger Work; and 95 | 96 | (b) under Patents Claims infringed by the making, using or 97 | selling of Original Code, to make, have made, use, practice, 98 | sell, and offer for sale, and/or otherwise dispose of the 99 | Original Code (or portions thereof). 100 | 101 | (c) the licenses granted in this Section 2.1(a) and (b) are 102 | effective on the date Initial Developer first distributes 103 | Original Code under the terms of this License. 104 | 105 | (d) Notwithstanding Section 2.1(b) above, no patent license is 106 | granted: 1) for code that You delete from the Original Code; 2) 107 | separate from the Original Code; or 3) for infringements caused 108 | by: i) the modification of the Original Code or ii) the 109 | combination of the Original Code with other software or devices. 110 | 111 | 2.2. Contributor Grant. 112 | Subject to third party intellectual property claims, each Contributor 113 | hereby grants You a world-wide, royalty-free, non-exclusive license 114 | 115 | (a) under intellectual property rights (other than patent or 116 | trademark) Licensable by Contributor, to use, reproduce, modify, 117 | display, perform, sublicense and distribute the Modifications 118 | created by such Contributor (or portions thereof) either on an 119 | unmodified basis, with other Modifications, as Covered Code 120 | and/or as part of a Larger Work; and 121 | 122 | (b) under Patent Claims infringed by the making, using, or 123 | selling of Modifications made by that Contributor either alone 124 | and/or in combination with its Contributor Version (or portions 125 | of such combination), to make, use, sell, offer for sale, have 126 | made, and/or otherwise dispose of: 1) Modifications made by that 127 | Contributor (or portions thereof); and 2) the combination of 128 | Modifications made by that Contributor with its Contributor 129 | Version (or portions of such combination). 130 | 131 | (c) the licenses granted in Sections 2.2(a) and 2.2(b) are 132 | effective on the date Contributor first makes Commercial Use of 133 | the Covered Code. 134 | 135 | (d) Notwithstanding Section 2.2(b) above, no patent license is 136 | granted: 1) for any code that Contributor has deleted from the 137 | Contributor Version; 2) separate from the Contributor Version; 138 | 3) for infringements caused by: i) third party modifications of 139 | Contributor Version or ii) the combination of Modifications made 140 | by that Contributor with other software (except as part of the 141 | Contributor Version) or other devices; or 4) under Patent Claims 142 | infringed by Covered Code in the absence of Modifications made by 143 | that Contributor. 144 | 145 | 3. Distribution Obligations. 146 | 147 | 3.1. Application of License. 148 | The Modifications which You create or to which You contribute are 149 | governed by the terms of this License, including without limitation 150 | Section 2.2. The Source Code version of Covered Code may be 151 | distributed only under the terms of this License or a future version 152 | of this License released under Section 6.1, and You must include a 153 | copy of this License with every copy of the Source Code You 154 | distribute. You may not offer or impose any terms on any Source Code 155 | version that alters or restricts the applicable version of this 156 | License or the recipients' rights hereunder. However, You may include 157 | an additional document offering the additional rights described in 158 | Section 3.5. 159 | 160 | 3.2. Availability of Source Code. 161 | Any Modification which You create or to which You contribute must be 162 | made available in Source Code form under the terms of this License 163 | either on the same media as an Executable version or via an accepted 164 | Electronic Distribution Mechanism to anyone to whom you made an 165 | Executable version available; and if made available via Electronic 166 | Distribution Mechanism, must remain available for at least twelve (12) 167 | months after the date it initially became available, or at least six 168 | (6) months after a subsequent version of that particular Modification 169 | has been made available to such recipients. You are responsible for 170 | ensuring that the Source Code version remains available even if the 171 | Electronic Distribution Mechanism is maintained by a third party. 172 | 173 | 3.3. Description of Modifications. 174 | You must cause all Covered Code to which You contribute to contain a 175 | file documenting the changes You made to create that Covered Code and 176 | the date of any change. You must include a prominent statement that 177 | the Modification is derived, directly or indirectly, from Original 178 | Code provided by the Initial Developer and including the name of the 179 | Initial Developer in (a) the Source Code, and (b) in any notice in an 180 | Executable version or related documentation in which You describe the 181 | origin or ownership of the Covered Code. 182 | 183 | 3.4. Intellectual Property Matters 184 | (a) Third Party Claims. 185 | If Contributor has knowledge that a license under a third party's 186 | intellectual property rights is required to exercise the rights 187 | granted by such Contributor under Sections 2.1 or 2.2, 188 | Contributor must include a text file with the Source Code 189 | distribution titled "LEGAL" which describes the claim and the 190 | party making the claim in sufficient detail that a recipient will 191 | know whom to contact. If Contributor obtains such knowledge after 192 | the Modification is made available as described in Section 3.2, 193 | Contributor shall promptly modify the LEGAL file in all copies 194 | Contributor makes available thereafter and shall take other steps 195 | (such as notifying appropriate mailing lists or newsgroups) 196 | reasonably calculated to inform those who received the Covered 197 | Code that new knowledge has been obtained. 198 | 199 | (b) Contributor APIs. 200 | If Contributor's Modifications include an application programming 201 | interface and Contributor has knowledge of patent licenses which 202 | are reasonably necessary to implement that API, Contributor must 203 | also include this information in the LEGAL file. 204 | 205 | (c) Representations. 206 | Contributor represents that, except as disclosed pursuant to 207 | Section 3.4(a) above, Contributor believes that Contributor's 208 | Modifications are Contributor's original creation(s) and/or 209 | Contributor has sufficient rights to grant the rights conveyed by 210 | this License. 211 | 212 | 3.5. Required Notices. 213 | You must duplicate the notice in Exhibit A in each file of the Source 214 | Code. If it is not possible to put such notice in a particular Source 215 | Code file due to its structure, then You must include such notice in a 216 | location (such as a relevant directory) where a user would be likely 217 | to look for such a notice. If You created one or more Modification(s) 218 | You may add your name as a Contributor to the notice described in 219 | Exhibit A. You must also duplicate this License in any documentation 220 | for the Source Code where You describe recipients' rights or ownership 221 | rights relating to Covered Code. You may choose to offer, and to 222 | charge a fee for, warranty, support, indemnity or liability 223 | obligations to one or more recipients of Covered Code. However, You 224 | may do so only on Your own behalf, and not on behalf of the Initial 225 | Developer or any Contributor. You must make it absolutely clear than 226 | any such warranty, support, indemnity or liability obligation is 227 | offered by You alone, and You hereby agree to indemnify the Initial 228 | Developer and every Contributor for any liability incurred by the 229 | Initial Developer or such Contributor as a result of warranty, 230 | support, indemnity or liability terms You offer. 231 | 232 | 3.6. Distribution of Executable Versions. 233 | You may distribute Covered Code in Executable form only if the 234 | requirements of Section 3.1-3.5 have been met for that Covered Code, 235 | and if You include a notice stating that the Source Code version of 236 | the Covered Code is available under the terms of this License, 237 | including a description of how and where You have fulfilled the 238 | obligations of Section 3.2. The notice must be conspicuously included 239 | in any notice in an Executable version, related documentation or 240 | collateral in which You describe recipients' rights relating to the 241 | Covered Code. You may distribute the Executable version of Covered 242 | Code or ownership rights under a license of Your choice, which may 243 | contain terms different from this License, provided that You are in 244 | compliance with the terms of this License and that the license for the 245 | Executable version does not attempt to limit or alter the recipient's 246 | rights in the Source Code version from the rights set forth in this 247 | License. If You distribute the Executable version under a different 248 | license You must make it absolutely clear that any terms which differ 249 | from this License are offered by You alone, not by the Initial 250 | Developer or any Contributor. You hereby agree to indemnify the 251 | Initial Developer and every Contributor for any liability incurred by 252 | the Initial Developer or such Contributor as a result of any such 253 | terms You offer. 254 | 255 | 3.7. Larger Works. 256 | You may create a Larger Work by combining Covered Code with other code 257 | not governed by the terms of this License and distribute the Larger 258 | Work as a single product. In such a case, You must make sure the 259 | requirements of this License are fulfilled for the Covered Code. 260 | 261 | 4. Inability to Comply Due to Statute or Regulation. 262 | 263 | If it is impossible for You to comply with any of the terms of this 264 | License with respect to some or all of the Covered Code due to 265 | statute, judicial order, or regulation then You must: (a) comply with 266 | the terms of this License to the maximum extent possible; and (b) 267 | describe the limitations and the code they affect. Such description 268 | must be included in the LEGAL file described in Section 3.4 and must 269 | be included with all distributions of the Source Code. Except to the 270 | extent prohibited by statute or regulation, such description must be 271 | sufficiently detailed for a recipient of ordinary skill to be able to 272 | understand it. 273 | 274 | 5. Application of this License. 275 | 276 | This License applies to code to which the Initial Developer has 277 | attached the notice in Exhibit A and to related Covered Code. 278 | 279 | 6. Versions of the License. 280 | 281 | 6.1. New Versions. 282 | Netscape Communications Corporation ("Netscape") may publish revised 283 | and/or new versions of the License from time to time. Each version 284 | will be given a distinguishing version number. 285 | 286 | 6.2. Effect of New Versions. 287 | Once Covered Code has been published under a particular version of the 288 | License, You may always continue to use it under the terms of that 289 | version. You may also choose to use such Covered Code under the terms 290 | of any subsequent version of the License published by Netscape. No one 291 | other than Netscape has the right to modify the terms applicable to 292 | Covered Code created under this License. 293 | 294 | 6.3. Derivative Works. 295 | If You create or use a modified version of this License (which you may 296 | only do in order to apply it to code which is not already Covered Code 297 | governed by this License), You must (a) rename Your license so that 298 | the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape", 299 | "MPL", "NPL" or any confusingly similar phrase do not appear in your 300 | license (except to note that your license differs from this License) 301 | and (b) otherwise make it clear that Your version of the license 302 | contains terms which differ from the Mozilla Public License and 303 | Netscape Public License. (Filling in the name of the Initial 304 | Developer, Original Code or Contributor in the notice described in 305 | Exhibit A shall not of themselves be deemed to be modifications of 306 | this License.) 307 | 308 | 7. DISCLAIMER OF WARRANTY. 309 | 310 | COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, 311 | WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, 312 | WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF 313 | DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. 314 | THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE 315 | IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, 316 | YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE 317 | COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER 318 | OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF 319 | ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. 320 | 321 | 8. TERMINATION. 322 | 323 | 8.1. This License and the rights granted hereunder will terminate 324 | automatically if You fail to comply with terms herein and fail to cure 325 | such breach within 30 days of becoming aware of the breach. All 326 | sublicenses to the Covered Code which are properly granted shall 327 | survive any termination of this License. Provisions which, by their 328 | nature, must remain in effect beyond the termination of this License 329 | shall survive. 330 | 331 | 8.2. If You initiate litigation by asserting a patent infringement 332 | claim (excluding declatory judgment actions) against Initial Developer 333 | or a Contributor (the Initial Developer or Contributor against whom 334 | You file such action is referred to as "Participant") alleging that: 335 | 336 | (a) such Participant's Contributor Version directly or indirectly 337 | infringes any patent, then any and all rights granted by such 338 | Participant to You under Sections 2.1 and/or 2.2 of this License 339 | shall, upon 60 days notice from Participant terminate prospectively, 340 | unless if within 60 days after receipt of notice You either: (i) 341 | agree in writing to pay Participant a mutually agreeable reasonable 342 | royalty for Your past and future use of Modifications made by such 343 | Participant, or (ii) withdraw Your litigation claim with respect to 344 | the Contributor Version against such Participant. If within 60 days 345 | of notice, a reasonable royalty and payment arrangement are not 346 | mutually agreed upon in writing by the parties or the litigation claim 347 | is not withdrawn, the rights granted by Participant to You under 348 | Sections 2.1 and/or 2.2 automatically terminate at the expiration of 349 | the 60 day notice period specified above. 350 | 351 | (b) any software, hardware, or device, other than such Participant's 352 | Contributor Version, directly or indirectly infringes any patent, then 353 | any rights granted to You by such Participant under Sections 2.1(b) 354 | and 2.2(b) are revoked effective as of the date You first made, used, 355 | sold, distributed, or had made, Modifications made by that 356 | Participant. 357 | 358 | 8.3. If You assert a patent infringement claim against Participant 359 | alleging that such Participant's Contributor Version directly or 360 | indirectly infringes any patent where such claim is resolved (such as 361 | by license or settlement) prior to the initiation of patent 362 | infringement litigation, then the reasonable value of the licenses 363 | granted by such Participant under Sections 2.1 or 2.2 shall be taken 364 | into account in determining the amount or value of any payment or 365 | license. 366 | 367 | 8.4. In the event of termination under Sections 8.1 or 8.2 above, 368 | all end user license agreements (excluding distributors and resellers) 369 | which have been validly granted by You or any distributor hereunder 370 | prior to termination shall survive termination. 371 | 372 | 9. LIMITATION OF LIABILITY. 373 | 374 | UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT 375 | (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL 376 | DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, 377 | OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR 378 | ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY 379 | CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, 380 | WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER 381 | COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN 382 | INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF 383 | LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY 384 | RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW 385 | PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE 386 | EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO 387 | THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU. 388 | 389 | 10. U.S. GOVERNMENT END USERS. 390 | 391 | The Covered Code is a "commercial item," as that term is defined in 392 | 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer 393 | software" and "commercial computer software documentation," as such 394 | terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 395 | C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), 396 | all U.S. Government End Users acquire Covered Code with only those 397 | rights set forth herein. 398 | 399 | 11. MISCELLANEOUS. 400 | 401 | This License represents the complete agreement concerning subject 402 | matter hereof. If any provision of this License is held to be 403 | unenforceable, such provision shall be reformed only to the extent 404 | necessary to make it enforceable. This License shall be governed by 405 | California law provisions (except to the extent applicable law, if 406 | any, provides otherwise), excluding its conflict-of-law provisions. 407 | With respect to disputes in which at least one party is a citizen of, 408 | or an entity chartered or registered to do business in the United 409 | States of America, any litigation relating to this License shall be 410 | subject to the jurisdiction of the Federal Courts of the Northern 411 | District of California, with venue lying in Santa Clara County, 412 | California, with the losing party responsible for costs, including 413 | without limitation, court costs and reasonable attorneys' fees and 414 | expenses. The application of the United Nations Convention on 415 | Contracts for the International Sale of Goods is expressly excluded. 416 | Any law or regulation which provides that the language of a contract 417 | shall be construed against the drafter shall not apply to this 418 | License. 419 | 420 | 12. RESPONSIBILITY FOR CLAIMS. 421 | 422 | As between Initial Developer and the Contributors, each party is 423 | responsible for claims and damages arising, directly or indirectly, 424 | out of its utilization of rights under this License and You agree to 425 | work with Initial Developer and Contributors to distribute such 426 | responsibility on an equitable basis. Nothing herein is intended or 427 | shall be deemed to constitute any admission of liability. 428 | 429 | 13. MULTIPLE-LICENSED CODE. 430 | 431 | Initial Developer may designate portions of the Covered Code as 432 | "Multiple-Licensed". "Multiple-Licensed" means that the Initial 433 | Developer permits you to utilize portions of the Covered Code under 434 | Your choice of the MPL or the alternative licenses, if any, specified 435 | by the Initial Developer in the file described in Exhibit A. 436 | 437 | EXHIBIT A -Mozilla Public License. 438 | 439 | ``The contents of this file are subject to the Mozilla Public License 440 | Version 1.1 (the "License"); you may not use this file except in 441 | compliance with the License. You may obtain a copy of the License at 442 | https://www.mozilla.org/MPL/ 443 | 444 | Software distributed under the License is distributed on an "AS IS" 445 | basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 446 | License for the specific language governing rights and limitations 447 | under the License. 448 | 449 | The Original Code is ______________________________________. 450 | 451 | The Initial Developer of the Original Code is ________________________. 452 | Portions created by ______________________ are Copyright (C) ______ 453 | _______________________. All Rights Reserved. 454 | 455 | Contributor(s): ______________________________________. 456 | 457 | Alternatively, the contents of this file may be used under the terms 458 | of the _____ license (the "[___] License"), in which case the 459 | provisions of [______] License are applicable instead of those 460 | above. If you wish to allow use of your version of this file only 461 | under the terms of the [____] License and not to allow others to use 462 | your version of this file under the MPL, indicate your decision by 463 | deleting the provisions above and replace them with the notice and 464 | other provisions required by the [___] License. If you do not delete 465 | the provisions above, a recipient may use your version of this file 466 | under either the MPL or the [___] License." 467 | 468 | [NOTE: The text of this Exhibit A may differ slightly from the text of 469 | the notices in the Source Code files of the Original Code. You should 470 | use the text of this Exhibit A rather than the text found in the 471 | Original Code Source Code for Your Modifications.] 472 | -------------------------------------------------------------------------------- /src/Defines.inc: -------------------------------------------------------------------------------- 1 | {**************************************************************************************************} 2 | { } 3 | { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} 4 | { you may not use this file except in compliance with the License. You may obtain a copy of the } 5 | { License at https://www.mozilla.org/MPL/1.1/ } 6 | { } 7 | { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } 8 | { ANY KIND, either express or implied. See the License for the specific language governing rights } 9 | { and limitations under the License. } 10 | { } 11 | {**************************************************************************************************} 12 | 13 | 14 | {$I jedi.inc} // Use a common definition file for delphi compiler versions 15 | 16 | { In the moment there are no special defines for Log4D } 17 | 18 | {.$DEFINE MSXML4} 19 | {.$DEFINE MSSAX} 20 | -------------------------------------------------------------------------------- /src/jedi.inc: -------------------------------------------------------------------------------- 1 | {$IFNDEF JEDI_INC} 2 | {$DEFINE JEDI_INC} 3 | 4 | {**************************************************************************************************} 5 | { } 6 | { The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");} 7 | { you may not use this file except in compliance with the License. You may obtain a copy of the } 8 | { License at http://www.mozilla.org/MPL/ } 9 | { } 10 | { Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF } 11 | { ANY KIND, either express or implied. See the License for the specific language governing rights } 12 | { and limitations under the License. } 13 | { } 14 | { The Original Code is: jedi.inc. } 15 | { The Initial Developer of the Original Code is Project JEDI http://www.delphi-jedi.org } 16 | { } 17 | { Alternatively, the contents of this file may be used under the terms of the GNU Lesser General } 18 | { Public License (the "LGPL License"), in which case the provisions of the LGPL License are } 19 | { applicable instead of those above. If you wish to allow use of your version of this file only } 20 | { under the terms of the LGPL License and not to allow others to use your version of this file } 21 | { under the MPL, indicate your decision by deleting the provisions above and replace them with } 22 | { the notice and other provisions required by the LGPL License. If you do not delete the } 23 | { provisions above, a recipient may use your version of this file under either the MPL or the } 24 | { LGPL License. } 25 | { } 26 | { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 27 | { } 28 | {**************************************************************************************************} 29 | { } 30 | { This file defines various generic compiler directives used in different libraries, e.g. in the } 31 | { JEDI Code Library (JCL) and JEDI Visual Component Library Library (JVCL). The directives in } 32 | { this file are of generic nature and consist mostly of mappings from the VERXXX directives } 33 | { defined by Delphi, C++Builder and FPC to friendly names such as DELPHI5 and } 34 | { SUPPORTS_WIDESTRING. These friendly names are subsequently used in the libraries to test for } 35 | { compiler versions and/or whether the compiler supports certain features (such as widestrings or } 36 | { 64 bit integers. The libraries provide an additional, library specific, include file. For the } 37 | { JCL e.g. this is jcl.inc. These files should be included in source files instead of this file } 38 | { (which is pulled in automatically). } 39 | { } 40 | {**************************************************************************************************} 41 | { } 42 | { Last modified: $Date:: $ } 43 | { Revision: $Rev:: $ } 44 | { Author: $Author:: $ } 45 | { } 46 | {**************************************************************************************************} 47 | 48 | (* 49 | 50 | - Development environment directives 51 | 52 | This file defines two directives to indicate which development environment the 53 | library is being compiled with. Currently this can either be Delphi, Kylix, 54 | C++Builder or FPC. 55 | 56 | Directive Description 57 | ------------------------------------------------------------------------------ 58 | DELPHI Defined if compiled with Delphi 59 | KYLIX Defined if compiled with Kylix 60 | DELPHICOMPILER Defined if compiled with Delphi or Kylix/Delphi 61 | BCB Defined if compiled with C++Builder 62 | CPPBUILDER Defined if compiled with C++Builder (alias for BCB) 63 | BCBCOMPILER Defined if compiled with C++Builder or Kylix/C++ 64 | DELPHILANGUAGE Defined if compiled with Delphi, Kylix or C++Builder 65 | BORLAND Defined if compiled with Delphi, Kylix or C++Builder 66 | FPC Defined if compiled with FPC 67 | 68 | - Platform Directives 69 | 70 | Platform directives are not all explicitly defined in this file, some are 71 | defined by the compiler itself. They are listed here only for completeness. 72 | 73 | Directive Description 74 | ------------------------------------------------------------------------------ 75 | WIN32 Defined when target platform is 32 bit Windows 76 | WIN64 Defined when target platform is 64 bit Windows 77 | MSWINDOWS Defined when target platform is 32 bit Windows 78 | LINUX Defined when target platform is Linux 79 | UNIX Defined when target platform is Unix-like (including Linux) 80 | CLR Defined when target platform is .NET 81 | 82 | - Architecture directives. These are auto-defined by FPC 83 | CPU32 and CPU64 are mostly for generic pointer size dependant differences rather 84 | than for a specific architecture. 85 | 86 | CPU386 Defined when target platform is native x86 (win32) 87 | CPUx86_64 Defined when target platform is native x86_64 (win64) 88 | CPU32 Defined when target is 32-bit 89 | CPU64 Defined when target is 64-bit 90 | CPUASM Defined when target assembler is available 91 | 92 | - Visual library Directives 93 | 94 | The following directives indicate for a visual library. In a Delphi/BCB 95 | (Win32) application you need to define the VisualCLX symbol in the project 96 | options, if you want to use the VisualCLX library. Alternatively you can use 97 | the IDE expert, which is distributed with the JCL to do this automatically. 98 | 99 | Directive Description 100 | ------------------------------------------------------------------------------ 101 | VCL Defined for Delphi/BCB (Win32) exactly if VisualCLX is not defined 102 | VisualCLX Defined for Kylix; needs to be defined for Delphi/BCB to 103 | use JCL with VisualCLX applications. 104 | 105 | 106 | - Other cross-platform related defines 107 | 108 | These symbols are intended to help in writing portable code. 109 | 110 | Directive Description 111 | ------------------------------------------------------------------------------ 112 | PUREPASCAL Code is machine-independent (as opposed to assembler code) 113 | Win32API Code is specific for the Win32 API; 114 | use instead of "{$IFNDEF CLR} {$IFDEF MSWINDOWS}" constructs 115 | 116 | 117 | - Delphi Versions 118 | 119 | The following directives are direct mappings from the VERXXX directives to a 120 | friendly name of the associated compiler. These directives are only defined if 121 | the compiler is Delphi (ie DELPHI is defined). 122 | 123 | Directive Description 124 | ------------------------------------------------------------------------------ 125 | DELPHI1 Defined when compiling with Delphi 1 (Codename WASABI/MANGO) 126 | DELPHI2 Defined when compiling with Delphi 2 (Codename POLARIS) 127 | DELPHI3 Defined when compiling with Delphi 3 (Codename IVORY) 128 | DELPHI4 Defined when compiling with Delphi 4 (Codename ALLEGRO) 129 | DELPHI5 Defined when compiling with Delphi 5 (Codename ARGUS) 130 | DELPHI6 Defined when compiling with Delphi 6 (Codename ILLIAD) 131 | DELPHI7 Defined when compiling with Delphi 7 (Codename AURORA) 132 | DELPHI8 Defined when compiling with Delphi 8 (Codename OCTANE) 133 | DELPHI2005 Defined when compiling with Delphi 2005 (Codename DIAMONDBACK) 134 | DELPHI9 Alias for DELPHI2005 135 | DELPHI10 Defined when compiling with Delphi 2006 (Codename DEXTER) 136 | DELPHI2006 Alias for DELPHI10 137 | DELPHI11 Defined when compiling with Delphi 2007 for Win32 (Codename SPACELY) 138 | DELPHI2007 Alias for DELPHI11 139 | DELPHI12 Defined when compiling with Delphi 2009 for Win32 (Codename TIBURON) 140 | DELPHI2009 Alias for DELPHI12 141 | DELPHI14 Defined when compiling with Delphi 2010 for Win32 (Codename WEAVER) 142 | DELPHI2010 Alias for DELPHI14 143 | DELPHI15 Defined when compiling with Delphi XE for Win32 (Codename FULCRUM) 144 | DELPHIXE Alias for DELPHI15 145 | DELPHI16 Defined when compiling with Delphi XE2 for Win32 (Codename PULSAR) 146 | DELPHIXE2 Alias for DELPHI16 147 | DELPHI17 Defined when compiling with Delphi XE3 for Win32 (Codename WATERDRAGON) 148 | DELPHIXE3 Alias for DELPHI17 149 | DELPHI18 Defined when compiling with Delphi XE4 for Win32 (Codename QUINTESSENCE) 150 | DELPHIXE4 Alias for DELPHI18 151 | DELPHI19 Defined when compiling with Delphi XE5 for Win32 (Codename ZEPHYR) 152 | DELPHIXE5 Alias for DELPHI19 153 | DELPHI20 Defined when compiling with Delphi XE6 for Win32 (Codename PROTEUS) 154 | DELPHIXE6 Alias for DELPHI20 155 | DELPHI21 Defined when compiling with Delphi XE7 for Win32 (Codename CARPATHIA) 156 | DELPHIXE7 Alias for DELPHI21 157 | DELPHI22 Defined when compiling with Delphi XE8 for Win32 (Codename ELBRUS) 158 | DELPHIXE8 Alias for DELPHI22 159 | DELPHI23 Defined when compiling with Delphi 10 for Win32 (Codename AITANA) 160 | DELPHIX_SEATTLE Alias for DELPHI23 161 | DELPHI24 Defined when compiling with Delphi 10.1 for Win32 (Codename BIGBEN) 162 | DELPHIX_BERLIN Alias for DELPHI24 163 | DELPHI1_UP Defined when compiling with Delphi 1 or higher 164 | DELPHI2_UP Defined when compiling with Delphi 2 or higher 165 | DELPHI3_UP Defined when compiling with Delphi 3 or higher 166 | DELPHI4_UP Defined when compiling with Delphi 4 or higher 167 | DELPHI5_UP Defined when compiling with Delphi 5 or higher 168 | DELPHI6_UP Defined when compiling with Delphi 6 or higher 169 | DELPHI7_UP Defined when compiling with Delphi 7 or higher 170 | DELPHI8_UP Defined when compiling with Delphi 8 or higher 171 | DELPHI2005_UP Defined when compiling with Delphi 2005 or higher 172 | DELPHI9_UP Alias for DELPHI2005_UP 173 | DELPHI10_UP Defined when compiling with Delphi 2006 or higher 174 | DELPHI2006_UP Alias for DELPHI10_UP 175 | DELPHI11_UP Defined when compiling with Delphi 2007 for Win32 or higher 176 | DELPHI2007_UP Alias for DELPHI11_UP 177 | DELPHI12_UP Defined when compiling with Delphi 2009 for Win32 or higher 178 | DELPHI2009_UP Alias for DELPHI12_UP 179 | DELPHI14_UP Defined when compiling with Delphi 2010 for Win32 or higher 180 | DELPHI2010_UP Alias for DELPHI14_UP 181 | DELPHI15_UP Defined when compiling with Delphi XE for Win32 or higher 182 | DELPHIXE_UP Alias for DELPHI15_UP 183 | DELPHI16_UP Defined when compiling with Delphi XE2 for Win32 or higher 184 | DELPHIXE2_UP Alias for DELPHI16_UP 185 | DELPHI17_UP Defined when compiling with Delphi XE3 for Win32 or higher 186 | DELPHIXE3_UP Alias for DELPHI17_UP 187 | DELPHI18_UP Defined when compiling with Delphi XE4 for Win32 or higher 188 | DELPHIXE4_UP Alias for DELPHI18_UP 189 | DELPHI19_UP Defined when compiling with Delphi XE5 for Win32 or higher 190 | DELPHIXE5_UP Alias for DELPHI19_UP 191 | DELPHI20_UP Defined when compiling with Delphi XE6 for Win32 or higher 192 | DELPHIXE6_UP Alias for DELPHI20_UP 193 | DELPHI21_UP Defined when compiling with Delphi XE7 for Win32 or higher 194 | DELPHIXE7_UP Alias for DELPHI21_UP 195 | DELPHI22_UP Defined when compiling with Delphi XE8 for Win32 or higher 196 | DELPHIXE8_UP Alias for DELPHI22_UP 197 | DELPHI23_UP Defined when compiling with Delphi 10 for Win32 or higher 198 | DELPHIX_SEATTLE_UP Alias for DELPHI23_UP 199 | DELPHI24_UP Defined when compiling with Delphi 10.1 for Win32 or higher 200 | DELPHIX_BERLIN_UP Alias for DELPHI24_UP 201 | DELPHI25_UP Defined when compiling with Delphi 10.2 for Win32 or higher 202 | 203 | 204 | - Kylix Versions 205 | 206 | The following directives are direct mappings from the VERXXX directives to a 207 | friendly name of the associated compiler. These directives are only defined if 208 | the compiler is Kylix (ie KYLIX is defined). 209 | 210 | Directive Description 211 | ------------------------------------------------------------------------------ 212 | KYLIX1 Defined when compiling with Kylix 1 213 | KYLIX2 Defined when compiling with Kylix 2 214 | KYLIX3 Defined when compiling with Kylix 3 (Codename CORTEZ) 215 | KYLIX1_UP Defined when compiling with Kylix 1 or higher 216 | KYLIX2_UP Defined when compiling with Kylix 2 or higher 217 | KYLIX3_UP Defined when compiling with Kylix 3 or higher 218 | 219 | 220 | - Delphi Compiler Versions (Delphi / Kylix, not in BCB mode) 221 | 222 | Directive Description 223 | ------------------------------------------------------------------------------ 224 | DELPHICOMPILER1 Defined when compiling with Delphi 1 225 | DELPHICOMPILER2 Defined when compiling with Delphi 2 226 | DELPHICOMPILER3 Defined when compiling with Delphi 3 227 | DELPHICOMPILER4 Defined when compiling with Delphi 4 228 | DELPHICOMPILER5 Defined when compiling with Delphi 5 229 | DELPHICOMPILER6 Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 230 | DELPHICOMPILER7 Defined when compiling with Delphi 7 231 | DELPHICOMPILER8 Defined when compiling with Delphi 8 232 | DELPHICOMPILER9 Defined when compiling with Delphi 2005 233 | DELPHICOMPILER10 Defined when compiling with Delphi Personality of BDS 4.0 234 | DELPHICOMPILER11 Defined when compiling with Delphi 2007 for Win32 235 | DELPHICOMPILER12 Defined when compiling with Delphi Personality of BDS 6.0 236 | DELPHICOMPILER14 Defined when compiling with Delphi Personality of BDS 7.0 237 | DELPHICOMPILER15 Defined when compiling with Delphi Personality of BDS 8.0 238 | DELPHICOMPILER16 Defined when compiling with Delphi Personality of BDS 9.0 239 | DELPHICOMPILER17 Defined when compiling with Delphi Personality of BDS 10.0 240 | DELPHICOMPILER18 Defined when compiling with Delphi Personality of BDS 11.0 241 | DELPHICOMPILER19 Defined when compiling with Delphi Personality of BDS 12.0 242 | DELPHICOMPILER20 Defined when compiling with Delphi Personality of BDS 14.0 243 | DELPHICOMPILER21 Defined when compiling with Delphi Personality of BDS 15.0 244 | DELPHICOMPILER22 Defined when compiling with Delphi Personality of BDS 16.0 245 | DELPHICOMPILER23 Defined when compiling with Delphi Personality of BDS 17.0 246 | DELPHICOMPILER24 Defined when compiling with Delphi Personality of BDS 18.0 247 | DELPHICOMPILER25 Defined when compiling with Delphi Personality of BDS 19.0 248 | DELPHICOMPILER1_UP Defined when compiling with Delphi 1 or higher 249 | DELPHICOMPILER2_UP Defined when compiling with Delphi 2 or higher 250 | DELPHICOMPILER3_UP Defined when compiling with Delphi 3 or higher 251 | DELPHICOMPILER4_UP Defined when compiling with Delphi 4 or higher 252 | DELPHICOMPILER5_UP Defined when compiling with Delphi 5 or higher 253 | DELPHICOMPILER6_UP Defined when compiling with Delphi 6 or Kylix 1, 2 or 3 or higher 254 | DELPHICOMPILER7_UP Defined when compiling with Delphi 7 or higher 255 | DELPHICOMPILER8_UP Defined when compiling with Delphi 8 or higher 256 | DELPHICOMPILER9_UP Defined when compiling with Delphi 2005 257 | DELPHICOMPILER10_UP Defined when compiling with Delphi 2006 or higher 258 | DELPHICOMPILER11_UP Defined when compiling with Delphi 2007 for Win32 or higher 259 | DELPHICOMPILER12_UP Defined when compiling with Delphi 2009 for Win32 or higher 260 | DELPHICOMPILER14_UP Defined when compiling with Delphi 2010 for Win32 or higher 261 | DELPHICOMPILER15_UP Defined when compiling with Delphi XE for Win32 or higher 262 | DELPHICOMPILER16_UP Defined when compiling with Delphi XE2 for Win32 or higher 263 | DELPHICOMPILER17_UP Defined when compiling with Delphi XE3 for Win32 or higher 264 | DELPHICOMPILER18_UP Defined when compiling with Delphi XE4 for Win32 or higher 265 | DELPHICOMPILER19_UP Defined when compiling with Delphi XE5 for Win32 or higher 266 | DELPHICOMPILER20_UP Defined when compiling with Delphi XE6 for Win32 or higher 267 | DELPHICOMPILER21_UP Defined when compiling with Delphi XE7 for Win32 or higher 268 | DELPHICOMPILER22_UP Defined when compiling with Delphi XE8 for Win32 or higher 269 | DELPHICOMPILER23_UP Defined when compiling with Delphi 10 for Win32 or higher 270 | DELPHICOMPILER24_UP Defined when compiling with Delphi 10.1 for Win32 or higher 271 | DELPHICOMPILER25_UP Defined when compiling with Delphi 10.2 for Win32 or higher 272 | 273 | 274 | - C++Builder Versions 275 | 276 | The following directives are direct mappings from the VERXXX directives to a 277 | friendly name of the associated compiler. These directives are only defined if 278 | the compiler is C++Builder (ie BCB is defined). 279 | 280 | Directive Description 281 | ------------------------------------------------------------------------------ 282 | BCB1 Defined when compiling with C++Builder 1 283 | BCB3 Defined when compiling with C++Builder 3 284 | BCB4 Defined when compiling with C++Builder 4 285 | BCB5 Defined when compiling with C++Builder 5 (Codename RAMPAGE) 286 | BCB6 Defined when compiling with C++Builder 6 (Codename RIPTIDE) 287 | BCB10 Defined when compiling with C++Builder Personality of BDS 4.0 (also known as C++Builder 2006) (Codename DEXTER) 288 | BCB11 Defined when compiling with C++Builder Personality of RAD Studio 2007 (also known as C++Builder 2007) (Codename COGSWELL) 289 | BCB12 Defined when compiling with C++Builder Personality of RAD Studio 2009 (also known as C++Builder 2009) (Codename TIBURON) 290 | BCB14 Defined when compiling with C++Builder Personality of RAD Studio 2010 (also known as C++Builder 2010) (Codename WEAVER) 291 | BCB15 Defined when compiling with C++Builder Personality of RAD Studio XE (also known as C++Builder XE) (Codename FULCRUM) 292 | BCB16 Defined when compiling with C++Builder Personality of RAD Studio XE2 (also known as C++Builder XE2) (Codename PULSAR) 293 | BCB17 Defined when compiling with C++Builder Personality of RAD Studio XE3 (also known as C++Builder XE3) (Codename WATERDRAGON) 294 | BCB18 Defined when compiling with C++Builder Personality of RAD Studio XE4 (also known as C++Builder XE4) (Codename QUINTESSENCE) 295 | BCB19 Defined when compiling with C++Builder Personality of RAD Studio XE5 (also known as C++Builder XE5) (Codename ZEPHYR) 296 | BCB20 Defined when compiling with C++Builder Personality of RAD Studio XE6 (also known as C++Builder XE6) (Codename PROTEUS) 297 | BCB21 Defined when compiling with C++Builder Personality of RAD Studio XE7 (also known as C++Builder XE7) (Codename CARPATHIA) 298 | BCB22 Defined when compiling with C++Builder Personality of RAD Studio XE8 (also known as C++Builder XE8) (Codename ELBRUS) 299 | BCB23 Defined when compiling with C++Builder Personality of RAD Studio 10 Seattle (also known as C++Builder 10 Seattle) (Codename AITANA) 300 | BCB24 Defined when compiling with C++Builder Personality of RAD Studio 10.1 Berlin (also known as C++Builder 10.1 Berlin) (Codename BIGBEN) 301 | BCB25 Defined when compiling with C++Builder Personality of RAD Studio 10.2 (also known as C++Builder 10.2) (Codename ????) 302 | BCB1_UP Defined when compiling with C++Builder 1 or higher 303 | BCB3_UP Defined when compiling with C++Builder 3 or higher 304 | BCB4_UP Defined when compiling with C++Builder 4 or higher 305 | BCB5_UP Defined when compiling with C++Builder 5 or higher 306 | BCB6_UP Defined when compiling with C++Builder 6 or higher 307 | BCB10_UP Defined when compiling with C++Builder Personality of BDS 4.0 or higher 308 | BCB11_UP Defined when compiling with C++Builder Personality of RAD Studio 2007 or higher 309 | BCB12_UP Defined when compiling with C++Builder Personality of RAD Studio 2009 or higher 310 | BCB14_UP Defined when compiling with C++Builder Personality of RAD Studio 2010 or higher 311 | BCB15_UP Defined when compiling with C++Builder Personality of RAD Studio XE or higher 312 | BCB16_UP Defined when compiling with C++Builder Personality of RAD Studio XE2 or higher 313 | BCB17_UP Defined when compiling with C++Builder Personality of RAD Studio XE3 or higher 314 | BCB18_UP Defined when compiling with C++Builder Personality of RAD Studio XE4 or higher 315 | BCB19_UP Defined when compiling with C++Builder Personality of RAD Studio XE5 or higher 316 | BCB20_UP Defined when compiling with C++Builder Personality of RAD Studio XE6 or higher 317 | BCB21_UP Defined when compiling with C++Builder Personality of RAD Studio XE7 or higher 318 | BCB22_UP Defined when compiling with C++Builder Personality of RAD Studio XE8 or higher 319 | BCB23_UP Defined when compiling with C++Builder Personality of RAD Studio 10 or higher 320 | BCB24_UP Defined when compiling with C++Builder Personality of RAD Studio 10.1 or higher 321 | BCB25_UP Defined when compiling with C++Builder Personality of RAD Studio 10.2 or higher 322 | 323 | 324 | - RAD Studio / Borland Developer Studio Versions 325 | 326 | The following directives are direct mappings from the VERXXX directives to a 327 | friendly name of the associated IDE. These directives are only defined if 328 | the IDE is Borland Developer Studio Version 2 or above. 329 | 330 | Note: Borland Developer Studio 2006 is marketed as Delphi 2006 or C++Builder 2006, 331 | but those provide only different labels for identical content. 332 | 333 | Directive Description 334 | ------------------------------------------------------------------------------ 335 | BDS Defined when compiling with BDS version of dcc32.exe (Codename SIDEWINDER) 336 | BDS2 Defined when compiling with BDS 2.0 (Delphi 8) (Codename OCTANE) 337 | BDS3 Defined when compiling with BDS 3.0 (Delphi 2005) (Codename DIAMONDBACK) 338 | BDS4 Defined when compiling with BDS 4.0 (Borland Developer Studio 2006) (Codename DEXTER) 339 | BDS5 Defined when compiling with BDS 5.0 (CodeGear RAD Studio 2007) (Codename HIGHLANDER) 340 | BDS6 Defined when compiling with BDS 6.0 (CodeGear RAD Studio 2009) (Codename TIBURON) 341 | BDS7 Defined when compiling with BDS 7.0 (Embarcadero RAD Studio 2010) (Codename WEAVER) 342 | BDS8 Defined when compiling with BDS 8.0 (Embarcadero RAD Studio XE) (Codename FULCRUM) 343 | BDS9 Defined when compiling with BDS 9.0 (Embarcadero RAD Studio XE2) (Codename PULSAR) 344 | BDS10 Defined when compiling with BDS 10.0 (Embarcadero RAD Studio XE3) (Codename WATERDRAGON) 345 | BDS11 Defined when compiling with BDS 11.0 (Embarcadero RAD Studio XE4) (Codename QUINTESSENCE) 346 | BDS12 Defined when compiling with BDS 12.0 (Embarcadero RAD Studio XE5) (Codename ZEPHYR) 347 | BDS14 Defined when compiling with BDS 14.0 (Embarcadero RAD Studio XE6) (Codename PROTEUS) 348 | BDS15 Defined when compiling with BDS 15.0 (Embarcadero RAD Studio XE7) (Codename CARPATHIA) 349 | BDS16 Defined when compiling with BDS 16.0 (Embarcadero RAD Studio XE8) (Codename ELBRUS) 350 | BDS17 Defined when compiling with BDS 17.0 (Embarcadero RAD Studio 10) (Codename AITANA) 351 | BDS18 Defined when compiling with BDS 18.0 (Embarcadero RAD Studio 10.1) (Codename BIGBEN) 352 | BDS19 Defined when compiling with BDS 19.0 (Embarcadero RAD Studio 10.2) (Codename ?????) 353 | BDS2_UP Defined when compiling with BDS 2.0 or higher 354 | BDS3_UP Defined when compiling with BDS 3.0 or higher 355 | BDS4_UP Defined when compiling with BDS 4.0 or higher 356 | BDS5_UP Defined when compiling with BDS 5.0 or higher 357 | BDS6_UP Defined when compiling with BDS 6.0 or higher 358 | BDS7_UP Defined when compiling with BDS 7.0 or higher 359 | BDS8_UP Defined when compiling with BDS 8.0 or higher 360 | BDS9_UP Defined when compiling with BDS 9.0 or higher 361 | BDS10_UP Defined when compiling with BDS 10.0 or higher 362 | BDS11_UP Defined when compiling with BDS 11.0 or higher 363 | BDS12_UP Defined when compiling with BDS 12.0 or higher 364 | BDS14_UP Defined when compiling with BDS 14.0 or higher 365 | BDS15_UP Defined when compiling with BDS 15.0 or higher 366 | BDS16_UP Defined when compiling with BDS 16.0 or higher 367 | BDS17_UP Defined when compiling with BDS 17.0 or higher 368 | BDS18_UP Defined when compiling with BDS 18.0 or higher 369 | BDS19_UP Defined when compiling with BDS 19.0 or higher 370 | 371 | - Compiler Versions 372 | 373 | The following directives are direct mappings from the VERXXX directives to a 374 | friendly name of the associated compiler. Unlike the DELPHI_X and BCB_X 375 | directives, these directives are indepedent of the development environment. 376 | That is, they are defined regardless of whether compilation takes place using 377 | Delphi or C++Builder. 378 | 379 | Directive Description 380 | ------------------------------------------------------------------------------ 381 | COMPILER1 Defined when compiling with Delphi 1 382 | COMPILER2 Defined when compiling with Delphi 2 or C++Builder 1 383 | COMPILER3 Defined when compiling with Delphi 3 384 | COMPILER35 Defined when compiling with C++Builder 3 385 | COMPILER4 Defined when compiling with Delphi 4 or C++Builder 4 386 | COMPILER5 Defined when compiling with Delphi 5 or C++Builder 5 387 | COMPILER6 Defined when compiling with Delphi 6 or C++Builder 6 388 | COMPILER7 Defined when compiling with Delphi 7 389 | COMPILER8 Defined when compiling with Delphi 8 390 | COMPILER9 Defined when compiling with Delphi 9 391 | COMPILER10 Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 392 | COMPILER11 Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 393 | COMPILER12 Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 394 | COMPILER14 Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 395 | COMPILER15 Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 396 | COMPILER16 Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 397 | COMPILER17 Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 398 | COMPILER18 Defined when compiling with Delphi or C++Builder Personalities of BDS 11.0 399 | COMPILER19 Defined when compiling with Delphi or C++Builder Personalities of BDS 12.0 400 | COMPILER20 Defined when compiling with Delphi or C++Builder Personalities of BDS 14.0 401 | COMPILER21 Defined when compiling with Delphi or C++Builder Personalities of BDS 15.0 402 | COMPILER22 Defined when compiling with Delphi or C++Builder Personalities of BDS 16.0 403 | COMPILER23 Defined when compiling with Delphi or C++Builder Personalities of BDS 17.0 404 | COMPILER24 Defined when compiling with Delphi or C++Builder Personalities of BDS 18.0 405 | COMPILER25 Defined when compiling with Delphi or C++Builder Personalities of BDS 19.0 406 | COMPILER1_UP Defined when compiling with Delphi 1 or higher 407 | COMPILER2_UP Defined when compiling with Delphi 2 or C++Builder 1 or higher 408 | COMPILER3_UP Defined when compiling with Delphi 3 or higher 409 | COMPILER35_UP Defined when compiling with C++Builder 3 or higher 410 | COMPILER4_UP Defined when compiling with Delphi 4 or C++Builder 4 or higher 411 | COMPILER5_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher 412 | COMPILER6_UP Defined when compiling with Delphi 6 or C++Builder 6 or higher 413 | COMPILER7_UP Defined when compiling with Delphi 7 414 | COMPILER8_UP Defined when compiling with Delphi 8 415 | COMPILER9_UP Defined when compiling with Delphi Personalities of BDS 3.0 416 | COMPILER10_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher 417 | COMPILER11_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher 418 | COMPILER12_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher 419 | COMPILER14_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 or higher 420 | COMPILER15_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 or higher 421 | COMPILER16_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 or higher 422 | COMPILER17_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 or higher 423 | COMPILER18_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 11.0 or higher 424 | COMPILER19_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 12.0 or higher 425 | COMPILER20_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 14.0 or higher 426 | COMPILER21_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 15.0 or higher 427 | COMPILER22_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 16.0 or higher 428 | COMPILER23_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 17.0 or higher 429 | COMPILER24_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 18.0 or higher 430 | COMPILER25_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 19.0 or higher 431 | 432 | 433 | - RTL Versions 434 | 435 | Use e.g. following to determine the exact RTL version since version 14.0: 436 | {$IFDEF CONDITIONALEXPRESSIONS} 437 | {$IF Declared(RTLVersion) and (RTLVersion >= 14.2)} 438 | // code for Delphi 6.02 or higher, Kylix 2 or higher, C++Builder 6 or higher 439 | ... 440 | {$IFEND} 441 | {$ENDIF} 442 | 443 | Directive Description 444 | ------------------------------------------------------------------------------ 445 | RTL80_UP Defined when compiling with Delphi 1 or higher 446 | RTL90_UP Defined when compiling with Delphi 2 or higher 447 | RTL93_UP Defined when compiling with C++Builder 1 or higher 448 | RTL100_UP Defined when compiling with Delphi 3 or higher 449 | RTL110_UP Defined when compiling with C++Builder 3 or higher 450 | RTL120_UP Defined when compiling with Delphi 4 or higher 451 | RTL125_UP Defined when compiling with C++Builder 4 or higher 452 | RTL130_UP Defined when compiling with Delphi 5 or C++Builder 5 or higher 453 | RTL140_UP Defined when compiling with Delphi 6, Kylix 1, 2 or 3 or C++Builder 6 or higher 454 | RTL150_UP Defined when compiling with Delphi 7 or higher 455 | RTL160_UP Defined when compiling with Delphi 8 or higher 456 | RTL170_UP Defined when compiling with Delphi Personalities of BDS 3.0 or higher 457 | RTL180_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 4.0 or higher 458 | RTL185_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 5.0 or higher 459 | RTL190_UP Defined when compiling with Delphi.NET of BDS 5.0 or higher 460 | RTL200_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 6.0 or higher 461 | RTL210_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 7.0 or higher 462 | RTL220_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 or higher 463 | RTL230_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 9.0 or higher 464 | RTL240_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 10.0 or higher 465 | RTL250_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 11.0 or higher 466 | RTL260_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 12.0 or higher 467 | RTL270_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 14.0 or higher 468 | RTL280_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 15.0 or higher 469 | RTL290_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 16.0 or higher 470 | RTL300_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 17.0 or higher 471 | RTL310_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 18.0 or higher 472 | RTL320_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 19.0 or higher 473 | 474 | 475 | - CLR Versions 476 | 477 | Directive Description 478 | ------------------------------------------------------------------------------ 479 | CLR Defined when compiling for .NET 480 | CLR10 Defined when compiling for .NET 1.0 (may be overriden by FORCE_CLR10) 481 | CLR10_UP Defined when compiling for .NET 1.0 or higher 482 | CLR11 Defined when compiling for .NET 1.1 (may be overriden by FORCE_CLR11) 483 | CLR11_UP Defined when compiling for .NET 1.1 or higher 484 | CLR20 Defined when compiling for .NET 2.0 (may be overriden by FORCE_CLR20) 485 | CLR20_UP Defined when compiling for .NET 2.0 or higher 486 | 487 | 488 | - Feature Directives 489 | 490 | The features directives are used to test if the compiler supports specific 491 | features, such as method overloading, and adjust the sources accordingly. Use 492 | of these directives is preferred over the use of the DELPHI and COMPILER 493 | directives. 494 | 495 | Directive Description 496 | ------------------------------------------------------------------------------ 497 | SUPPORTS_CONSTPARAMS Compiler supports const parameters (D1+) 498 | SUPPORTS_SINGLE Compiler supports the Single type (D1+) 499 | SUPPORTS_DOUBLE Compiler supports the Double type (D1+) 500 | SUPPORTS_EXTENDED Compiler supports the Extended type (D1+) 501 | SUPPORTS_CURRENCY Compiler supports the Currency type (D2+) 502 | SUPPORTS_THREADVAR Compiler supports threadvar declarations (D2+) 503 | SUPPORTS_OUTPARAMS Compiler supports out parameters (D3+) 504 | SUPPORTS_VARIANT Compiler supports variant (D2+) 505 | SUPPORTS_WIDECHAR Compiler supports the WideChar type (D2+) 506 | SUPPORTS_WIDESTRING Compiler supports the WideString type (D3+/BCB3+) 507 | SUPPORTS_INTERFACE Compiler supports interfaces (D3+/BCB3+) 508 | SUPPORTS_DISPINTERFACE Compiler supports dispatch interfaces (D3+/BCB3+) 509 | SUPPORTS_DISPID Compiler supports dispatch ids (D3+/BCB3+/FPC) 510 | SUPPORTS_EXTSYM Compiler supports the $EXTERNALSYM directive (D4+/BCB3+) 511 | SUPPORTS_NODEFINE Compiler supports the $NODEFINE directive (D4+/BCB3+) 512 | SUPPORTS_LONGWORD Compiler supports the LongWord type (unsigned 32 bit) (D4+/BCB4+) 513 | SUPPORTS_INT64 Compiler supports the Int64 type (D4+/BCB4+) 514 | SUPPORTS_UINT64 Compiler supports the UInt64 type (D7+) 515 | SUPPORTS_DYNAMICARRAYS Compiler supports dynamic arrays (D4+/BCB4+) 516 | SUPPORTS_DEFAULTPARAMS Compiler supports default parameters (D4+/BCB4+) 517 | SUPPORTS_OVERLOAD Compiler supports overloading (D4+/BCB4+) 518 | SUPPORTS_IMPLEMENTS Compiler supports implements (D4+/BCB4+) 519 | SUPPORTS_DEPRECATED Compiler supports the deprecated directive (D6+/BCB6+) 520 | SUPPORTS_PLATFORM Compiler supports the platform directive (D6+/BCB6+) 521 | SUPPORTS_LIBRARY Compiler supports the library directive (D6+/BCB6+/FPC) 522 | SUPPORTS_LOCAL Compiler supports the local directive (D6+/BCB6+) 523 | SUPPORTS_SETPEFLAGS Compiler supports the SetPEFlags directive (D6+/BCB6+) 524 | SUPPORTS_EXPERIMENTAL_WARNINGS Compiler supports the WARN SYMBOL_EXPERIMENTAL and WARN UNIT_EXPERIMENTAL directives (D6+/BCB6+) 525 | SUPPORTS_INLINE Compiler supports the inline directive (D9+/FPC) 526 | SUPPORTS_FOR_IN Compiler supports for in loops (D9+) 527 | SUPPORTS_NESTED_CONSTANTS Compiler supports nested constants (D9+) 528 | SUPPORTS_NESTED_TYPES Compiler supports nested types (D9+) 529 | SUPPORTS_REGION Compiler supports the REGION and ENDREGION directives (D9+) 530 | SUPPORTS_ENHANCED_RECORDS Compiler supports class [operator|function|procedure] for record types (D9.NET, D10+) 531 | SUPPORTS_CLASS_FIELDS Compiler supports class fields (D9.NET, D10+) 532 | SUPPORTS_CLASS_HELPERS Compiler supports class helpers (D9.NET, D10+) 533 | SUPPORTS_CLASS_OPERATORS Compiler supports class operators (D9.NET, D10+) 534 | SUPPORTS_CLASS_CTORDTORS Compiler supports class contructors/destructors (D14+) 535 | SUPPORTS_STRICT Compiler supports strict keyword (D9.NET, D10+) 536 | SUPPORTS_STATIC Compiler supports static keyword (D9.NET, D10+) 537 | SUPPORTS_FINAL Compiler supports final keyword (D9.NET, D10+) 538 | SUPPORTS_METHODINFO Compiler supports the METHODINFO directives (D10+) 539 | SUPPORTS_GENERICS Compiler supports generic implementations (D11.NET, D12+) 540 | SUPPORTS_DEPRECATED_DETAILS Compiler supports additional text for the deprecated directive (D11.NET, D12+) 541 | ACCEPT_DEPRECATED Compiler supports or ignores the deprecated directive (D6+/BCB6+/FPC) 542 | ACCEPT_PLATFORM Compiler supports or ignores the platform directive (D6+/BCB6+/FPC) 543 | ACCEPT_LIBRARY Compiler supports or ignores the library directive (D6+/BCB6+) 544 | SUPPORTS_CUSTOMVARIANTS Compiler supports custom variants (D6+/BCB6+) 545 | SUPPORTS_VARARGS Compiler supports varargs (D6+/BCB6+) 546 | SUPPORTS_ENUMVALUE Compiler supports assigning ordinalities to values of enums (D6+/BCB6+) 547 | SUPPORTS_DEPRECATED_WARNINGS Compiler supports deprecated warnings (D6+/BCB6+) 548 | SUPPORTS_LIBRARY_WARNINGS Compiler supports library warnings (D6+/BCB6+) 549 | SUPPORTS_PLATFORM_WARNINGS Compiler supports platform warnings (D6+/BCB6+) 550 | SUPPORTS_UNSAFE_WARNINGS Compiler supports unsafe warnings (D7) 551 | SUPPORTS_WEAKPACKAGEUNIT Compiler supports the WEAKPACKAGEUNIT directive 552 | SUPPORTS_COMPILETIME_MESSAGES Compiler supports the MESSAGE directive 553 | SUPPORTS_PACKAGES Compiler supports Packages 554 | HAS_UNIT_LIBC Unit Libc exists (Kylix, FPC on Linux/x86) 555 | HAS_UNIT_RTLCONSTS Unit RTLConsts exists (D6+/BCB6+/FPC) 556 | HAS_UNIT_TYPES Unit Types exists (D6+/BCB6+/FPC) 557 | HAS_UNIT_VARIANTS Unit Variants exists (D6+/BCB6+/FPC) 558 | HAS_UNIT_STRUTILS Unit StrUtils exists (D6+/BCB6+/FPC) 559 | HAS_UNIT_DATEUTILS Unit DateUtils exists (D6+/BCB6+/FPC) 560 | HAS_UNIT_CONTNRS Unit contnrs exists (D6+/BCB6+/FPC) 561 | HAS_UNIT_HTTPPROD Unit HTTPProd exists (D9+) 562 | HAS_UNIT_GIFIMG Unit GifImg exists (D11+) 563 | HAS_UNIT_ANSISTRINGS Unit AnsiStrings exists (D12+) 564 | HAS_UNIT_PNGIMAGE Unit PngImage exists (D12+) 565 | HAS_UNIT_CHARACTER Unit Character exists (D12+) 566 | XPLATFORM_RTL The RTL supports crossplatform function names (e.g. RaiseLastOSError) (D6+/BCB6+/FPC) 567 | SUPPORTS_UNICODE string type is aliased to an unicode string (WideString or UnicodeString) (DX.NET, D12+) 568 | SUPPORTS_UNICODE_STRING Compiler supports UnicodeString (D12+) 569 | SUPPORTS_INT_ALIASES Types Int8, Int16, Int32, UInt8, UInt16 and UInt32 are defined in the unit System (D12+) 570 | HAS_UNIT_RTTI Unit RTTI is available (D14+) 571 | SUPPORTS_CAST_INTERFACE_TO_OBJ The compiler supports casts from interfaces to objects (D14+) 572 | SUPPORTS_DELAYED_LOADING The compiler generates stubs for delaying imported function loads (D14+) 573 | HAS_UNIT_REGULAREXPRESSIONSAPI Unit RegularExpressionsAPI is available (D15+) 574 | HAS_UNIT_SYSTEM_UITYPES Unit System.UITypes is available (D16+) 575 | HAS_UNIT_SYSTEM_ACTIONS Unit System.Actions is available (D17+) 576 | DEPRECATED_SYSUTILS_ANSISTRINGS AnsiString functions from SysUtils are deprecated and moved to System.AnsiStrings (D18+) 577 | HAS_PROPERTY_STYLEELEMENTS TControl has a StyleElements property (D17+) 578 | HAS_AUTOMATIC_DB_FIELDS Database fields are automatically created/refreshed (D20+) 579 | HAS_EARGUMENTEXCEPTION Exception class EArgumentException is available (D14+) 580 | HAS_ENOTIMPLEMENTED Exception class ENotImplemented is available (D15+) 581 | HAS_UNIT_VCL_THEMES Unit Vcl.Themes is available (D16+) 582 | HAS_UNIT_UXTHEME Unit (Vcl.)UxTheme is available (D7+) 583 | HAS_EXCEPTION_STACKTRACE Exception class has the StackTrace propery (D12+) 584 | 585 | 586 | - Compiler Settings 587 | 588 | The compiler settings directives indicate whether a specific compiler setting 589 | is in effect. This facilitates changing compiler settings locally in a more 590 | compact and readible manner. 591 | 592 | Directive Description 593 | ------------------------------------------------------------------------------ 594 | ALIGN_ON Compiling in the A+ state (no alignment) 595 | BOOLEVAL_ON Compiling in the B+ state (complete boolean evaluation) 596 | ASSERTIONS_ON Compiling in the C+ state (assertions on) 597 | DEBUGINFO_ON Compiling in the D+ state (debug info generation on) 598 | IMPORTEDDATA_ON Compiling in the G+ state (creation of imported data references) 599 | LONGSTRINGS_ON Compiling in the H+ state (string defined as AnsiString) 600 | IOCHECKS_ON Compiling in the I+ state (I/O checking enabled) 601 | WRITEABLECONST_ON Compiling in the J+ state (typed constants can be modified) 602 | LOCALSYMBOLS Compiling in the L+ state (local symbol generation) 603 | LOCALSYMBOLS_ON Alias of LOCALSYMBOLS 604 | TYPEINFO_ON Compiling in the M+ state (RTTI generation on) 605 | OPTIMIZATION_ON Compiling in the O+ state (code optimization on) 606 | OPENSTRINGS_ON Compiling in the P+ state (variable string parameters are openstrings) 607 | OVERFLOWCHECKS_ON Compiling in the Q+ state (overflow checing on) 608 | RANGECHECKS_ON Compiling in the R+ state (range checking on) 609 | TYPEDADDRESS_ON Compiling in the T+ state (pointers obtained using the @ operator are typed) 610 | SAFEDIVIDE_ON Compiling in the U+ state (save FDIV instruction through RTL emulation) 611 | VARSTRINGCHECKS_ON Compiling in the V+ state (type checking of shortstrings) 612 | STACKFRAMES_ON Compiling in the W+ state (generation of stack frames) 613 | EXTENDEDSYNTAX_ON Compiling in the X+ state (Delphi extended syntax enabled) 614 | *) 615 | 616 | {$DEFINE BORLAND} 617 | 618 | { Set FreePascal to Delphi mode } 619 | {$IFDEF FPC} 620 | {$MODE DELPHI} 621 | {$ASMMODE Intel} 622 | {$UNDEF BORLAND} 623 | {$DEFINE CPUASM} 624 | // FPC defines CPU32, CPU64 and Unix automatically 625 | {$ENDIF} 626 | 627 | {$IFDEF BORLAND} 628 | {$IFDEF LINUX} 629 | {$DEFINE KYLIX} 630 | {$ENDIF LINUX} 631 | {$IFNDEF CLR} 632 | {$IFNDEF CPUX86} 633 | // CPUX86 is not defined, which means it most likely is a 64 bits compiler. 634 | // However, this is only the case if either of two other symbols are defined: 635 | // http://docwiki.embarcadero.com/RADStudio/Seattle/en/Conditional_compilation_%28Delphi%29 636 | {$DEFINE CPU64} 637 | {$DEFINE DELPHI64_TEMPORARY} 638 | {$IFNDEF CPUX64} 639 | {$IFNDEF CPU64BITS} 640 | {$DEFINE CPU386} // None of the two 64-bits symbols are defined, assume this is 32-bit 641 | {$DEFINE CPU32} 642 | {$UNDEF CPU64} 643 | {$UNDEF DELPHI64_TEMPORARY} 644 | {$ENDIF ~CPU64BITS} 645 | {$ENDIF ~CPUX64} 646 | {$ELSE ~CPUX86} 647 | {$DEFINE CPU386} 648 | {$DEFINE CPU32} 649 | {$ENDIF ~CPUX86} 650 | 651 | // The ASSEMBLER symbol appeared with Delphi 7 652 | {$IFNDEF COMPILER7_UP} 653 | {$DEFINE CPUASM} 654 | {$ELSE} 655 | {$IFDEF ASSEMBLER} 656 | {$DEFINE CPUASM} 657 | {$ENDIF ASSEMBLER} 658 | {$ENDIF ~COMPILER7_UP} 659 | {$ENDIF ~CLR} 660 | {$ENDIF BORLAND} 661 | 662 | {------------------------------------------------------------------------------} 663 | { VERXXX to COMPILERX, DELPHIX and BCBX mappings } 664 | {------------------------------------------------------------------------------} 665 | 666 | {$IFDEF BORLAND} 667 | {$IFDEF KYLIX} 668 | {$I kylix.inc} // FPC incompatible stuff 669 | {$ELSE ~KYLIX} 670 | 671 | {$DEFINE UNKNOWN_COMPILER_VERSION} 672 | 673 | {$IFDEF VER80} 674 | {$DEFINE COMPILER1} 675 | {$DEFINE DELPHI1} 676 | {$DEFINE DELPHICOMPILER1} 677 | {$DEFINE RTL80_UP} 678 | {$UNDEF UNKNOWN_COMPILER_VERSION} 679 | {$ENDIF} 680 | 681 | {$IFDEF VER90} 682 | {$DEFINE COMPILER2} 683 | {$DEFINE DELPHI2} 684 | {$DEFINE DELPHICOMPILER2} 685 | {$DEFINE RTL90_UP} 686 | {$UNDEF UNKNOWN_COMPILER_VERSION} 687 | {$ENDIF} 688 | 689 | {$IFDEF VER93} 690 | {$DEFINE COMPILER2} 691 | {$DEFINE BCB1} 692 | {$DEFINE BCB} 693 | {$DEFINE RTL93_UP} 694 | {$UNDEF UNKNOWN_COMPILER_VERSION} 695 | {$ENDIF} 696 | 697 | {$IFDEF VER100} 698 | {$DEFINE COMPILER3} 699 | {$DEFINE DELPHI3} 700 | {$DEFINE DELPHICOMPILER3} 701 | {$DEFINE RTL100_UP} 702 | {$UNDEF UNKNOWN_COMPILER_VERSION} 703 | {$ENDIF} 704 | 705 | {$IFDEF VER110} 706 | {$DEFINE COMPILER35} 707 | {$DEFINE BCB3} 708 | {$DEFINE BCB} 709 | {$DEFINE RTL110_UP} 710 | {$UNDEF UNKNOWN_COMPILER_VERSION} 711 | {$ENDIF} 712 | 713 | {$IFDEF VER120} 714 | {$DEFINE COMPILER4} 715 | {$DEFINE DELPHI4} 716 | {$DEFINE DELPHICOMPILER4} 717 | {$DEFINE RTL120_UP} 718 | {$UNDEF UNKNOWN_COMPILER_VERSION} 719 | {$ENDIF} 720 | 721 | {$IFDEF VER125} 722 | {$DEFINE COMPILER4} 723 | {$DEFINE BCB4} 724 | {$DEFINE BCB} 725 | {$DEFINE RTL125_UP} 726 | {$UNDEF UNKNOWN_COMPILER_VERSION} 727 | {$ENDIF} 728 | 729 | {$IFDEF VER130} 730 | {$DEFINE COMPILER5} 731 | {$IFDEF BCB} 732 | {$DEFINE BCB5} 733 | {$ELSE} 734 | {$DEFINE DELPHI5} 735 | {$DEFINE DELPHICOMPILER5} 736 | {$ENDIF} 737 | {$DEFINE RTL130_UP} 738 | {$UNDEF UNKNOWN_COMPILER_VERSION} 739 | {$ENDIF} 740 | 741 | {$IFDEF VER140} 742 | {$DEFINE COMPILER6} 743 | {$IFDEF BCB} 744 | {$DEFINE BCB6} 745 | {$ELSE} 746 | {$DEFINE DELPHI6} 747 | {$DEFINE DELPHICOMPILER6} 748 | {$ENDIF} 749 | {$DEFINE RTL140_UP} 750 | {$UNDEF UNKNOWN_COMPILER_VERSION} 751 | {$ENDIF} 752 | 753 | {$IFDEF VER150} 754 | {$DEFINE COMPILER7} 755 | {$DEFINE DELPHI7} 756 | {$DEFINE DELPHICOMPILER7} 757 | {$DEFINE RTL150_UP} 758 | {$UNDEF UNKNOWN_COMPILER_VERSION} 759 | {$ENDIF} 760 | 761 | {$IFDEF VER160} 762 | {$DEFINE BDS2} 763 | {$DEFINE BDS} 764 | {$IFDEF CLR} 765 | {$DEFINE CLR10} 766 | {$ENDIF CLR} 767 | {$DEFINE COMPILER8} 768 | {$DEFINE DELPHI8} 769 | {$DEFINE DELPHICOMPILER8} 770 | {$DEFINE RTL160_UP} 771 | {$UNDEF UNKNOWN_COMPILER_VERSION} 772 | {$ENDIF} 773 | 774 | {$IFDEF VER170} 775 | {$DEFINE BDS3} 776 | {$DEFINE BDS} 777 | {$IFDEF CLR} 778 | {$DEFINE CLR11} 779 | {$ENDIF CLR} 780 | {$DEFINE COMPILER9} 781 | {$DEFINE DELPHI9} 782 | {$DEFINE DELPHI2005} // synonym to DELPHI9 783 | {$DEFINE DELPHICOMPILER9} 784 | {$DEFINE RTL170_UP} 785 | {$UNDEF UNKNOWN_COMPILER_VERSION} 786 | {$ENDIF} 787 | 788 | {$IFDEF VER180} 789 | {$DEFINE BDS} 790 | {$IFDEF CLR} 791 | {$DEFINE CLR11} 792 | {$ENDIF CLR} 793 | {$IFDEF VER185} 794 | {$DEFINE BDS5} 795 | {$DEFINE COMPILER11} 796 | {$IFDEF BCB} 797 | {$DEFINE BCB11} 798 | {$ELSE} 799 | {$DEFINE DELPHI11} 800 | {$DEFINE DELPHI2007} // synonym to DELPHI11 801 | {$DEFINE DELPHICOMPILER11} 802 | {$ENDIF} 803 | {$DEFINE RTL185_UP} 804 | {$ELSE ~~VER185} 805 | {$DEFINE BDS4} 806 | {$DEFINE COMPILER10} 807 | {$IFDEF BCB} 808 | {$DEFINE BCB10} 809 | {$ELSE} 810 | {$DEFINE DELPHI10} 811 | {$DEFINE DELPHI2006} // synonym to DELPHI10 812 | {$DEFINE DELPHICOMPILER10} 813 | {$ENDIF} 814 | {$DEFINE RTL180_UP} 815 | {$ENDIF ~VER185} 816 | {$UNDEF UNKNOWN_COMPILER_VERSION} 817 | {$ENDIF} 818 | 819 | {$IFDEF VER190} // Delphi 2007 for .NET 820 | {$DEFINE BDS} 821 | {$DEFINE BDS5} 822 | {$IFDEF CLR} 823 | {$DEFINE CLR20} 824 | {$ENDIF CLR} 825 | {$DEFINE COMPILER11} 826 | {$DEFINE DELPHI11} 827 | {$DEFINE DELPHI2007} // synonym to DELPHI11 828 | {$DEFINE DELPHICOMPILER11} 829 | {$DEFINE RTL190_UP} 830 | {$UNDEF UNKNOWN_COMPILER_VERSION} 831 | {$ENDIF VER190} 832 | 833 | {$IFDEF VER200} // RAD Studio 2009 834 | {$DEFINE BDS} 835 | {$DEFINE BDS6} 836 | {$IFDEF CLR} 837 | {$DEFINE CLR20} 838 | {$ENDIF CLR} 839 | {$DEFINE COMPILER12} 840 | {$IFDEF BCB} 841 | {$DEFINE BCB12} 842 | {$ELSE} 843 | {$DEFINE DELPHI12} 844 | {$DEFINE DELPHI2009} // synonym to DELPHI12 845 | {$DEFINE DELPHICOMPILER12} 846 | {$ENDIF BCB} 847 | {$IFDEF CLR} 848 | {$DEFINE RTL190_UP} 849 | {$ELSE} 850 | {$DEFINE RTL200_UP} 851 | {$ENDIF} 852 | {$UNDEF UNKNOWN_COMPILER_VERSION} 853 | {$ENDIF VER200} 854 | 855 | {$IFDEF VER210} // RAD Studio 2010 856 | {$DEFINE BDS} 857 | {$DEFINE BDS7} 858 | {$DEFINE COMPILER14} 859 | {$IFDEF BCB} 860 | {$DEFINE BCB14} 861 | {$ELSE} 862 | {$DEFINE DELPHI14} 863 | {$DEFINE DELPHI2010} // synonym to DELPHI14 864 | {$DEFINE DELPHICOMPILER14} 865 | {$ENDIF BCB} 866 | {$DEFINE RTL210_UP} 867 | {$UNDEF UNKNOWN_COMPILER_VERSION} 868 | {$ENDIF VER210} 869 | 870 | {$IFDEF VER220} // RAD Studio XE 871 | {$DEFINE BDS} 872 | {$DEFINE BDS8} 873 | {$DEFINE COMPILER15} 874 | {$IFDEF BCB} 875 | {$DEFINE BCB15} 876 | {$ELSE} 877 | {$DEFINE DELPHI15} 878 | {$DEFINE DELPHIXE} // synonym to DELPHI15 879 | {$DEFINE DELPHICOMPILER15} 880 | {$ENDIF BCB} 881 | {$DEFINE RTL220_UP} 882 | {$UNDEF UNKNOWN_COMPILER_VERSION} 883 | {$ENDIF VER220} 884 | 885 | {$IFDEF VER230} // RAD Studio XE2 886 | {$DEFINE BDS} 887 | {$DEFINE BDS9} 888 | {$DEFINE COMPILER16} 889 | {$IFDEF BCB} 890 | {$DEFINE BCB16} 891 | {$ELSE} 892 | {$DEFINE DELPHI16} 893 | {$DEFINE DELPHIXE2} // synonym to DELPHI16 894 | {$DEFINE DELPHICOMPILER16} 895 | {$ENDIF BCB} 896 | {$DEFINE RTL230_UP} 897 | {$UNDEF UNKNOWN_COMPILER_VERSION} 898 | {$ENDIF VER230} 899 | 900 | {$IFDEF VER240} // RAD Studio XE3 901 | {$DEFINE BDS} 902 | {$DEFINE BDS10} 903 | {$DEFINE COMPILER17} 904 | {$IFDEF BCB} 905 | {$DEFINE BCB17} 906 | {$ELSE} 907 | {$DEFINE DELPHI17} 908 | {$DEFINE DELPHIXE3} // synonym to DELPHI17 909 | {$DEFINE DELPHICOMPILER17} 910 | {$ENDIF BCB} 911 | {$DEFINE RTL240_UP} 912 | {$UNDEF UNKNOWN_COMPILER_VERSION} 913 | {$ENDIF VER240} 914 | 915 | {$IFDEF VER250} // RAD Studio XE4 916 | {$DEFINE BDS} 917 | {$DEFINE BDS11} 918 | {$DEFINE COMPILER18} 919 | {$IFDEF BCB} 920 | {$DEFINE BCB18} 921 | {$ELSE} 922 | {$DEFINE DELPHI18} 923 | {$DEFINE DELPHIXE4} // synonym to DELPHI18 924 | {$DEFINE DELPHICOMPILER18} 925 | {$ENDIF BCB} 926 | {$DEFINE RTL250_UP} 927 | {$UNDEF UNKNOWN_COMPILER_VERSION} 928 | {$ENDIF VER250} 929 | 930 | {$IFDEF VER260} // RAD Studio XE5 931 | {$DEFINE BDS} 932 | {$DEFINE BDS12} 933 | {$DEFINE COMPILER19} 934 | {$IFDEF BCB} 935 | {$DEFINE BCB19} 936 | {$ELSE} 937 | {$DEFINE DELPHI19} 938 | {$DEFINE DELPHIXE5} // synonym to DELPHI19 939 | {$DEFINE DELPHICOMPILER19} 940 | {$ENDIF BCB} 941 | {$DEFINE RTL260_UP} 942 | {$UNDEF UNKNOWN_COMPILER_VERSION} 943 | {$ENDIF VER260} 944 | 945 | {$IFDEF VER270} // RAD Studio XE6 946 | {$DEFINE BDS} 947 | {$DEFINE BDS14} 948 | {$DEFINE COMPILER20} 949 | {$IFDEF BCB} 950 | {$DEFINE BCB20} 951 | {$ELSE} 952 | {$DEFINE DELPHI20} 953 | {$DEFINE DELPHIXE6} // synonym to DELPHI20 954 | {$DEFINE DELPHICOMPILER20} 955 | {$ENDIF BCB} 956 | {$DEFINE RTL270_UP} 957 | {$UNDEF UNKNOWN_COMPILER_VERSION} 958 | {$ENDIF VER270} 959 | 960 | {$IFDEF VER280} // RAD Studio XE7 961 | {$DEFINE BDS} 962 | {$DEFINE BDS15} 963 | {$DEFINE COMPILER21} 964 | {$IFDEF BCB} 965 | {$DEFINE BCB21} 966 | {$ELSE} 967 | {$DEFINE DELPHI21} 968 | {$DEFINE DELPHIXE7} // synonym to DELPHI21 969 | {$DEFINE DELPHICOMPILER21} 970 | {$ENDIF BCB} 971 | {$DEFINE RTL280_UP} 972 | {$UNDEF UNKNOWN_COMPILER_VERSION} 973 | {$ENDIF VER280} 974 | 975 | {$IFDEF VER290} // RAD Studio XE8 976 | {$DEFINE BDS} 977 | {$DEFINE BDS16} 978 | {$DEFINE COMPILER22} 979 | {$IFDEF BCB} 980 | {$DEFINE BCB22} 981 | {$ELSE} 982 | {$DEFINE DELPHI22} 983 | {$DEFINE DELPHIXE8} // synonym to DELPHI22 984 | {$DEFINE DELPHICOMPILER22} 985 | {$ENDIF BCB} 986 | {$DEFINE RTL290_UP} 987 | {$UNDEF UNKNOWN_COMPILER_VERSION} 988 | {$ENDIF VER290} 989 | 990 | {$IFDEF VER300} // RAD Studio 10 991 | {$DEFINE BDS} 992 | {$DEFINE BDS17} 993 | {$DEFINE COMPILER23} 994 | {$IFDEF BCB} 995 | {$DEFINE BCB23} 996 | {$ELSE} 997 | {$DEFINE DELPHI23} 998 | {$DEFINE DELPHIX_SEATTLE} // synonym to DELPHI23 999 | {$DEFINE DELPHICOMPILER23} 1000 | {$ENDIF BCB} 1001 | {$DEFINE RTL300_UP} 1002 | {$UNDEF UNKNOWN_COMPILER_VERSION} 1003 | {$ENDIF VER300} 1004 | 1005 | {$IFDEF VER310} // RAD Studio 10.1 1006 | {$DEFINE BDS} 1007 | {$DEFINE BDS18} 1008 | {$DEFINE COMPILER24} 1009 | {$IFDEF BCB} 1010 | {$DEFINE BCB24} 1011 | {$ELSE} 1012 | {$DEFINE DELPHI24} 1013 | {$DEFINE DELPHIX_BERLIN} // synonym to DELPHI24 1014 | {$DEFINE DELPHICOMPILER24} 1015 | {$ENDIF BCB} 1016 | {$DEFINE RTL310_UP} 1017 | {$UNDEF UNKNOWN_COMPILER_VERSION} 1018 | {$ENDIF VER310} 1019 | 1020 | {$IFDEF VER320} // RAD Studio 10.2 1021 | {$DEFINE BDS} 1022 | {$DEFINE BDS19} 1023 | {$DEFINE COMPILER25} 1024 | {$IFDEF BCB} 1025 | {$DEFINE BCB25} 1026 | {$ELSE} 1027 | {$DEFINE DELPHI25} 1028 | {$DEFINE DELPHICOMPILER25} 1029 | {$ENDIF BCB} 1030 | {$DEFINE RTL320_UP} 1031 | {$UNDEF UNKNOWN_COMPILER_VERSION} 1032 | {$ENDIF VER320} 1033 | 1034 | {$IFDEF UNKNOWN_COMPILER_VERSION} // adjust for newer version (always use latest version) 1035 | {$DEFINE BDS} 1036 | {$DEFINE BDS19} 1037 | {$DEFINE COMPILER25} 1038 | {$IFDEF BCB} 1039 | {$DEFINE BCB25} 1040 | {$ELSE} 1041 | {$DEFINE DELPHI25} 1042 | {$DEFINE DELPHICOMPILER25} 1043 | {$ENDIF BCB} 1044 | {$DEFINE RTL320_UP} 1045 | {$UNDEF UNKNOWN_COMPILER_VERSION} 1046 | {$ENDIF} 1047 | 1048 | {$ENDIF ~KYLIX} 1049 | 1050 | {$IFDEF BCB} 1051 | {$DEFINE CPPBUILDER} 1052 | {$DEFINE BCBCOMPILER} 1053 | {$ELSE ~BCB} 1054 | {$DEFINE DELPHI} 1055 | {$DEFINE DELPHICOMPILER} 1056 | {$ENDIF ~BCB} 1057 | 1058 | {$ENDIF BORLAND} 1059 | 1060 | {------------------------------------------------------------------------------} 1061 | { DELPHIX_UP from DELPHIX mappings } 1062 | {------------------------------------------------------------------------------} 1063 | 1064 | {$IFDEF DELPHI25} {$DEFINE DELPHI25_UP} {$ENDIF} 1065 | {$IFDEF DELPHI24} {$DEFINE DELPHI24_UP} {$ENDIF} 1066 | {$IFDEF DELPHI23} {$DEFINE DELPHI23_UP} {$ENDIF} 1067 | {$IFDEF DELPHI22} {$DEFINE DELPHI22_UP} {$ENDIF} 1068 | {$IFDEF DELPHI21} {$DEFINE DELPHI21_UP} {$ENDIF} 1069 | {$IFDEF DELPHI20} {$DEFINE DELPHI20_UP} {$ENDIF} 1070 | {$IFDEF DELPHI19} {$DEFINE DELPHI19_UP} {$ENDIF} 1071 | {$IFDEF DELPHI18} {$DEFINE DELPHI18_UP} {$ENDIF} 1072 | {$IFDEF DELPHI17} {$DEFINE DELPHI17_UP} {$ENDIF} 1073 | {$IFDEF DELPHI16} {$DEFINE DELPHI16_UP} {$ENDIF} 1074 | {$IFDEF DELPHI15} {$DEFINE DELPHI15_UP} {$ENDIF} 1075 | {$IFDEF DELPHI14} {$DEFINE DELPHI14_UP} {$ENDIF} 1076 | {$IFDEF DELPHI12} {$DEFINE DELPHI12_UP} {$ENDIF} 1077 | {$IFDEF DELPHI11} {$DEFINE DELPHI11_UP} {$ENDIF} 1078 | {$IFDEF DELPHI10} {$DEFINE DELPHI10_UP} {$ENDIF} 1079 | {$IFDEF DELPHI9} {$DEFINE DELPHI9_UP} {$ENDIF} 1080 | {$IFDEF DELPHI8} {$DEFINE DELPHI8_UP} {$ENDIF} 1081 | {$IFDEF DELPHI7} {$DEFINE DELPHI7_UP} {$ENDIF} 1082 | {$IFDEF DELPHI6} {$DEFINE DELPHI6_UP} {$ENDIF} 1083 | {$IFDEF DELPHI5} {$DEFINE DELPHI5_UP} {$ENDIF} 1084 | {$IFDEF DELPHI4} {$DEFINE DELPHI4_UP} {$ENDIF} 1085 | {$IFDEF DELPHI3} {$DEFINE DELPHI3_UP} {$ENDIF} 1086 | {$IFDEF DELPHI2} {$DEFINE DELPHI2_UP} {$ENDIF} 1087 | {$IFDEF DELPHI1} {$DEFINE DELPHI1_UP} {$ENDIF} 1088 | 1089 | {------------------------------------------------------------------------------} 1090 | { DELPHIX_UP from DELPHIX_UP mappings } 1091 | {------------------------------------------------------------------------------} 1092 | 1093 | {$IFDEF DELPHI25_UP} 1094 | {$DEFINE DELPHI24_UP} 1095 | {$ENDIF} 1096 | 1097 | {$IFDEF DELPHI24_UP} 1098 | {$DEFINE DELPHIX_BERLIN_UP} // synonym to DELPHI24_UP 1099 | {$DEFINE DELPHI23_UP} 1100 | {$ENDIF} 1101 | 1102 | {$IFDEF DELPHI23_UP} 1103 | {$DEFINE DELPHIX_SEATTLE_UP} // synonym to DELPHI23_UP 1104 | {$DEFINE DELPHI22_UP} 1105 | {$ENDIF} 1106 | 1107 | {$IFDEF DELPHI22_UP} 1108 | {$DEFINE DELPHIXE8_UP} // synonym to DELPHI22_UP 1109 | {$DEFINE DELPHI21_UP} 1110 | {$ENDIF} 1111 | 1112 | {$IFDEF DELPHI21_UP} 1113 | {$DEFINE DELPHIXE7_UP} // synonym to DELPHI21_UP 1114 | {$DEFINE DELPHI20_UP} 1115 | {$ENDIF} 1116 | 1117 | {$IFDEF DELPHI20_UP} 1118 | {$DEFINE DELPHIXE6_UP} // synonym to DELPHI20_UP 1119 | {$DEFINE DELPHI19_UP} 1120 | {$ENDIF} 1121 | 1122 | {$IFDEF DELPHI19_UP} 1123 | {$DEFINE DELPHIXE5_UP} // synonym to DELPHI19_UP 1124 | {$DEFINE DELPHI18_UP} 1125 | {$ENDIF} 1126 | 1127 | {$IFDEF DELPHI18_UP} 1128 | {$DEFINE DELPHIXE4_UP} // synonym to DELPHI18_UP 1129 | {$DEFINE DELPHI17_UP} 1130 | {$ENDIF} 1131 | 1132 | {$IFDEF DELPHI17_UP} 1133 | {$DEFINE DELPHIXE3_UP} // synonym to DELPHI17_UP 1134 | {$DEFINE DELPHI16_UP} 1135 | {$ENDIF} 1136 | 1137 | {$IFDEF DELPHI16_UP} 1138 | {$DEFINE DELPHIXE2_UP} // synonym to DELPHI16_UP 1139 | {$DEFINE DELPHI15_UP} 1140 | {$ENDIF} 1141 | 1142 | {$IFDEF DELPHI15_UP} 1143 | {$DEFINE DELPHIXE_UP} // synonym to DELPHI15_UP 1144 | {$DEFINE DELPHI14_UP} 1145 | {$ENDIF} 1146 | 1147 | {$IFDEF DELPHI14_UP} 1148 | {$DEFINE DELPHI2010_UP} // synonym to DELPHI14_UP 1149 | {$DEFINE DELPHI12_UP} 1150 | {$ENDIF} 1151 | 1152 | {$IFDEF DELPHI12_UP} 1153 | {$DEFINE DELPHI2009_UP} // synonym to DELPHI12_UP 1154 | {$DEFINE DELPHI11_UP} 1155 | {$ENDIF} 1156 | 1157 | {$IFDEF DELPHI11_UP} 1158 | {$DEFINE DELPHI2007_UP} // synonym to DELPHI11_UP 1159 | {$DEFINE DELPHI10_UP} 1160 | {$ENDIF} 1161 | 1162 | {$IFDEF DELPHI10_UP} 1163 | {$DEFINE DELPHI2006_UP} // synonym to DELPHI10_UP 1164 | {$DEFINE DELPHI9_UP} 1165 | {$ENDIF} 1166 | 1167 | {$IFDEF DELPHI9_UP} 1168 | {$DEFINE DELPHI2005_UP} // synonym to DELPHI9_UP 1169 | {$DEFINE DELPHI8_UP} 1170 | {$ENDIF} 1171 | 1172 | {$IFDEF DELPHI8_UP} {$DEFINE DELPHI7_UP} {$ENDIF} 1173 | {$IFDEF DELPHI7_UP} {$DEFINE DELPHI6_UP} {$ENDIF} 1174 | {$IFDEF DELPHI6_UP} {$DEFINE DELPHI5_UP} {$ENDIF} 1175 | {$IFDEF DELPHI5_UP} {$DEFINE DELPHI4_UP} {$ENDIF} 1176 | {$IFDEF DELPHI4_UP} {$DEFINE DELPHI3_UP} {$ENDIF} 1177 | {$IFDEF DELPHI3_UP} {$DEFINE DELPHI2_UP} {$ENDIF} 1178 | {$IFDEF DELPHI2_UP} {$DEFINE DELPHI1_UP} {$ENDIF} 1179 | 1180 | {------------------------------------------------------------------------------} 1181 | { BCBX_UP from BCBX mappings } 1182 | {------------------------------------------------------------------------------} 1183 | 1184 | {$IFDEF BCB25} {$DEFINE BCB25_UP} {$ENDIF} 1185 | {$IFDEF BCB24} {$DEFINE BCB24_UP} {$ENDIF} 1186 | {$IFDEF BCB23} {$DEFINE BCB23_UP} {$ENDIF} 1187 | {$IFDEF BCB22} {$DEFINE BCB22_UP} {$ENDIF} 1188 | {$IFDEF BCB21} {$DEFINE BCB21_UP} {$ENDIF} 1189 | {$IFDEF BCB20} {$DEFINE BCB20_UP} {$ENDIF} 1190 | {$IFDEF BCB19} {$DEFINE BCB19_UP} {$ENDIF} 1191 | {$IFDEF BCB18} {$DEFINE BCB18_UP} {$ENDIF} 1192 | {$IFDEF BCB17} {$DEFINE BCB17_UP} {$ENDIF} 1193 | {$IFDEF BCB16} {$DEFINE BCB16_UP} {$ENDIF} 1194 | {$IFDEF BCB15} {$DEFINE BCB15_UP} {$ENDIF} 1195 | {$IFDEF BCB14} {$DEFINE BCB14_UP} {$ENDIF} 1196 | {$IFDEF BCB12} {$DEFINE BCB12_UP} {$ENDIF} 1197 | {$IFDEF BCB11} {$DEFINE BCB11_UP} {$ENDIF} 1198 | {$IFDEF BCB10} {$DEFINE BCB10_UP} {$ENDIF} 1199 | {$IFDEF BCB6} {$DEFINE BCB6_UP} {$ENDIF} 1200 | {$IFDEF BCB5} {$DEFINE BCB5_UP} {$ENDIF} 1201 | {$IFDEF BCB4} {$DEFINE BCB4_UP} {$ENDIF} 1202 | {$IFDEF BCB3} {$DEFINE BCB3_UP} {$ENDIF} 1203 | {$IFDEF BCB1} {$DEFINE BCB1_UP} {$ENDIF} 1204 | 1205 | {------------------------------------------------------------------------------} 1206 | { BCBX_UP from BCBX_UP mappings } 1207 | {------------------------------------------------------------------------------} 1208 | 1209 | {$IFDEF BCB25_UP} {$DEFINE BCB24_UP} {$ENDIF} 1210 | {$IFDEF BCB24_UP} {$DEFINE BCB23_UP} {$ENDIF} 1211 | {$IFDEF BCB23_UP} {$DEFINE BCB22_UP} {$ENDIF} 1212 | {$IFDEF BCB22_UP} {$DEFINE BCB21_UP} {$ENDIF} 1213 | {$IFDEF BCB21_UP} {$DEFINE BCB20_UP} {$ENDIF} 1214 | {$IFDEF BCB20_UP} {$DEFINE BCB19_UP} {$ENDIF} 1215 | {$IFDEF BCB19_UP} {$DEFINE BCB18_UP} {$ENDIF} 1216 | {$IFDEF BCB18_UP} {$DEFINE BCB17_UP} {$ENDIF} 1217 | {$IFDEF BCB17_UP} {$DEFINE BCB16_UP} {$ENDIF} 1218 | {$IFDEF BCB16_UP} {$DEFINE BCB15_UP} {$ENDIF} 1219 | {$IFDEF BCB15_UP} {$DEFINE BCB14_UP} {$ENDIF} 1220 | {$IFDEF BCB14_UP} {$DEFINE BCB12_UP} {$ENDIF} 1221 | {$IFDEF BCB12_UP} {$DEFINE BCB11_UP} {$ENDIF} 1222 | {$IFDEF BCB11_UP} {$DEFINE BCB10_UP} {$ENDIF} 1223 | {$IFDEF BCB10_UP} {$DEFINE BCB6_UP} {$ENDIF} 1224 | {$IFDEF BCB6_UP} {$DEFINE BCB5_UP} {$ENDIF} 1225 | {$IFDEF BCB5_UP} {$DEFINE BCB4_UP} {$ENDIF} 1226 | {$IFDEF BCB4_UP} {$DEFINE BCB3_UP} {$ENDIF} 1227 | {$IFDEF BCB3_UP} {$DEFINE BCB1_UP} {$ENDIF} 1228 | 1229 | {------------------------------------------------------------------------------} 1230 | { BDSX_UP from BDSX mappings } 1231 | {------------------------------------------------------------------------------} 1232 | 1233 | {$IFDEF BDS19} {$DEFINE BDS19_UP} {$ENDIF} 1234 | {$IFDEF BDS18} {$DEFINE BDS18_UP} {$ENDIF} 1235 | {$IFDEF BDS17} {$DEFINE BDS17_UP} {$ENDIF} 1236 | {$IFDEF BDS16} {$DEFINE BDS16_UP} {$ENDIF} 1237 | {$IFDEF BDS15} {$DEFINE BDS15_UP} {$ENDIF} 1238 | {$IFDEF BDS14} {$DEFINE BDS14_UP} {$ENDIF} 1239 | {$IFDEF BDS12} {$DEFINE BDS12_UP} {$ENDIF} 1240 | {$IFDEF BDS11} {$DEFINE BDS11_UP} {$ENDIF} 1241 | {$IFDEF BDS10} {$DEFINE BDS10_UP} {$ENDIF} 1242 | {$IFDEF BDS9} {$DEFINE BDS9_UP} {$ENDIF} 1243 | {$IFDEF BDS8} {$DEFINE BDS8_UP} {$ENDIF} 1244 | {$IFDEF BDS7} {$DEFINE BDS7_UP} {$ENDIF} 1245 | {$IFDEF BDS6} {$DEFINE BDS6_UP} {$ENDIF} 1246 | {$IFDEF BDS5} {$DEFINE BDS5_UP} {$ENDIF} 1247 | {$IFDEF BDS4} {$DEFINE BDS4_UP} {$ENDIF} 1248 | {$IFDEF BDS3} {$DEFINE BDS3_UP} {$ENDIF} 1249 | {$IFDEF BDS2} {$DEFINE BDS2_UP} {$ENDIF} 1250 | 1251 | {------------------------------------------------------------------------------} 1252 | { BDSX_UP from BDSX_UP mappings } 1253 | {------------------------------------------------------------------------------} 1254 | 1255 | {$IFDEF BDS19_UP} {$DEFINE BDS18_UP} {$ENDIF} 1256 | {$IFDEF BDS18_UP} {$DEFINE BDS17_UP} {$ENDIF} 1257 | {$IFDEF BDS17_UP} {$DEFINE BDS16_UP} {$ENDIF} 1258 | {$IFDEF BDS16_UP} {$DEFINE BDS15_UP} {$ENDIF} 1259 | {$IFDEF BDS15_UP} {$DEFINE BDS14_UP} {$ENDIF} 1260 | {$IFDEF BDS14_UP} {$DEFINE BDS12_UP} {$ENDIF} 1261 | {$IFDEF BDS12_UP} {$DEFINE BDS11_UP} {$ENDIF} 1262 | {$IFDEF BDS11_UP} {$DEFINE BDS10_UP} {$ENDIF} 1263 | {$IFDEF BDS10_UP} {$DEFINE BDS9_UP} {$ENDIF} 1264 | {$IFDEF BDS9_UP} {$DEFINE BDS8_UP} {$ENDIF} 1265 | {$IFDEF BDS8_UP} {$DEFINE BDS7_UP} {$ENDIF} 1266 | {$IFDEF BDS7_UP} {$DEFINE BDS6_UP} {$ENDIF} 1267 | {$IFDEF BDS6_UP} {$DEFINE BDS5_UP} {$ENDIF} 1268 | {$IFDEF BDS5_UP} {$DEFINE BDS4_UP} {$ENDIF} 1269 | {$IFDEF BDS4_UP} {$DEFINE BDS3_UP} {$ENDIF} 1270 | {$IFDEF BDS3_UP} {$DEFINE BDS2_UP} {$ENDIF} 1271 | 1272 | {------------------------------------------------------------------------------} 1273 | { DELPHICOMPILERX_UP from DELPHICOMPILERX mappings } 1274 | {------------------------------------------------------------------------------} 1275 | 1276 | {$IFDEF DELPHICOMPILER25} {$DEFINE DELPHICOMPILER25_UP} {$ENDIF} 1277 | {$IFDEF DELPHICOMPILER24} {$DEFINE DELPHICOMPILER24_UP} {$ENDIF} 1278 | {$IFDEF DELPHICOMPILER23} {$DEFINE DELPHICOMPILER23_UP} {$ENDIF} 1279 | {$IFDEF DELPHICOMPILER22} {$DEFINE DELPHICOMPILER22_UP} {$ENDIF} 1280 | {$IFDEF DELPHICOMPILER21} {$DEFINE DELPHICOMPILER21_UP} {$ENDIF} 1281 | {$IFDEF DELPHICOMPILER20} {$DEFINE DELPHICOMPILER20_UP} {$ENDIF} 1282 | {$IFDEF DELPHICOMPILER19} {$DEFINE DELPHICOMPILER19_UP} {$ENDIF} 1283 | {$IFDEF DELPHICOMPILER18} {$DEFINE DELPHICOMPILER18_UP} {$ENDIF} 1284 | {$IFDEF DELPHICOMPILER17} {$DEFINE DELPHICOMPILER17_UP} {$ENDIF} 1285 | {$IFDEF DELPHICOMPILER16} {$DEFINE DELPHICOMPILER16_UP} {$ENDIF} 1286 | {$IFDEF DELPHICOMPILER15} {$DEFINE DELPHICOMPILER15_UP} {$ENDIF} 1287 | {$IFDEF DELPHICOMPILER14} {$DEFINE DELPHICOMPILER14_UP} {$ENDIF} 1288 | {$IFDEF DELPHICOMPILER12} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} 1289 | {$IFDEF DELPHICOMPILER11} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} 1290 | {$IFDEF DELPHICOMPILER10} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} 1291 | {$IFDEF DELPHICOMPILER9} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} 1292 | {$IFDEF DELPHICOMPILER8} {$DEFINE DELPHICOMPILER8_UP} {$ENDIF} 1293 | {$IFDEF DELPHICOMPILER7} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} 1294 | {$IFDEF DELPHICOMPILER6} {$DEFINE DELPHICOMPILER6_UP} {$ENDIF} 1295 | {$IFDEF DELPHICOMPILER5} {$DEFINE DELPHICOMPILER5_UP} {$ENDIF} 1296 | {$IFDEF DELPHICOMPILER4} {$DEFINE DELPHICOMPILER4_UP} {$ENDIF} 1297 | {$IFDEF DELPHICOMPILER3} {$DEFINE DELPHICOMPILER3_UP} {$ENDIF} 1298 | {$IFDEF DELPHICOMPILER2} {$DEFINE DELPHICOMPILER2_UP} {$ENDIF} 1299 | {$IFDEF DELPHICOMPILER1} {$DEFINE DELPHICOMPILER1_UP} {$ENDIF} 1300 | 1301 | {------------------------------------------------------------------------------} 1302 | { DELPHICOMPILERX_UP from DELPHICOMPILERX_UP mappings } 1303 | {------------------------------------------------------------------------------} 1304 | 1305 | {$IFDEF DELPHICOMPILER25_UP} {$DEFINE DELPHICOMPILER24_UP} {$ENDIF} 1306 | {$IFDEF DELPHICOMPILER24_UP} {$DEFINE DELPHICOMPILER23_UP} {$ENDIF} 1307 | {$IFDEF DELPHICOMPILER23_UP} {$DEFINE DELPHICOMPILER22_UP} {$ENDIF} 1308 | {$IFDEF DELPHICOMPILER22_UP} {$DEFINE DELPHICOMPILER21_UP} {$ENDIF} 1309 | {$IFDEF DELPHICOMPILER21_UP} {$DEFINE DELPHICOMPILER20_UP} {$ENDIF} 1310 | {$IFDEF DELPHICOMPILER20_UP} {$DEFINE DELPHICOMPILER19_UP} {$ENDIF} 1311 | {$IFDEF DELPHICOMPILER19_UP} {$DEFINE DELPHICOMPILER18_UP} {$ENDIF} 1312 | {$IFDEF DELPHICOMPILER18_UP} {$DEFINE DELPHICOMPILER17_UP} {$ENDIF} 1313 | {$IFDEF DELPHICOMPILER17_UP} {$DEFINE DELPHICOMPILER16_UP} {$ENDIF} 1314 | {$IFDEF DELPHICOMPILER16_UP} {$DEFINE DELPHICOMPILER15_UP} {$ENDIF} 1315 | {$IFDEF DELPHICOMPILER15_UP} {$DEFINE DELPHICOMPILER14_UP} {$ENDIF} 1316 | {$IFDEF DELPHICOMPILER14_UP} {$DEFINE DELPHICOMPILER12_UP} {$ENDIF} 1317 | {$IFDEF DELPHICOMPILER12_UP} {$DEFINE DELPHICOMPILER11_UP} {$ENDIF} 1318 | {$IFDEF DELPHICOMPILER11_UP} {$DEFINE DELPHICOMPILER10_UP} {$ENDIF} 1319 | {$IFDEF DELPHICOMPILER10_UP} {$DEFINE DELPHICOMPILER9_UP} {$ENDIF} 1320 | {$IFDEF DELPHICOMPILER9_UP} {$DEFINE DELPHICOMPILER8_UP} {$ENDIF} 1321 | {$IFDEF DELPHICOMPILER8_UP} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} 1322 | {$IFDEF DELPHICOMPILER8_UP} {$DEFINE DELPHICOMPILER7_UP} {$ENDIF} 1323 | {$IFDEF DELPHICOMPILER7_UP} {$DEFINE DELPHICOMPILER6_UP} {$ENDIF} 1324 | {$IFDEF DELPHICOMPILER6_UP} {$DEFINE DELPHICOMPILER5_UP} {$ENDIF} 1325 | {$IFDEF DELPHICOMPILER5_UP} {$DEFINE DELPHICOMPILER4_UP} {$ENDIF} 1326 | {$IFDEF DELPHICOMPILER4_UP} {$DEFINE DELPHICOMPILER3_UP} {$ENDIF} 1327 | {$IFDEF DELPHICOMPILER3_UP} {$DEFINE DELPHICOMPILER2_UP} {$ENDIF} 1328 | {$IFDEF DELPHICOMPILER2_UP} {$DEFINE DELPHICOMPILER1_UP} {$ENDIF} 1329 | 1330 | {------------------------------------------------------------------------------} 1331 | { COMPILERX_UP from COMPILERX mappings } 1332 | {------------------------------------------------------------------------------} 1333 | 1334 | {$IFDEF COMPILER25} {$DEFINE COMPILER25_UP} {$ENDIF} 1335 | {$IFDEF COMPILER24} {$DEFINE COMPILER24_UP} {$ENDIF} 1336 | {$IFDEF COMPILER23} {$DEFINE COMPILER23_UP} {$ENDIF} 1337 | {$IFDEF COMPILER22} {$DEFINE COMPILER22_UP} {$ENDIF} 1338 | {$IFDEF COMPILER21} {$DEFINE COMPILER21_UP} {$ENDIF} 1339 | {$IFDEF COMPILER20} {$DEFINE COMPILER20_UP} {$ENDIF} 1340 | {$IFDEF COMPILER19} {$DEFINE COMPILER19_UP} {$ENDIF} 1341 | {$IFDEF COMPILER18} {$DEFINE COMPILER18_UP} {$ENDIF} 1342 | {$IFDEF COMPILER17} {$DEFINE COMPILER17_UP} {$ENDIF} 1343 | {$IFDEF COMPILER16} {$DEFINE COMPILER16_UP} {$ENDIF} 1344 | {$IFDEF COMPILER15} {$DEFINE COMPILER15_UP} {$ENDIF} 1345 | {$IFDEF COMPILER14} {$DEFINE COMPILER14_UP} {$ENDIF} 1346 | {$IFDEF COMPILER12} {$DEFINE COMPILER12_UP} {$ENDIF} 1347 | {$IFDEF COMPILER11} {$DEFINE COMPILER11_UP} {$ENDIF} 1348 | {$IFDEF COMPILER10} {$DEFINE COMPILER10_UP} {$ENDIF} 1349 | {$IFDEF COMPILER9} {$DEFINE COMPILER9_UP} {$ENDIF} 1350 | {$IFDEF COMPILER8} {$DEFINE COMPILER8_UP} {$ENDIF} 1351 | {$IFDEF COMPILER7} {$DEFINE COMPILER7_UP} {$ENDIF} 1352 | {$IFDEF COMPILER6} {$DEFINE COMPILER6_UP} {$ENDIF} 1353 | {$IFDEF COMPILER5} {$DEFINE COMPILER5_UP} {$ENDIF} 1354 | {$IFDEF COMPILER4} {$DEFINE COMPILER4_UP} {$ENDIF} 1355 | {$IFDEF COMPILER35} {$DEFINE COMPILER35_UP} {$ENDIF} 1356 | {$IFDEF COMPILER3} {$DEFINE COMPILER3_UP} {$ENDIF} 1357 | {$IFDEF COMPILER2} {$DEFINE COMPILER2_UP} {$ENDIF} 1358 | {$IFDEF COMPILER1} {$DEFINE COMPILER1_UP} {$ENDIF} 1359 | 1360 | {------------------------------------------------------------------------------} 1361 | { COMPILERX_UP from COMPILERX_UP mappings } 1362 | {------------------------------------------------------------------------------} 1363 | 1364 | {$IFDEF COMPILER25_UP} {$DEFINE COMPILER24_UP} {$ENDIF} 1365 | {$IFDEF COMPILER24_UP} {$DEFINE COMPILER23_UP} {$ENDIF} 1366 | {$IFDEF COMPILER23_UP} {$DEFINE COMPILER22_UP} {$ENDIF} 1367 | {$IFDEF COMPILER22_UP} {$DEFINE COMPILER21_UP} {$ENDIF} 1368 | {$IFDEF COMPILER21_UP} {$DEFINE COMPILER20_UP} {$ENDIF} 1369 | {$IFDEF COMPILER20_UP} {$DEFINE COMPILER19_UP} {$ENDIF} 1370 | {$IFDEF COMPILER19_UP} {$DEFINE COMPILER18_UP} {$ENDIF} 1371 | {$IFDEF COMPILER18_UP} {$DEFINE COMPILER17_UP} {$ENDIF} 1372 | {$IFDEF COMPILER17_UP} {$DEFINE COMPILER16_UP} {$ENDIF} 1373 | {$IFDEF COMPILER16_UP} {$DEFINE COMPILER15_UP} {$ENDIF} 1374 | {$IFDEF COMPILER15_UP} {$DEFINE COMPILER14_UP} {$ENDIF} 1375 | {$IFDEF COMPILER14_UP} {$DEFINE COMPILER12_UP} {$ENDIF} 1376 | {$IFDEF COMPILER12_UP} {$DEFINE COMPILER11_UP} {$ENDIF} 1377 | {$IFDEF COMPILER11_UP} {$DEFINE COMPILER10_UP} {$ENDIF} 1378 | {$IFDEF COMPILER10_UP} {$DEFINE COMPILER9_UP} {$ENDIF} 1379 | {$IFDEF COMPILER9_UP} {$DEFINE COMPILER8_UP} {$ENDIF} 1380 | {$IFDEF COMPILER8_UP} {$DEFINE COMPILER7_UP} {$ENDIF} 1381 | {$IFDEF COMPILER7_UP} {$DEFINE COMPILER6_UP} {$ENDIF} 1382 | {$IFDEF COMPILER6_UP} {$DEFINE COMPILER5_UP} {$ENDIF} 1383 | {$IFDEF COMPILER5_UP} {$DEFINE COMPILER4_UP} {$ENDIF} 1384 | {$IFDEF COMPILER4_UP} {$DEFINE COMPILER35_UP} {$ENDIF} 1385 | {$IFDEF COMPILER35_UP} {$DEFINE COMPILER3_UP} {$ENDIF} 1386 | {$IFDEF COMPILER3_UP} {$DEFINE COMPILER2_UP} {$ENDIF} 1387 | {$IFDEF COMPILER2_UP} {$DEFINE COMPILER1_UP} {$ENDIF} 1388 | 1389 | {------------------------------------------------------------------------------} 1390 | { RTLX_UP from RTLX_UP mappings } 1391 | {------------------------------------------------------------------------------} 1392 | 1393 | {$IFDEF RTL320_UP} {$DEFINE RTL310_UP} {$ENDIF} 1394 | {$IFDEF RTL310_UP} {$DEFINE RTL300_UP} {$ENDIF} 1395 | {$IFDEF RTL300_UP} {$DEFINE RTL290_UP} {$ENDIF} 1396 | {$IFDEF RTL290_UP} {$DEFINE RTL280_UP} {$ENDIF} 1397 | {$IFDEF RTL280_UP} {$DEFINE RTL270_UP} {$ENDIF} 1398 | {$IFDEF RTL270_UP} {$DEFINE RTL260_UP} {$ENDIF} 1399 | {$IFDEF RTL260_UP} {$DEFINE RTL250_UP} {$ENDIF} 1400 | {$IFDEF RTL250_UP} {$DEFINE RTL240_UP} {$ENDIF} 1401 | {$IFDEF RTL240_UP} {$DEFINE RTL230_UP} {$ENDIF} 1402 | {$IFDEF RTL230_UP} {$DEFINE RTL220_UP} {$ENDIF} 1403 | {$IFDEF RTL220_UP} {$DEFINE RTL210_UP} {$ENDIF} 1404 | {$IFDEF RTL210_UP} {$DEFINE RTL200_UP} {$ENDIF} 1405 | {$IFDEF RTL200_UP} {$DEFINE RTL190_UP} {$ENDIF} 1406 | {$IFDEF RTL190_UP} {$DEFINE RTL185_UP} {$ENDIF} 1407 | {$IFDEF RTL185_UP} {$DEFINE RTL180_UP} {$ENDIF} 1408 | {$IFDEF RTL180_UP} {$DEFINE RTL170_UP} {$ENDIF} 1409 | {$IFDEF RTL170_UP} {$DEFINE RTL160_UP} {$ENDIF} 1410 | {$IFDEF RTL160_UP} {$DEFINE RTL150_UP} {$ENDIF} 1411 | {$IFDEF RTL150_UP} {$DEFINE RTL145_UP} {$ENDIF} 1412 | {$IFDEF RTL145_UP} {$DEFINE RTL142_UP} {$ENDIF} 1413 | {$IFDEF RTL142_UP} {$DEFINE RTL140_UP} {$ENDIF} 1414 | {$IFDEF RTL140_UP} {$DEFINE RTL130_UP} {$ENDIF} 1415 | {$IFDEF RTL130_UP} {$DEFINE RTL125_UP} {$ENDIF} 1416 | {$IFDEF RTL125_UP} {$DEFINE RTL120_UP} {$ENDIF} 1417 | {$IFDEF RTL120_UP} {$DEFINE RTL110_UP} {$ENDIF} 1418 | {$IFDEF RTL110_UP} {$DEFINE RTL100_UP} {$ENDIF} 1419 | {$IFDEF RTL100_UP} {$DEFINE RTL93_UP} {$ENDIF} 1420 | {$IFDEF RTL93_UP} {$DEFINE RTL90_UP} {$ENDIF} 1421 | {$IFDEF RTL90_UP} {$DEFINE RTL80_UP} {$ENDIF} 1422 | 1423 | {------------------------------------------------------------------------------} 1424 | { Check for CLR overrides of default detection } 1425 | {------------------------------------------------------------------------------} 1426 | 1427 | {$IFDEF CLR} 1428 | {$IFDEF FORCE_CLR10} 1429 | {$DEFINE CLR10} 1430 | {$UNDEF CLR11} 1431 | {$UNDEF CLR20} 1432 | {$ENDIF FORCE_CLR10} 1433 | 1434 | {$IFDEF FORCE_CLR11} 1435 | {$UNDEF CLR10} 1436 | {$DEFINE CLR11} 1437 | {$UNDEF CLR20} 1438 | {$ENDIF FORCE_CLR11} 1439 | 1440 | {$IFDEF FORCE_CLR20} 1441 | {$UNDEF CLR10} 1442 | {$UNDEF CLR11} 1443 | {$DEFINE CLR20} 1444 | {$ENDIF FORCE_CLR20} 1445 | {$ENDIF CLR} 1446 | 1447 | {------------------------------------------------------------------------------} 1448 | { CLRX from CLRX_UP mappings } 1449 | {------------------------------------------------------------------------------} 1450 | 1451 | {$IFDEF CLR10} {$DEFINE CLR10_UP} {$ENDIF} 1452 | {$IFDEF CLR11} {$DEFINE CLR11_UP} {$ENDIF} 1453 | {$IFDEF CLR20} {$DEFINE CLR20_UP} {$ENDIF} 1454 | 1455 | {------------------------------------------------------------------------------} 1456 | { CLRX_UP from CLRX_UP mappings } 1457 | {------------------------------------------------------------------------------} 1458 | 1459 | {$IFDEF CLR20_UP} {$DEFINE CLR11_UP} {$ENDIF} 1460 | {$IFDEF CLR11_UP} {$DEFINE CLR10_UP} {$ENDIF} 1461 | 1462 | {------------------------------------------------------------------------------} 1463 | 1464 | {$IFDEF DELPHICOMPILER} 1465 | {$DEFINE DELPHILANGUAGE} 1466 | {$ENDIF} 1467 | 1468 | {$IFDEF BCBCOMPILER} 1469 | {$DEFINE DELPHILANGUAGE} 1470 | {$ENDIF} 1471 | 1472 | {------------------------------------------------------------------------------} 1473 | { KYLIXX_UP from KYLIXX mappings } 1474 | {------------------------------------------------------------------------------} 1475 | 1476 | {$IFDEF KYLIX3} {$DEFINE KYLIX3_UP} {$ENDIF} 1477 | {$IFDEF KYLIX2} {$DEFINE KYLIX2_UP} {$ENDIF} 1478 | {$IFDEF KYLIX1} {$DEFINE KYLIX1_UP} {$ENDIF} 1479 | 1480 | {------------------------------------------------------------------------------} 1481 | { KYLIXX_UP from KYLIXX_UP mappings } 1482 | {------------------------------------------------------------------------------} 1483 | 1484 | {$IFDEF KYLIX3_UP} {$DEFINE KYLIX2_UP} {$ENDIF} 1485 | {$IFDEF KYLIX2_UP} {$DEFINE KYLIX1_UP} {$ENDIF} 1486 | 1487 | {------------------------------------------------------------------------------} 1488 | { Map COMPILERX_UP to friendly feature names } 1489 | {------------------------------------------------------------------------------} 1490 | 1491 | {$IFDEF FPC} 1492 | {$IFDEF VER1_0} 1493 | Please use FPC 2.0 or higher to compile this. 1494 | {$ELSE} 1495 | {$DEFINE SUPPORTS_OUTPARAMS} 1496 | {$DEFINE SUPPORTS_WIDECHAR} 1497 | {$DEFINE SUPPORTS_WIDESTRING} 1498 | {$IFDEF HASINTF} 1499 | {$DEFINE SUPPORTS_INTERFACE} 1500 | {$ENDIF} 1501 | {$IFDEF HASVARIANT} 1502 | {$DEFINE SUPPORTS_VARIANT} 1503 | {$ENDIF} 1504 | {$IFDEF FPC_HAS_TYPE_SINGLE} 1505 | {$DEFINE SUPPORTS_SINGLE} 1506 | {$ENDIF} 1507 | {$IFDEF FPC_HAS_TYPE_DOUBLE} 1508 | {$DEFINE SUPPORTS_DOUBLE} 1509 | {$ENDIF} 1510 | {$IFDEF FPC_HAS_TYPE_EXTENDED} 1511 | {$DEFINE SUPPORTS_EXTENDED} 1512 | {$ENDIF} 1513 | {$IFDEF HASCURRENCY} 1514 | {$DEFINE SUPPORTS_CURRENCY} 1515 | {$ENDIF} 1516 | {$DEFINE SUPPORTS_THREADVAR} 1517 | {$DEFINE SUPPORTS_CONSTPARAMS} 1518 | {$DEFINE SUPPORTS_LONGWORD} 1519 | {$DEFINE SUPPORTS_INT64} 1520 | {$DEFINE SUPPORTS_DYNAMICARRAYS} 1521 | {$DEFINE SUPPORTS_DEFAULTPARAMS} 1522 | {$DEFINE SUPPORTS_OVERLOAD} 1523 | {$DEFINE ACCEPT_DEPRECATED} // 2.2 also gives warnings 1524 | {$DEFINE ACCEPT_PLATFORM} // 2.2 also gives warnings 1525 | {$DEFINE ACCEPT_LIBRARY} 1526 | {$DEFINE SUPPORTS_EXTSYM} 1527 | {$DEFINE SUPPORTS_NODEFINE} 1528 | 1529 | {$DEFINE SUPPORTS_CUSTOMVARIANTS} 1530 | {$DEFINE SUPPORTS_VARARGS} 1531 | {$DEFINE SUPPORTS_ENUMVALUE} 1532 | {$IFDEF LINUX} 1533 | {$DEFINE HAS_UNIT_LIBC} 1534 | {$ENDIF LINUX} 1535 | {$DEFINE HAS_UNIT_CONTNRS} 1536 | {$DEFINE HAS_UNIT_TYPES} 1537 | {$DEFINE HAS_UNIT_VARIANTS} 1538 | {$DEFINE HAS_UNIT_STRUTILS} 1539 | {$DEFINE HAS_UNIT_DATEUTILS} 1540 | {$DEFINE HAS_UNIT_RTLCONSTS} 1541 | 1542 | {$DEFINE XPLATFORM_RTL} 1543 | 1544 | {$IFDEF VER2_2} 1545 | {$DEFINE SUPPORTS_DISPINTERFACE} 1546 | {$DEFINE SUPPORTS_IMPLEMENTS} 1547 | {$DEFINE SUPPORTS_DISPID} 1548 | {$ELSE} 1549 | {$UNDEF SUPPORTS_DISPINTERFACE} 1550 | {$UNDEF SUPPORTS_IMPLEMENTS} 1551 | {$endif} 1552 | {$UNDEF SUPPORTS_UNSAFE_WARNINGS} 1553 | {$ENDIF} 1554 | {$ENDIF FPC} 1555 | 1556 | {$IFDEF CLR} 1557 | {$DEFINE SUPPORTS_UNICODE} 1558 | {$ENDIF CLR} 1559 | 1560 | {$IFDEF COMPILER1_UP} 1561 | {$DEFINE SUPPORTS_CONSTPARAMS} 1562 | {$DEFINE SUPPORTS_SINGLE} 1563 | {$DEFINE SUPPORTS_DOUBLE} 1564 | {$DEFINE SUPPORTS_EXTENDED} 1565 | {$DEFINE SUPPORTS_PACKAGES} 1566 | {$ENDIF COMPILER1_UP} 1567 | 1568 | {$IFDEF COMPILER2_UP} 1569 | {$DEFINE SUPPORTS_CURRENCY} 1570 | {$DEFINE SUPPORTS_THREADVAR} 1571 | {$DEFINE SUPPORTS_VARIANT} 1572 | {$DEFINE SUPPORTS_WIDECHAR} 1573 | {$ENDIF COMPILER2_UP} 1574 | 1575 | {$IFDEF COMPILER3_UP} 1576 | {$DEFINE SUPPORTS_OUTPARAMS} 1577 | {$DEFINE SUPPORTS_WIDESTRING} 1578 | {$DEFINE SUPPORTS_INTERFACE} 1579 | {$DEFINE SUPPORTS_DISPINTERFACE} 1580 | {$DEFINE SUPPORTS_DISPID} 1581 | {$DEFINE SUPPORTS_WEAKPACKAGEUNIT} 1582 | {$ENDIF COMPILER3_UP} 1583 | 1584 | {$IFDEF COMPILER35_UP} 1585 | {$DEFINE SUPPORTS_EXTSYM} 1586 | {$DEFINE SUPPORTS_NODEFINE} 1587 | {$ENDIF COMPILER35_UP} 1588 | 1589 | {$IFDEF COMPILER4_UP} 1590 | {$DEFINE SUPPORTS_LONGWORD} 1591 | {$DEFINE SUPPORTS_INT64} 1592 | {$DEFINE SUPPORTS_DYNAMICARRAYS} 1593 | {$DEFINE SUPPORTS_DEFAULTPARAMS} 1594 | {$DEFINE SUPPORTS_OVERLOAD} 1595 | {$DEFINE SUPPORTS_IMPLEMENTS} 1596 | {$ENDIF COMPILER4_UP} 1597 | 1598 | {$IFDEF COMPILER6_UP} 1599 | {$DEFINE SUPPORTS_DEPRECATED} 1600 | {$DEFINE SUPPORTS_LIBRARY} 1601 | {$DEFINE SUPPORTS_PLATFORM} 1602 | {$DEFINE SUPPORTS_LOCAL} 1603 | {$DEFINE SUPPORTS_SETPEFLAGS} 1604 | {$DEFINE SUPPORTS_EXPERIMENTAL_WARNINGS} 1605 | {$DEFINE ACCEPT_DEPRECATED} 1606 | {$DEFINE ACCEPT_PLATFORM} 1607 | {$DEFINE ACCEPT_LIBRARY} 1608 | {$DEFINE SUPPORTS_DEPRECATED_WARNINGS} 1609 | {$DEFINE SUPPORTS_LIBRARY_WARNINGS} 1610 | {$DEFINE SUPPORTS_PLATFORM_WARNINGS} 1611 | {$DEFINE SUPPORTS_CUSTOMVARIANTS} 1612 | {$DEFINE SUPPORTS_VARARGS} 1613 | {$DEFINE SUPPORTS_ENUMVALUE} 1614 | {$DEFINE SUPPORTS_COMPILETIME_MESSAGES} 1615 | {$ENDIF COMPILER6_UP} 1616 | 1617 | {$IFDEF COMPILER7_UP} 1618 | {$DEFINE SUPPORTS_UNSAFE_WARNINGS} 1619 | {$DEFINE SUPPORTS_UINT64} 1620 | {$ENDIF COMPILER7_UP} 1621 | 1622 | {$IFDEF COMPILER9_UP} 1623 | {$DEFINE SUPPORTS_FOR_IN} 1624 | {$DEFINE SUPPORTS_INLINE} 1625 | {$DEFINE SUPPORTS_NESTED_CONSTANTS} 1626 | {$DEFINE SUPPORTS_NESTED_TYPES} 1627 | {$DEFINE SUPPORTS_REGION} 1628 | {$IFDEF CLR} 1629 | {$DEFINE SUPPORTS_ENHANCED_RECORDS} 1630 | {$DEFINE SUPPORTS_CLASS_FIELDS} 1631 | {$DEFINE SUPPORTS_CLASS_HELPERS} 1632 | {$DEFINE SUPPORTS_CLASS_OPERATORS} 1633 | {$DEFINE SUPPORTS_STRICT} 1634 | {$DEFINE SUPPORTS_STATIC} 1635 | {$DEFINE SUPPORTS_FINAL} 1636 | {$ENDIF CLR} 1637 | {$ENDIF COMPILER9_UP} 1638 | 1639 | {$IFDEF COMPILER10_UP} 1640 | {$DEFINE SUPPORTS_ENHANCED_RECORDS} 1641 | {$DEFINE SUPPORTS_CLASS_FIELDS} 1642 | {$DEFINE SUPPORTS_CLASS_HELPERS} 1643 | {$DEFINE SUPPORTS_CLASS_OPERATORS} 1644 | {$DEFINE SUPPORTS_STRICT} 1645 | {$DEFINE SUPPORTS_STATIC} 1646 | {$DEFINE SUPPORTS_FINAL} 1647 | {$DEFINE SUPPORTS_METHODINFO} 1648 | {$ENDIF COMPILER10_UP} 1649 | 1650 | {$IFDEF COMPILER11_UP} 1651 | {$IFDEF CLR} 1652 | {$DEFINE SUPPORTS_GENERICS} 1653 | {$DEFINE SUPPORTS_DEPRECATED_DETAILS} 1654 | {$ENDIF CLR} 1655 | {$ENDIF COMPILER11_UP} 1656 | 1657 | {$IFDEF COMPILER12_UP} 1658 | {$DEFINE SUPPORTS_GENERICS} 1659 | {$DEFINE SUPPORTS_DEPRECATED_DETAILS} 1660 | {$DEFINE SUPPORTS_INT_ALIASES} 1661 | {$IFNDEF CLR} 1662 | {$DEFINE SUPPORTS_UNICODE} 1663 | {$DEFINE SUPPORTS_UNICODE_STRING} 1664 | {$ENDIF CLR} 1665 | {$ENDIF COMPILER12_UP} 1666 | 1667 | {$IFDEF COMPILER14_UP} 1668 | {$DEFINE SUPPORTS_CLASS_CTORDTORS} 1669 | {$DEFINE HAS_UNIT_RTTI} 1670 | {$DEFINE SUPPORTS_CAST_INTERFACE_TO_OBJ} 1671 | {$DEFINE SUPPORTS_DELAYED_LOADING} 1672 | {$ENDIF COMPILER14_UP} 1673 | 1674 | {$IFDEF COMPILER16_UP} 1675 | {$DEFINE USE_64BIT_TYPES} 1676 | {$ENDIF COMPILER16_UP} 1677 | 1678 | {$IFDEF RTL130_UP} 1679 | {$DEFINE HAS_UNIT_CONTNRS} 1680 | {$ENDIF RTL130_UP} 1681 | 1682 | {$IFDEF RTL140_UP} 1683 | {$IFDEF LINUX} 1684 | {$DEFINE HAS_UNIT_LIBC} 1685 | {$ENDIF LINUX} 1686 | {$DEFINE HAS_UNIT_RTLCONSTS} 1687 | {$DEFINE HAS_UNIT_TYPES} 1688 | {$DEFINE HAS_UNIT_VARIANTS} 1689 | {$DEFINE HAS_UNIT_STRUTILS} 1690 | {$DEFINE HAS_UNIT_DATEUTILS} 1691 | {$DEFINE XPLATFORM_RTL} 1692 | {$ENDIF RTL140_UP} 1693 | 1694 | {$IFDEF RTL150_UP} 1695 | {$DEFINE HAS_UNIT_UXTHEME} 1696 | {$ENDIF RTL150_UP} 1697 | 1698 | {$IFDEF RTL170_UP} 1699 | {$DEFINE HAS_UNIT_HTTPPROD} 1700 | {$ENDIF RTL170_UP} 1701 | 1702 | {$IFDEF RTL185_UP} 1703 | {$DEFINE HAS_UNIT_GIFIMG} 1704 | {$ENDIF RTL185_UP} 1705 | 1706 | {$IFDEF RTL200_UP} 1707 | {$DEFINE HAS_UNIT_ANSISTRINGS} 1708 | {$DEFINE HAS_UNIT_PNGIMAGE} 1709 | {$DEFINE HAS_UNIT_CHARACTER} 1710 | {$DEFINE HAS_EXCEPTION_STACKTRACE} 1711 | {$ENDIF RTL200_UP} 1712 | 1713 | {$IFDEF RTL210_UP} 1714 | {$DEFINE HAS_EARGUMENTEXCEPTION} 1715 | {$ENDIF RTL210_UP} 1716 | 1717 | {$IFDEF RTL220_UP} 1718 | {$DEFINE HAS_UNIT_REGULAREXPRESSIONSAPI} 1719 | {$DEFINE HAS_ENOTIMPLEMENTED} 1720 | {$ENDIF RTL220_UP} 1721 | 1722 | {$IFDEF RTL230_UP} 1723 | {$DEFINE HAS_UNITSCOPE} 1724 | {$DEFINE HAS_UNIT_SYSTEM_UITYPES} 1725 | {$DEFINE HAS_UNIT_VCL_THEMES} 1726 | {$ENDIF RTL230_UP} 1727 | 1728 | {$IFDEF RTL240_UP} 1729 | {$DEFINE HAS_UNIT_SYSTEM_ACTIONS} 1730 | {$DEFINE HAS_PROPERTY_STYLEELEMENTS} 1731 | {$ENDIF RTL240_UP} 1732 | 1733 | {$IFDEF RTL250_UP} 1734 | {$DEFINE DEPRECATED_SYSUTILS_ANSISTRINGS} 1735 | {$ENDIF RTL250_UP} 1736 | 1737 | {$IFDEF RTL270_UP} 1738 | {$DEFINE HAS_AUTOMATIC_DB_FIELDS} 1739 | {$ENDIF RTL270_UP} 1740 | 1741 | {------------------------------------------------------------------------------} 1742 | { Cross-platform related defines } 1743 | {------------------------------------------------------------------------------} 1744 | 1745 | {$IFNDEF CPUASM} 1746 | {$DEFINE PUREPASCAL} 1747 | {$ENDIF ~CPUASM} 1748 | 1749 | {$IFDEF WIN32} 1750 | {$DEFINE MSWINDOWS} // predefined for D6+/BCB6+ 1751 | {$DEFINE Win32API} 1752 | {$ENDIF} 1753 | 1754 | {$IFDEF DELPHILANGUAGE} 1755 | {$IFDEF LINUX} 1756 | {$DEFINE UNIX} 1757 | {$ENDIF} 1758 | 1759 | {$IFNDEF CONSOLE} 1760 | {$IFDEF LINUX} 1761 | {$DEFINE VisualCLX} 1762 | {$ENDIF} 1763 | {$IFNDEF VisualCLX} 1764 | {$DEFINE VCL} 1765 | {$ENDIF} 1766 | {$ENDIF ~CONSOLE} 1767 | {$ENDIF DELPHILANGUAGE} 1768 | 1769 | {------------------------------------------------------------------------------} 1770 | { Compiler settings } 1771 | {------------------------------------------------------------------------------} 1772 | 1773 | {$IFOPT A+} {$DEFINE ALIGN_ON} {$ENDIF} 1774 | {$IFOPT B+} {$DEFINE BOOLEVAL_ON} {$ENDIF} 1775 | {$IFDEF COMPILER2_UP} 1776 | {$IFOPT C+} {$DEFINE ASSERTIONS_ON} {$ENDIF} 1777 | {$ENDIF} 1778 | {$IFOPT D+} {$DEFINE DEBUGINFO_ON} {$ENDIF} 1779 | {$IFOPT G+} {$DEFINE IMPORTEDDATA_ON} {$ENDIF} 1780 | {$IFDEF COMPILER2_UP} 1781 | {$IFOPT H+} {$DEFINE LONGSTRINGS_ON} {$ENDIF} 1782 | {$ENDIF} 1783 | 1784 | // Hints 1785 | {$IFOPT I+} {$DEFINE IOCHECKS_ON} {$ENDIF} 1786 | {$IFDEF COMPILER2_UP} 1787 | {$IFOPT J+} {$DEFINE WRITEABLECONST_ON} {$ENDIF} 1788 | {$ENDIF} 1789 | {$IFOPT L+} {$DEFINE LOCALSYMBOLS} {$DEFINE LOCALSYMBOLS_ON} {$ENDIF} 1790 | {$IFOPT M+} {$DEFINE TYPEINFO_ON} {$ENDIF} 1791 | {$IFOPT O+} {$DEFINE OPTIMIZATION_ON} {$ENDIF} 1792 | {$IFOPT P+} {$DEFINE OPENSTRINGS_ON} {$ENDIF} 1793 | {$IFOPT Q+} {$DEFINE OVERFLOWCHECKS_ON} {$ENDIF} 1794 | {$IFOPT R+} {$DEFINE RANGECHECKS_ON} {$ENDIF} 1795 | 1796 | // Real compatibility 1797 | {$IFOPT T+} {$DEFINE TYPEDADDRESS_ON} {$ENDIF} 1798 | {$IFOPT U+} {$DEFINE SAFEDIVIDE_ON} {$ENDIF} 1799 | {$IFOPT V+} {$DEFINE VARSTRINGCHECKS_ON} {$ENDIF} 1800 | {$IFOPT W+} {$DEFINE STACKFRAMES_ON} {$ENDIF} 1801 | 1802 | // Warnings 1803 | {$IFOPT X+} {$DEFINE EXTENDEDSYNTAX_ON} {$ENDIF} 1804 | 1805 | // for Delphi/BCB trial versions remove the point from the line below 1806 | {.$UNDEF SUPPORTS_WEAKPACKAGEUNIT} 1807 | 1808 | {$ENDIF ~JEDI_INC} 1809 | --------------------------------------------------------------------------------