ENH: Enabling ability for CMAKE_MINIMUM_REQUIRED version to include patch level. Submitted by Alexander Neundorf.

This commit is contained in:
Brad King 2005-06-17 09:49:06 -04:00
parent 6c1a83609e
commit 65e2c18d73
3 changed files with 13 additions and 1 deletions

View File

@ -30,8 +30,18 @@ bool cmCMakeMinimumRequired::InitialPass(std::vector<std::string> const& args)
} }
float version = float(m_Makefile->GetMajorVersion()); float version = float(m_Makefile->GetMajorVersion());
version += (float(m_Makefile->GetMinorVersion()) * (float).1); version += (float(m_Makefile->GetMinorVersion()) * (float).1);
version += (float(m_Makefile->GetPatchVersion()) * (float).01);
float reqVersion = 0; float reqVersion = 0;
sscanf(args[1].c_str(), "%f", &reqVersion); 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);
if(reqVersion > version) if(reqVersion > version)
{ {
cmOStringStream str; cmOStringStream str;

View File

@ -50,6 +50,7 @@ public:
*/ */
static unsigned int GetMajorVersion() { return CMake_VERSION_MAJOR; } static unsigned int GetMajorVersion() { return CMake_VERSION_MAJOR; }
static unsigned int GetMinorVersion() { return CMake_VERSION_MINOR; } static unsigned int GetMinorVersion() { return CMake_VERSION_MINOR; }
static unsigned int GetPatchVersion() { return CMake_VERSION_PATCH; }
static const char* GetReleaseVersion(); static const char* GetReleaseVersion();
/** /**

View File

@ -32,6 +32,7 @@ public:
*/ */
static unsigned int GetMajorVersion() { return CMake_VERSION_MAJOR; } static unsigned int GetMajorVersion() { return CMake_VERSION_MAJOR; }
static unsigned int GetMinorVersion() { return CMake_VERSION_MINOR; } static unsigned int GetMinorVersion() { return CMake_VERSION_MINOR; }
static unsigned int GetPatchVersion() { return CMake_VERSION_PATCH; }
static std::string GetReleaseVersion(); static std::string GetReleaseVersion();
static std::string GetCMakeVersion(); static std::string GetCMakeVersion();
}; };