summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-05-17 17:34:29 (GMT)
committerBrad King <brad.king@kitware.com>2010-05-17 17:34:29 (GMT)
commit3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3 (patch)
tree746999c765846c5978e8a5be682c561c0db6cda6 /Source
parent0559c4e04e002555dd09a57b41e4d83645a82f37 (diff)
parentc70fcf64aba77443bdb8bef3a62886c29a112df2 (diff)
downloadCMake-3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3.zip
CMake-3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3.tar.gz
CMake-3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3.tar.bz2
Merge branch 'version'
Diffstat (limited to 'Source')
-rw-r--r--Source/CMakeVersionSource.cmake37
-rw-r--r--Source/cmCMakeMinimumRequired.cxx19
-rw-r--r--Source/cmCMakeMinimumRequired.h4
-rw-r--r--Source/cmCMakePolicyCommand.h2
-rw-r--r--Source/cmDocumentVariables.cxx16
-rw-r--r--Source/cmMakefile.cxx8
-rw-r--r--Source/cmPolicies.cxx79
-rw-r--r--Source/cmPolicies.h1
-rw-r--r--Source/cmVersion.cxx3
-rw-r--r--Source/cmVersion.h1
-rw-r--r--Source/cmVersionConfig.h.in3
-rw-r--r--Source/cmVersionMacros.h19
12 files changed, 129 insertions, 63 deletions
diff --git a/Source/CMakeVersionSource.cmake b/Source/CMakeVersionSource.cmake
new file mode 100644
index 0000000..05e265c
--- /dev/null
+++ b/Source/CMakeVersionSource.cmake
@@ -0,0 +1,37 @@
+# Try to identify the current development source version.
+set(CMake_VERSION_SOURCE "")
+if(EXISTS ${CMake_SOURCE_DIR}/.git/HEAD)
+ find_program(GIT_EXECUTABLE NAMES git git.cmd)
+ mark_as_advanced(GIT_EXECUTABLE)
+ if(GIT_EXECUTABLE)
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=4 HEAD
+ OUTPUT_VARIABLE head
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ WORKING_DIRECTORY ${CMake_SOURCE_DIR}
+ )
+ if(head)
+ set(CMake_VERSION_SOURCE "g${head}")
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
+ WORKING_DIRECTORY ${CMake_SOURCE_DIR}
+ )
+ execute_process(
+ COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
+ OUTPUT_VARIABLE dirty
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ WORKING_DIRECTORY ${CMake_SOURCE_DIR}
+ )
+ if(dirty)
+ set(CMake_VERSION_SOURCE "${CMake_VERSION_SOURCE}-dirty")
+ endif()
+ endif()
+ endif()
+elseif(EXISTS ${CMake_SOURCE_DIR}/CVS/Repository)
+ file(READ ${CMake_SOURCE_DIR}/CVS/Repository repo)
+ set(branch "")
+ if("${repo}" MATCHES "\\.git/")
+ string(REGEX REPLACE ".*\\.git/([^\r\n]*).*" "-\\1" branch "${repo}")
+ endif()
+ set(CMake_VERSION_SOURCE "cvs${branch}")
+endif()
diff --git a/Source/cmCMakeMinimumRequired.cxx b/Source/cmCMakeMinimumRequired.cxx
index b7e939e..126934c 100644
--- a/Source/cmCMakeMinimumRequired.cxx
+++ b/Source/cmCMakeMinimumRequired.cxx
@@ -66,14 +66,17 @@ bool cmCMakeMinimumRequired
int current_major = cmVersion::GetMajorVersion();
int current_minor = cmVersion::GetMinorVersion();
int current_patch = cmVersion::GetPatchVersion();
+ int current_tweak = cmVersion::GetTweakVersion();
- // Parse the required version number. If no patch-level is given
- // use zero.
+ // Parse at least two components of the version number.
+ // Use zero for those not specified.
int required_major = 0;
int required_minor = 0;
int required_patch = 0;
- if(sscanf(version_string.c_str(), "%d.%d.%d",
- &required_major, &required_minor, &required_patch) < 2)
+ int required_tweak = 0;
+ if(sscanf(version_string.c_str(), "%u.%u.%u.%u",
+ &required_major, &required_minor,
+ &required_patch, &required_tweak) < 2)
{
cmOStringStream e;
e << "could not parse VERSION \"" << version_string.c_str() << "\".";
@@ -87,13 +90,17 @@ bool cmCMakeMinimumRequired
current_minor < required_minor) ||
(current_major == required_major &&
current_minor == required_minor &&
- current_patch < required_patch))
+ current_patch < required_patch) ||
+ (current_major == required_major &&
+ current_minor == required_minor &&
+ current_patch == required_patch &&
+ current_tweak < required_tweak))
{
// The current version is too low.
cmOStringStream e;
e << "CMake " << version_string.c_str()
<< " or higher is required. You are running version "
- << current_major << "." << current_minor << "." << current_patch;
+ << cmVersion::GetCMakeVersion();
this->Makefile->IssueMessage(cmake::FATAL_ERROR, e.str());
cmSystemTools::SetFatalErrorOccured();
return true;
diff --git a/Source/cmCMakeMinimumRequired.h b/Source/cmCMakeMinimumRequired.h
index 05c2505..9bf7ef8 100644
--- a/Source/cmCMakeMinimumRequired.h
+++ b/Source/cmCMakeMinimumRequired.h
@@ -61,13 +61,13 @@ public:
virtual const char* GetFullDocumentation()
{
return
- " cmake_minimum_required(VERSION major[.minor[.patch]]\n"
+ " cmake_minimum_required(VERSION major[.minor[.patch[.tweak]]]\n"
" [FATAL_ERROR])\n"
"If the current version of CMake is lower than that required "
"it will stop processing the project and report an error. "
"When a version higher than 2.4 is specified the command implicitly "
"invokes\n"
- " cmake_policy(VERSION major[.minor[.patch]])\n"
+ " cmake_policy(VERSION major[.minor[.patch[.tweak]]])\n"
"which sets the cmake policy version level to the version specified. "
"When version 2.4 or lower is given the command implicitly invokes\n"
" cmake_policy(VERSION 2.4)\n"
diff --git a/Source/cmCMakePolicyCommand.h b/Source/cmCMakePolicyCommand.h
index ffd0f44..b326865 100644
--- a/Source/cmCMakePolicyCommand.h
+++ b/Source/cmCMakePolicyCommand.h
@@ -80,7 +80,7 @@ public:
"behavior. "
"While setting policies individually is supported, we encourage "
"projects to set policies based on CMake versions.\n"
- " cmake_policy(VERSION major.minor[.patch])\n"
+ " cmake_policy(VERSION major.minor[.patch[.tweak]])\n"
"Specify that the current CMake list file is written for the "
"given version of CMake. "
"All policies introduced in the specified version or earlier "
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 68b0d57..e77119f 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -251,12 +251,22 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
" executable being run.",false,
"Variables that Provide Information");
cm->DefineProperty
+ ("CMAKE_TWEAK_VERSION", cmProperty::VARIABLE,
+ "The tweak version of cmake (i.e. the 1 in X.X.X.1).",
+ "This specifies the tweak version of the CMake executable being run. "
+ "Releases use tweak < 20000000 and development versions use the date "
+ "format CCYYMMDD for the tweak level."
+ ,false, "Variables that Provide Information");
+ cm->DefineProperty
("CMAKE_VERSION", cmProperty::VARIABLE,
- "The full version of cmake in major.minor.patch format.",
+ "The full version of cmake in major.minor.patch[.tweak[-id]] format.",
"This specifies the full version of the CMake executable being run. "
"This variable is defined by versions 2.6.3 and higher. "
- "See variables CMAKE_MAJOR_VERSION, CMAKE_MINOR_VERSION, and "
- "CMAKE_PATCH_VERSION for individual version components.", false,
+ "See variables CMAKE_MAJOR_VERSION, CMAKE_MINOR_VERSION, "
+ "CMAKE_PATCH_VERSION, and CMAKE_TWEAK_VERSION "
+ "for individual version components. "
+ "The [-id] component appears in non-release versions "
+ "and may be arbitrary text.", false,
"Variables that Provide Information");
cm->DefineProperty
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index e3d230e..8eece6b 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2359,11 +2359,9 @@ void cmMakefile::AddDefaultDefinitions()
this->AddDefinition("CMAKE_MAJOR_VERSION", temp);
sprintf(temp, "%d", cmVersion::GetPatchVersion());
this->AddDefinition("CMAKE_PATCH_VERSION", temp);
- sprintf(temp, "%u.%u.%u",
- cmVersion::GetMajorVersion(),
- cmVersion::GetMinorVersion(),
- cmVersion::GetPatchVersion());
- this->AddDefinition("CMAKE_VERSION", temp);
+ sprintf(temp, "%d", cmVersion::GetTweakVersion());
+ this->AddDefinition("CMAKE_TWEAK_VERSION", temp);
+ this->AddDefinition("CMAKE_VERSION", cmVersion::GetCMakeVersion());
this->AddDefinition("CMAKE_FILES_DIRECTORY",
cmake::GetCMakeFilesDirectory());
diff --git a/Source/cmPolicies.cxx b/Source/cmPolicies.cxx
index 2d41d40..69d3e51 100644
--- a/Source/cmPolicies.cxx
+++ b/Source/cmPolicies.cxx
@@ -3,6 +3,7 @@
#include "cmMakefile.h"
#include "cmSourceFile.h"
#include "cmVersion.h"
+#include "cmVersionMacros.h"
#include <map>
#include <set>
#include <queue>
@@ -22,6 +23,7 @@ public:
unsigned int majorVersionIntroduced,
unsigned int minorVersionIntroduced,
unsigned int patchVersionIntroduced,
+ unsigned int tweakVersionIntroduced,
cmPolicies::PolicyStatus status)
{
if (!idString || !shortDescription || ! longDescription)
@@ -37,21 +39,26 @@ public:
this->MajorVersionIntroduced = majorVersionIntroduced;
this->MinorVersionIntroduced = minorVersionIntroduced;
this->PatchVersionIntroduced = patchVersionIntroduced;
+ this->TweakVersionIntroduced = tweakVersionIntroduced;
this->Status = status;
}
std::string GetVersionString()
{
- cmOStringStream error;
- error << this->MajorVersionIntroduced << "." <<
- this->MinorVersionIntroduced << "." <<
- this->PatchVersionIntroduced;
- return error.str();
+ cmOStringStream v;
+ v << this->MajorVersionIntroduced << "." << this->MinorVersionIntroduced;
+ v << "." << this->PatchVersionIntroduced;
+ if(this->TweakVersionIntroduced > 0)
+ {
+ v << "." << this->TweakVersionIntroduced;
+ }
+ return v.str();
}
bool IsPolicyNewerThan(unsigned int majorV,
unsigned int minorV,
- unsigned int patchV)
+ unsigned int patchV,
+ unsigned int tweakV)
{
if (majorV < this->MajorVersionIntroduced)
{
@@ -69,7 +76,15 @@ public:
{
return false;
}
- return (patchV < this->PatchVersionIntroduced);
+ if (patchV < this->PatchVersionIntroduced)
+ {
+ return true;
+ }
+ if (patchV > this->PatchVersionIntroduced)
+ {
+ return false;
+ }
+ return (tweakV < this->TweakVersionIntroduced);
}
cmPolicies::PolicyID ID;
@@ -79,6 +94,7 @@ public:
unsigned int MajorVersionIntroduced;
unsigned int MinorVersionIntroduced;
unsigned int PatchVersionIntroduced;
+ unsigned int TweakVersionIntroduced;
cmPolicies::PolicyStatus Status;
};
@@ -110,7 +126,7 @@ cmPolicies::cmPolicies()
"The NEW behavior is to issue an error instead of a warning. "
"An included file may set CMP0000 explicitly to affect how this "
"policy is enforced for the main CMakeLists.txt file.",
- 2,6,0, cmPolicies::WARN
+ 2,6,0,0, cmPolicies::WARN
);
this->DefinePolicy(
@@ -126,7 +142,7 @@ cmPolicies::cmPolicies()
"and the cmake_policy command. "
"However, CMake must still check CMAKE_BACKWARDS_COMPATIBILITY for "
"projects written for CMake 2.4 and below.",
- 2,6,0, cmPolicies::WARN
+ 2,6,0,0, cmPolicies::WARN
);
this->DefinePolicy(
@@ -148,7 +164,7 @@ cmPolicies::cmPolicies()
"Custom targets must simply have globally unique names (unless one "
"uses the global property ALLOW_DUPLICATE_CUSTOM_TARGETS with a "
"Makefiles generator).",
- 2,6,0, cmPolicies::WARN
+ 2,6,0,0, cmPolicies::WARN
);
this->DefinePolicy(
@@ -213,7 +229,7 @@ cmPolicies::cmPolicies()
"Note that the warning for this policy will be issued for at most "
"one target. This avoids flooding users with messages for every "
"target when setting the policy once will probably fix all targets.",
- 2,6,0, cmPolicies::WARN);
+ 2,6,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0004, "CMP0004",
@@ -229,7 +245,7 @@ cmPolicies::cmPolicies()
"The setting for this policy used when checking the library names is "
"that in effect when the target is created by an add_executable or "
"add_library command.",
- 2,6,0, cmPolicies::WARN);
+ 2,6,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0005, "CMP0005",
@@ -250,7 +266,7 @@ cmPolicies::cmPolicies()
"for all native build tools automatically. "
"See documentation of the COMPILE_DEFINITIONS target property for "
"limitations of the escaping implementation.",
- 2,6,0, cmPolicies::WARN);
+ 2,6,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0006, "CMP0006",
@@ -268,7 +284,7 @@ cmPolicies::cmPolicies()
"DESTINATION if a BUNDLE DESTINATION is not given. "
"The NEW behavior for this policy is to produce an error if a bundle "
"target is installed without a BUNDLE DESTINATION.",
- 2,6,0, cmPolicies::WARN);
+ 2,6,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0007, "CMP0007",
@@ -280,7 +296,7 @@ cmPolicies::cmPolicies()
"The OLD behavior for this policy is to ignore empty list elements. "
"The NEW behavior for this policy is to correctly count empty "
"elements in a list. ",
- 2,6,0, cmPolicies::WARN);
+ 2,6,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0008, "CMP0008",
@@ -306,7 +322,7 @@ cmPolicies::cmPolicies()
"path and ask the linker to search for it. "
"The NEW behavior for this policy is to trust the given path and "
"pass it directly to the native build tool unchanged.",
- 2,6,1, cmPolicies::WARN);
+ 2,6,1,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0009, "CMP0009",
@@ -322,7 +338,7 @@ cmPolicies::cmPolicies()
"The NEW behavior for this policy is not to follow the symlinks "
"by default, but only if FOLLOW_SYMLINKS is given as an additional "
"argument to the FILE command.",
- 2,6,2, cmPolicies::WARN);
+ 2,6,2,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0010, "CMP0010",
@@ -334,7 +350,7 @@ cmPolicies::cmPolicies()
"The OLD behavior for this policy is to warn about the error, leave "
"the string untouched, and continue. "
"The NEW behavior for this policy is to report an error.",
- 2,6,3, cmPolicies::WARN);
+ 2,6,3,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0011, "CMP0011",
@@ -354,7 +370,7 @@ cmPolicies::cmPolicies()
"include() and find_package() commands. "
"The NEW behavior for this policy is to allow the commands to do their "
"default cmake_policy PUSH and POP.",
- 2,6,3, cmPolicies::WARN);
+ 2,6,3,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0012, "CMP0012",
@@ -376,7 +392,7 @@ cmPolicies::cmPolicies()
"named like numbers and boolean constants. "
"The NEW behavior for this policy is to recognize numbers and "
"boolean constants without dereferencing variables with such names.",
- 2,8,0, cmPolicies::WARN);
+ 2,8,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0013, "CMP0013",
@@ -393,7 +409,7 @@ cmPolicies::cmPolicies()
"directories. "
"The NEW behavior for this policy is to disallow duplicate binary "
"directories with an error.",
- 2,8,0, cmPolicies::WARN);
+ 2,8,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0014, "CMP0014",
@@ -405,7 +421,7 @@ cmPolicies::cmPolicies()
"the case is an error. "
"The OLD behavior for this policy is to silently ignore the problem. "
"The NEW behavior for this policy is to report an error.",
- 2,8,0, cmPolicies::WARN);
+ 2,8,0,0, cmPolicies::WARN);
this->DefinePolicy(
CMP0015, "CMP0015",
@@ -420,7 +436,7 @@ cmPolicies::cmPolicies()
"The NEW behavior for this policy is to convert relative paths to "
"absolute paths by appending the relative path to "
"CMAKE_CURRENT_SOURCE_DIR.",
- 2,8,1, cmPolicies::WARN);
+ 2,8,1,0, cmPolicies::WARN);
}
cmPolicies::~cmPolicies()
@@ -441,6 +457,7 @@ void cmPolicies::DefinePolicy(cmPolicies::PolicyID iD,
unsigned int majorVersionIntroduced,
unsigned int minorVersionIntroduced,
unsigned int patchVersionIntroduced,
+ unsigned int tweakVersionIntroduced,
cmPolicies::PolicyStatus status)
{
// a policy must be unique and can only be defined once
@@ -457,6 +474,7 @@ void cmPolicies::DefinePolicy(cmPolicies::PolicyID iD,
majorVersionIntroduced,
minorVersionIntroduced,
patchVersionIntroduced,
+ tweakVersionIntroduced,
status);
this->PolicyStringMap[idString] = iD;
}
@@ -475,14 +493,15 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
unsigned int majorVer = 2;
unsigned int minorVer = 0;
unsigned int patchVer = 0;
+ unsigned int tweakVer = 0;
// parse the string
- if(sscanf(ver.c_str(), "%u.%u.%u",
- &majorVer, &minorVer, &patchVer) < 2)
+ if(sscanf(ver.c_str(), "%u.%u.%u.%u",
+ &majorVer, &minorVer, &patchVer, &tweakVer) < 2)
{
cmOStringStream e;
e << "Invalid policy version value \"" << ver << "\". "
- << "A numeric major.minor[.patch] must be given.";
+ << "A numeric major.minor[.patch[.tweak]] must be given.";
mf->IssueMessage(cmake::FATAL_ERROR, e.str());
return false;
}
@@ -510,7 +529,11 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
minorVer > cmVersion::GetMinorVersion()) ||
(majorVer == cmVersion::GetMajorVersion() &&
minorVer == cmVersion::GetMinorVersion() &&
- patchVer > cmVersion::GetPatchVersion()))
+ patchVer > cmVersion::GetPatchVersion()) ||
+ (majorVer == cmVersion::GetMajorVersion() &&
+ minorVer == cmVersion::GetMinorVersion() &&
+ patchVer == cmVersion::GetPatchVersion() &&
+ tweakVer > cmVersion::GetTweakVersion()))
{
cmOStringStream e;
e << "An attempt was made to set the policy version of CMake to \""
@@ -528,7 +551,7 @@ bool cmPolicies::ApplyPolicyVersion(cmMakefile *mf,
= this->Policies.begin();
for (;i != this->Policies.end(); ++i)
{
- if (i->second->IsPolicyNewerThan(majorVer,minorVer,patchVer))
+ if (i->second->IsPolicyNewerThan(majorVer,minorVer,patchVer,tweakVer))
{
if(i->second->Status == cmPolicies::REQUIRED_ALWAYS)
{
diff --git a/Source/cmPolicies.h b/Source/cmPolicies.h
index aaa3ac0..23064dc 100644
--- a/Source/cmPolicies.h
+++ b/Source/cmPolicies.h
@@ -72,6 +72,7 @@ public:
unsigned int majorVersionIntroduced,
unsigned int minorVersionIntroduced,
unsigned int patchVersionIntroduced,
+ unsigned int tweakVersionIntroduced,
cmPolicies::PolicyStatus status);
///! Set a policy level for this listfile
diff --git a/Source/cmVersion.cxx b/Source/cmVersion.cxx
index bde5f98..047d24d 100644
--- a/Source/cmVersion.cxx
+++ b/Source/cmVersion.cxx
@@ -16,8 +16,9 @@
unsigned int cmVersion::GetMajorVersion() { return CMake_VERSION_MAJOR; }
unsigned int cmVersion::GetMinorVersion() { return CMake_VERSION_MINOR; }
unsigned int cmVersion::GetPatchVersion() { return CMake_VERSION_PATCH; }
+unsigned int cmVersion::GetTweakVersion() { return CMake_VERSION_TWEAK; }
const char* cmVersion::GetCMakeVersion()
{
- return CMake_VERSION_FULL CMake_VERSION_RC_SUFFIX;
+ return CMake_VERSION;
}
diff --git a/Source/cmVersion.h b/Source/cmVersion.h
index f267ab6..e313524 100644
--- a/Source/cmVersion.h
+++ b/Source/cmVersion.h
@@ -28,6 +28,7 @@ public:
static unsigned int GetMajorVersion();
static unsigned int GetMinorVersion();
static unsigned int GetPatchVersion();
+ static unsigned int GetTweakVersion();
static const char* GetCMakeVersion();
};
diff --git a/Source/cmVersionConfig.h.in b/Source/cmVersionConfig.h.in
index ee6eca7..76bc8fe 100644
--- a/Source/cmVersionConfig.h.in
+++ b/Source/cmVersionConfig.h.in
@@ -12,4 +12,5 @@
#define CMake_VERSION_MAJOR @CMake_VERSION_MAJOR@
#define CMake_VERSION_MINOR @CMake_VERSION_MINOR@
#define CMake_VERSION_PATCH @CMake_VERSION_PATCH@
-#cmakedefine CMake_VERSION_RC @CMake_VERSION_RC@
+#define CMake_VERSION_TWEAK @CMake_VERSION_TWEAK@
+#define CMake_VERSION "@CMake_VERSION@"
diff --git a/Source/cmVersionMacros.h b/Source/cmVersionMacros.h
index 412db6d..67f58ca 100644
--- a/Source/cmVersionMacros.h
+++ b/Source/cmVersionMacros.h
@@ -14,22 +14,9 @@
#include "cmVersionConfig.h"
-#define CMAKE_TO_STRING(x) CMAKE_TO_STRING0(x)
-#define CMAKE_TO_STRING0(x) #x
-
-#define CMake_VERSION \
- CMAKE_TO_STRING(CMake_VERSION_MAJOR) "." \
- CMAKE_TO_STRING(CMake_VERSION_MINOR)
-
-#define CMake_VERSION_FULL \
- CMAKE_TO_STRING(CMake_VERSION_MAJOR) "." \
- CMAKE_TO_STRING(CMake_VERSION_MINOR) "." \
- CMAKE_TO_STRING(CMake_VERSION_PATCH)
-
-#if !(CMake_VERSION_MINOR & 1) && defined(CMake_VERSION_RC)
-# define CMake_VERSION_RC_SUFFIX "-rc" CMAKE_TO_STRING(CMake_VERSION_RC)
-#else
-# define CMake_VERSION_RC_SUFFIX ""
+#define CMake_VERSION_TWEAK_IS_RELEASE(tweak) ((tweak) < 20000000)
+#if CMake_VERSION_TWEAK_IS_RELEASE(CMake_VERSION_TWEAK)
+# define CMake_VERSION_IS_RELEASE 1
#endif
#endif