[Lazarus] Determining Laz/fpc version without using LCLVersion

Mark Morgan Lloyd markMLl.lazarus at telemetry.co.uk
Tue Jan 13 18:13:46 CET 2015


Werner Pamler wrote:
> Since there's still quite a lot of people out there using rather old 
> versions of Lazarus and fpc I began to extend fpspreadsheet such that it 
> can be used with versions down to Laz 1.0 / fpc 2.6.0. As I saw it's 
> only a few procedures that are missing. I added a unit "fpsFixes" to the 
> package into which I want to copy the missing code from newer versions. 
> Of course, to avoid duplicate code, I want to check the currently used 
> versions and want to make heavy use of "$IF"s. I know that the unit 
> "LCLVersion" provides information on the LCL version (lcl_fullversion). 
> My problem, however, is that LCLVersion introduces a dependence on 
> LCLBase. The package laz_fpspreadsheet so far has been quite slim 
> (dependence on FCL and LazUtils), I am not sure if it is a good idea to 
> bloat the basic package.
> 
> Is there another way to tell that the package is currently compiled with 
> an older Laz/fpc version?

I've got a couple of things that I try to keep compatible with as many 
versions of FPC and Lazarus as possible, in case I want to make them 
available to an "outsider" who will probably have minimal patience with 
problems relating to widget set and development tool version.

In practice, I make no attempt to go earlier than FPC 2.2.4 (there are 
reasons for avoiding earlier compilers that do not need discussion) 
together with Lazarus 0.9.24 (fixes_0_9_24 from svn), which is about the 
earliest that has LCLVersion. I'd suggest not trying anything earlier 
since by a happy coincidence that combination is one of the last that's 
compatible with gtk1 and also performs reasonably well with older 
Windows versions.

On unix, with a bit of work it's possible to get svn revision numbers 
from the compiler etc.

-- 
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]




More information about the Lazarus mailing list