summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-02-11 09:16:09 -0500
committerCMake Topic Stage <kwrobot@kitware.com>2014-02-11 09:16:09 -0500
commit418a155be7e44117297c072b6aa0f21f4407c052 (patch)
tree13971e018916a6b4f55edc688431eec080ef055e
parentc29eb751cdaff74b3113f6199881f76b427a8391 (diff)
parent9bcc1b21f05a8f522c5154e163942c6d133bb379 (diff)
downloadcmake-418a155be7e44117297c072b6aa0f21f4407c052.tar.gz
Merge topic 'cmake-devel-version-macro'
9bcc1b21 Export: Fix internal CMake version test logic d2059d25 cmVersion: Fix CMake_VERSION_ENCODE for date in patch level 28805109 cmStandardIncludes: Include cmIML/INT.h for portable integer types
-rw-r--r--Source/cmCacheManager.cxx2
-rw-r--r--Source/cmExportInstallFileGenerator.cxx10
-rw-r--r--Source/cmFindPackageCommand.h2
-rw-r--r--Source/cmLocalGenerator.cxx4
-rw-r--r--Source/cmLocalGenerator.h4
-rw-r--r--Source/cmStandardIncludes.h3
-rw-r--r--Source/cmVersion.h7
-rwxr-xr-xbootstrap15
8 files changed, 36 insertions, 11 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index d3d8f3fb30..9e0064e5d8 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -930,7 +930,7 @@ bool cmCacheManager::NeedCacheCompatibility(int major, int minor)
// Compatibility is needed if the cache version is equal to or lower
// than the given version.
- unsigned int actual_compat =
+ cmIML_INT_uint64_t actual_compat =
CMake_VERSION_ENCODE(this->CacheMajorVersion, this->CacheMinorVersion, 0);
return (actual_compat &&
actual_compat <= CMake_VERSION_ENCODE(major, minor, 0));
diff --git a/Source/cmExportInstallFileGenerator.cxx b/Source/cmExportInstallFileGenerator.cxx
index eb7cea9621..56c0ec1487 100644
--- a/Source/cmExportInstallFileGenerator.cxx
+++ b/Source/cmExportInstallFileGenerator.cxx
@@ -19,15 +19,17 @@
#include "cmInstallExportGenerator.h"
#include "cmInstallTargetGenerator.h"
#include "cmTargetExport.h"
-#include "cmVersionConfig.h"
+#include "cmVersionMacros.h"
+#include "cmVersion.h"
#define STRINGIFY_HELPER(X) #X
#define STRINGIFY(X) STRINGIFY_HELPER(X)
#define DEVEL_CMAKE_VERSION(maj, min, patch) \
- (maj > CMake_VERSION_MAJOR \
- || min > CMake_VERSION_MINOR \
- || patch > CMake_VERSION_PATCH) ? \
+ (CMake_VERSION_ENCODE(maj, min, patch) > \
+ CMake_VERSION_ENCODE(CMake_VERSION_MAJOR, CMake_VERSION_MINOR, \
+ CMake_VERSION_PATCH) \
+ ) ? \
STRINGIFY(CMake_VERSION_MAJOR) "." STRINGIFY(CMake_VERSION_MINOR) "." \
STRINGIFY(CMake_VERSION_PATCH) "." STRINGIFY(CMake_VERSION_TWEAK) \
: #maj "." #min "." #patch
diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h
index 7ceebb2665..0d80e48e7e 100644
--- a/Source/cmFindPackageCommand.h
+++ b/Source/cmFindPackageCommand.h
@@ -114,7 +114,7 @@ private:
unsigned int VersionFoundPatch;
unsigned int VersionFoundTweak;
unsigned int VersionFoundCount;
- unsigned int RequiredCMakeVersion;
+ cmIML_INT_uint64_t RequiredCMakeVersion;
bool Quiet;
bool Required;
bool UseConfigFiles;
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index a2a66aeb4e..b8b703581b 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -3345,7 +3345,7 @@ cmLocalGenerator::GetTargetDirectory(cmTarget const&) const
}
//----------------------------------------------------------------------------
-unsigned int cmLocalGenerator::GetBackwardsCompatibility()
+cmIML_INT_uint64_t cmLocalGenerator::GetBackwardsCompatibility()
{
// The computed version may change until the project is fully
// configured.
@@ -3398,7 +3398,7 @@ bool cmLocalGenerator::NeedBackwardsCompatibility_2_4()
// Compatibility is needed if CMAKE_BACKWARDS_COMPATIBILITY is set
// equal to or lower than the given version.
- unsigned int actual_compat = this->GetBackwardsCompatibility();
+ cmIML_INT_uint64_t actual_compat = this->GetBackwardsCompatibility();
return (actual_compat &&
actual_compat <= CMake_VERSION_ENCODE(2, 4, 255));
}
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index ad662d58c8..97648138a9 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -321,7 +321,7 @@ public:
*
* and is monotonically increasing with the CMake version.
*/
- unsigned int GetBackwardsCompatibility();
+ cmIML_INT_uint64_t GetBackwardsCompatibility();
/**
* Test whether compatibility is set to a given version or lower.
@@ -460,7 +460,7 @@ protected:
bool RelativePathsConfigured;
bool PathConversionsSetup;
- unsigned int BackwardsCompatibility;
+ cmIML_INT_uint64_t BackwardsCompatibility;
bool BackwardsCompatibilityFinal;
private:
std::string ConvertToOutputForExistingCommon(const char* remote,
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index ebfa8f96fc..b4ae657604 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -40,6 +40,9 @@
#pragma warning ( disable : 1572 ) /* floating-point equality test */
#endif
+// Provide fixed-size integer types.
+#include <cmIML/INT.h>
+
#include <stdarg.h> // Work-around for SGI MIPSpro 7.4.2m header bug
// This is a hack to prevent warnings about these functions being
diff --git a/Source/cmVersion.h b/Source/cmVersion.h
index e313524768..0ab639051e 100644
--- a/Source/cmVersion.h
+++ b/Source/cmVersion.h
@@ -32,8 +32,13 @@ public:
static const char* GetCMakeVersion();
};
+/* Encode with room for up to 1000 minor releases between major releases
+ and to encode dates until the year 10000 in the patch level. */
+#define CMake_VERSION_ENCODE__BASE cmIML_INT_UINT64_C(100000000)
#define CMake_VERSION_ENCODE(major, minor, patch) \
- ((major)*0x10000u + (minor)*0x100u + (patch))
+ ((((major) * 1000u) * CMake_VERSION_ENCODE__BASE) + \
+ (((minor) % 1000u) * CMake_VERSION_ENCODE__BASE) + \
+ (((patch) % CMake_VERSION_ENCODE__BASE)))
#endif
diff --git a/bootstrap b/bootstrap
index 5c754a77f4..9154afb823 100755
--- a/bootstrap
+++ b/bootstrap
@@ -357,6 +357,11 @@ KWSYS_IOS_FILES="
iostream \
sstream"
+KWIML_FILES='
+ ABI.h
+ INT.h
+'
+
# Display CMake bootstrap usage
cmake_usage()
{
@@ -705,6 +710,11 @@ for a in stl ios; do
fi
done
+[ -d "cmIML" ] || mkdir "cmIML"
+if [ ! -d "cmIML" ]; then
+ cmake_error 12 "Cannot create directory ${cmake_bootstrap_dir}/cmIML"
+fi
+
# Delete all the bootstrap files
rm -f "${cmake_bootstrap_dir}/cmake_bootstrap.log"
rm -f "${cmake_bootstrap_dir}/cmConfigure.h${_tmp}"
@@ -1500,6 +1510,11 @@ for a in string vector set map algorithm; do
"${cmake_bootstrap_dir}/cmsys/stl/${a}" KWSYS_STL_HEADER ${a}
done
+for a in ${KWIML_FILES}; do
+ cmake_replace_string "${cmake_source_dir}/Utilities/KWIML/${a}.in" \
+ "${cmake_bootstrap_dir}/cmIML/${a}" KWIML cmIML
+done
+
# Generate Makefile
dep="cmConfigure.h cmsys/*.hxx cmsys/*.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
objs=""