KDEWIN32 library

Brad King brad.king at kitware.com
Tue Feb 14 23:16:42 CET 2006


Brad King wrote:
> Alexander Neundorf wrote:
> 
>>The output format is not ideal, it should read
>>"You are running version: 2.3.3"
>>Which leads to the question why it warns at all.
>>cmCMakeMinimumRequired.cxx contains the following code:
>>
>>float version = float(m_Makefile->GetMajorVersion());
>>version += (float(m_Makefile->GetMinorVersion()) * (float).1);
>>version += (float(m_Makefile->GetPatchVersion()) * (float).01);
>>
>>// gives 2.33 as seen in the output
>>
>>float reqVersion = 0;
>>int major=0;
>>int minor=0;
>>int patch=0;
>>
>>int res=sscanf(args[1].c_str(), "%d.%d.%d", &major, &minor, &patch);
>>if (res==3)
>>   reqVersion=float(major)+0.1*float(minor)+0.01*float(patch);
>>else if (res==2)
>>   reqVersion=float(major)+0.1*float(minor);
>>
>>// args[1] is "2.3.3" as can be seen in the output, 
>>// so it should also produce 2.33
>>
>>if(reqVersion > version)
>>{
>>
>>// we shouldn't get here, because both should be 2.33, 
>>// maybe a rounding problem ?
> 
> 
> This is clearly a bad way to test the version, especially because tenths 
> cannot be represented exactly by IEEE floating-point values.  We'll fix 
> that in CMake.

This has now been fixed in the development version of CMake.

-Brad


More information about the Kde-buildsystem mailing list