diff options
author | Brad King <brad.king@kitware.com> | 2014-02-11 09:16:09 -0500 |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-02-11 09:16:09 -0500 |
commit | 418a155be7e44117297c072b6aa0f21f4407c052 (patch) | |
tree | 13971e018916a6b4f55edc688431eec080ef055e | |
parent | c29eb751cdaff74b3113f6199881f76b427a8391 (diff) | |
parent | 9bcc1b21f05a8f522c5154e163942c6d133bb379 (diff) | |
download | cmake-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.cxx | 2 | ||||
-rw-r--r-- | Source/cmExportInstallFileGenerator.cxx | 10 | ||||
-rw-r--r-- | Source/cmFindPackageCommand.h | 2 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 4 | ||||
-rw-r--r-- | Source/cmLocalGenerator.h | 4 | ||||
-rw-r--r-- | Source/cmStandardIncludes.h | 3 | ||||
-rw-r--r-- | Source/cmVersion.h | 7 | ||||
-rwxr-xr-x | bootstrap | 15 |
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 @@ -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="" |