<?xml version="1.0"?>
<!--

Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus 
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0 
International public license.

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
file://../../cc-by-sa-4-0.txt

Copyright (c) 1997-2023, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="lcl">
<!--
====================================================================
LCLVersion
====================================================================
-->
<module name="LCLVersion">
<short>Contains the version number constants for the LCL.</short>
<descr>
<p>
<file>lclversion.pas</file> contains the version number constants for the LCL.
They can be used at run-time to determine the LCL version, so LCL application
writers and component writers can offer different functionality or workarounds
for bugs and take the LCL version into account while choosing their algorithms
at run-time.
</p>
<p>
Likewise, these version constants can be used at compile time in conditional
expressions, such as <i>{$IF lcl_major&gt;0}</i>. These kinds of
expressions are supported in <i>{$mode delphi}</i> and <i>{$mode objfpc}</i>.
</p>
</descr>

<element name="lcl_fullversion">
<short>LCL full version.</short>
<descr>
<p>
The lcl_fullversion constant contains all version numbers, formatted with 2
digits and concatenated (leading zeros are omitted).
</p>
<p>
For example, if the LCL version is 2.2.4.1, lcl_fullversion will be 2020401.
</p>
</descr>
<seealso>lcl_version</seealso>
</element>

<element name="lcl_major">
<short>LCL major version.</short>
<descr>
<p>
Given a complete version string like 2.2.4, the lcl_major constant
contains the first number (2).
</p>
</descr>
<seealso/>
</element>

<element name="lcl_minor">
<short>LCL minor version.</short>
<descr>
<p>
Given a version string like 2.2.4, the lcl_minor constant
contains the second number (2).
</p>
<p>
<b>Please note:</b> Starting with LCL version 3.0, lcl_minor is incremented by 
1 for each new release or fixes branch. For example: 3.0, 3.1, 3.2, etc. An 
even minor version number, like 3.0 or 3.2, represents a general availability 
release. An odd minor version number no longer indicates that it is a 
development (or trunk) version. Instead, an odd minor version number like 3.1 
or 3.3 represents a fixes branch. For example: 3.1 would contain bug fixes 
for the 3.0 release and would be used as the basis for the 3.2 release. 
Development (or trunk) versions are always represented as minor version number 
99; i.e. 3.99 is the development branch for the future 4.0 release. Also, 
selected commits from this branch are cherry picked to the 3.X family.
</p>
</descr>
<seealso>lcl_version</seealso>
</element>

<element name="lcl_release">
<short>LCL release number.</short>
<descr>
<p>
Given a version string like 2.2.4, the lcl_release constant
contains the third number (4).
</p>
<p>
<b>Please note:</b> Starting with LCL 3.0, the release number is no longer 
used and will always contain 0 (zero). Releases are represented using the 
major and minor version numbers: 3.0, 3.1, 3.2, etc.
</p>
</descr>
<seealso>lcl_version</seealso>
</element>

<element name="lcl_patch">
<short>LCL patch version.</short>
<descr>
<p>
Given a complete version string like 2.2.4.1, the lcl_patch constant
contains the last number (1). If there is no fourth number, for example when 
the version string is 2.2.4, then lcl_patch is 0.
</p>
</descr>
<seealso>lcl_version</seealso>
</element>

<element name="lcl_version">
<short>LCL version string.</short>
<descr>Contains the LCL version string, e.g. 3.0.0.3</descr>
<seealso/>
</element>

</module>
<!-- LCLVersion -->
</package>
</fpdoc-descriptions>
