JCL Help:Jcl.inc

From Project JEDI Wiki
Jump to navigationJump to search


Summary

The jcl.inc file is a source file that can be included by units written in object pascal: {$INCLUDE jcl.inc} or {$I jcl.inc}


Description

The JCL include files are located in the directory "jcl/source/include".

In addition to the symbols defined in jedi.inc, this file defines more compiler symbols to be used in conditional compilation. By including this file in your application source file, it allows conditional compilation for your code as well.

The JCL configuration can be customized for each supported version of Delphi/C++Builder and FreePascal. The following table contains the name of the configuration for each IDE version:

Configuration file IDE version
jcld6.inc Delphi 6
jclc6.inc C++Builder 6
jcld7.inc Delphi 7
jclcs1.inc C#Builder 1 (no runtime code, just JCL experts)
jcld8.inc Delphi8.net (no runtime code, just JCL experts)
jcld9.inc Delphi 2005
jcld10.inc Delphi 2006, C++Builder 2006 and BDS 2006
jcld11.inc Delphi 2007, C++Builder 2007 and RAD Studio 2007
jcld12.inc Delphi 2009, C++Builder 2009 and RAD Studio 2009
jcld14.inc Delphi 2010, C++Builder 2010 and RAD Studio 2010
jcld15.inc Delphi XE, C++Builder XE and RAD Studio XE
jclfpc.inc FreePascal and Lazarus


Note that the configuration files are overriden each time the JCL installer is executed.


The following symbols configure some JCL features:

Compiler symbol name Functionality and remarks
MATH_EXTENDED_PRECISION The type Float is aliased to Extended (
MATH_DOUBLE_PRECISION The type Float is aliased to Double
MATH_SINGLE_PRECISION The type Float is aliased to Single
MATH_EXT_EXTREMEVALUES Math functions takes care of infinites and NaN
HOOK_DLL_EXCEPTIONS JclHookExcept support for hooking exceptions from DLLs
THREADSAFE Enable threadsafe code (a little bit slower)
DROP_OBSOLETE_CODE Exclude obsolete code from compilation
UNITVERSIONING Support for Unit Version Info
DEBUG_NO_BINARY Disable the JDBG debug info source
DEBUG_NO_TD32 Disable the TD32 debug info source
DEBUG_NO_MAP Disable the MAP debug info source
DEBUG_NO_EXPORTS Disable the Exports debug info source
DEBUG_NO_SYMBOLS Disable the Symbols (based on DbgHlp.dll) debug info source
PCRE_STATICLINK Static link PCRE code into JCL binaries and into your applications
PCRE_LINKDLL PCRE code is statically bound to PCRE.dll
PCRE_LINKONREQUEST PCRE code is dynamically bound to PCRE.dll (default)
BZIP2_STATICLINK Static link BZIP2 code into JCL binaries and into your applications (default)
BZIP2_LINKDLL BZIP2 code is statically bound to BZIP2.dll
BZIP2_LINKONREQUEST BZIP2 code is dynamically bound to BZIP2.dll
ZLIB_STATICLINK Static link ZLIB code into JCL binaries and into your applications (default)
ZLIB_LINKDLL ZLIB code is statically bound to ZLIB.dll
ZLIB_LINKONREQUEST ZLIB code is dynamically bound to ZLIB.dll
UNICODE_SILENT_FAILURE Invalid character sequences are replaced by UnicodeReplacementChar, if not set an exception is raised
UNICODE_RAW_DATA Link raw (unzipped) Unicode Character Database into JCL binaries and into your applications (default)
UNICODE_ZLIB_DATA Link ZLIBed Unicode Character Database into JCL binaries and into your applications
UNICODE_BZIP2_DATA Link BZIP2ed Unicode Character Database into JCL binaries and into your applications
CONTAINER_ANSISTR String containers aliased to AnsiString containers (default for D2007 and older)
CONTAINER_WIDESTR String containers aliased to WideString containers
CONTAINER_UNICODESTR String containers aliased to UnicodeString containers (default for D2009 and newer, not supported for D2007 and older)
CONTAINER_NOSTR Do not define string containers
7ZIP_STATICLINK Static link 7ZIP code into JCL binaries and into your applications (not supported yet)
7ZIP_LINKDLL 7ZIP code is statically bound to 7z.dll
7ZIP_LINKONREQUEST 7ZIP code is dynamically bound to 7z.dll (default)


About

Navigation


Contribute to this help topic

This documentation wiki is based on the collaborative effort of Project JEDI users. Your edits are welcome in order to improve documentation quality: edit this page