diff --git a/CMakeCPackOptions.cmake.in b/CMakeCPackOptions.cmake.in index 3ff018837..aba404f09 100644 --- a/CMakeCPackOptions.cmake.in +++ b/CMakeCPackOptions.cmake.in @@ -58,13 +58,11 @@ if("${CPACK_GENERATOR}" STREQUAL "WIX") endif() set(CPACK_PACKAGE_VERSION - "@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@.@CMake_VERSION_PATCH@") + "@CMake_VERSION_MAJOR@.@CMake_VERSION_MINOR@") # WIX installers require at most a 4 component version number, where # each component is an integer between 0 and 65534 inclusive - set(tweak "@CMake_VERSION_TWEAK@") - if(tweak MATCHES "^[0-9]+$") - if(tweak GREATER 0 AND tweak LESS 65535) - set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${tweak}") - endif() + set(patch "@CMake_VERSION_PATCH@") + if(patch MATCHES "^[0-9]+$" AND patch LESS 65535) + set(CPACK_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}.${patch}") endif() endif() diff --git a/Help/release/3.0.0.rst b/Help/release/3.0.0.rst index 105d6519d..208e92ad5 100644 --- a/Help/release/3.0.0.rst +++ b/Help/release/3.0.0.rst @@ -390,6 +390,11 @@ Deprecated and Removed Features Other Changes ============= +* The version scheme was changed to use only two components for + the feature level instead of three. The third component will + now be used for bug-fix releases or the date of development versions. + See the :variable:`CMAKE_VERSION` variable documentation for details. + * The default install locations of CMake itself on Windows and OS X no longer contain the CMake version number. This allows for easy replacement without re-generating local build trees diff --git a/Help/variable/CMAKE_TWEAK_VERSION.rst b/Help/variable/CMAKE_TWEAK_VERSION.rst index a2c8f3561..be2e0500f 100644 --- a/Help/variable/CMAKE_TWEAK_VERSION.rst +++ b/Help/variable/CMAKE_TWEAK_VERSION.rst @@ -1,5 +1,11 @@ CMAKE_TWEAK_VERSION ------------------- -Fourth version number component of the :variable:`CMAKE_VERSION` -variable. +Defined to ``0`` for compatibility with code written for older +CMake versions that may have defined higher values. + +.. note:: + + In CMake versions 2.8.2 through 2.8.12, this variable holds + the fourth version number component of the + :variable:`CMAKE_VERSION` variable. diff --git a/Help/variable/CMAKE_VERSION.rst b/Help/variable/CMAKE_VERSION.rst index 6184f0802..bbb1d91be 100644 --- a/Help/variable/CMAKE_VERSION.rst +++ b/Help/variable/CMAKE_VERSION.rst @@ -1,24 +1,23 @@ CMAKE_VERSION ------------- -The CMake version string as up to four non-negative integer components +The CMake version string as three non-negative integer components separated by ``.`` and possibly followed by ``-`` and other information. -The first three components represent the feature level and the fourth +The first two components represent the feature level and the third component represents either a bug-fix level or development date. Release versions and release candidate versions of CMake use the format:: - ..[.][-rc] + ..[-rc] -where the ```` component is less than ``20000000``. Development +where the ```` component is less than ``20000000``. Development versions of CMake use the format:: - ...[-] + ..[-] where the ```` component is of format ``CCYYMMDD`` and ```` may contain arbitrary text. This represents development as of a -particular date following the ``..`` feature -release. +particular date following the ``.`` feature release. Individual component values are also available in variables: @@ -35,6 +34,12 @@ strings as floating-point numbers. .. note:: + CMake versions 2.8.2 through 2.8.12 used three components for the + feature level. Release versions represented the bug-fix level in a + fourth component, i.e. ``..[.][-rc]``. + Development versions represented the development date in the fourth + component, i.e. ``...[-]``. + CMake versions prior to 2.8.2 used three components for the feature level and had no bug-fix component. Release versions used an even-valued second component, i.e. diff --git a/Source/CMakeInstallDestinations.cmake b/Source/CMakeInstallDestinations.cmake index 3e93d41e6..99c86ca77 100644 --- a/Source/CMakeInstallDestinations.cmake +++ b/Source/CMakeInstallDestinations.cmake @@ -1,15 +1,15 @@ # Keep formatting here consistent with bootstrap script expectations. if(BEOS) - set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") # HAIKU + set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # HAIKU set(CMAKE_MAN_DIR_DEFAULT "documentation/man") # HAIKU - set(CMAKE_DOC_DIR_DEFAULT "documentation/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") # HAIKU + set(CMAKE_DOC_DIR_DEFAULT "documentation/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # HAIKU elseif(CYGWIN) set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION}") # CYGWIN set(CMAKE_DOC_DIR_DEFAULT "share/doc/cmake-${CMake_VERSION}") # CYGWIN set(CMAKE_MAN_DIR_DEFAULT "share/man") # CYGWIN else() - set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") # OTHER - set(CMAKE_DOC_DIR_DEFAULT "doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") # OTHER + set(CMAKE_DATA_DIR_DEFAULT "share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # OTHER + set(CMAKE_DOC_DIR_DEFAULT "doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}") # OTHER set(CMAKE_MAN_DIR_DEFAULT "man") # OTHER endif() diff --git a/Source/CMakeVersion.bash b/Source/CMakeVersion.bash index 4794e608d..853b0ca28 100755 --- a/Source/CMakeVersion.bash +++ b/Source/CMakeVersion.bash @@ -3,5 +3,5 @@ if test "x$1" = "x-f"; then shift ; n='*' ; else n='\{8\}' ; fi if test "$#" -gt 0; then echo 1>&2 "usage: CMakeVersion.bash [-f]"; exit 1; fi sed -i -e ' -s/\(^set(CMake_VERSION_TWEAK\) [0-9]'"$n"'\(.*\)/\1 '"$(date +%Y%m%d)"'\2/ +s/\(^set(CMake_VERSION_PATCH\) [0-9]'"$n"'\(.*\)/\1 '"$(date +%Y%m%d)"'\2/ ' "${BASH_SOURCE%/*}/CMakeVersion.cmake" diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 547aca84c..5ce43f56c 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 0) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_TWEAK 0) set(CMake_VERSION_RC 1) diff --git a/Source/CMakeVersionCompute.cmake b/Source/CMakeVersionCompute.cmake index a1663342e..496d6cf1a 100644 --- a/Source/CMakeVersionCompute.cmake +++ b/Source/CMakeVersionCompute.cmake @@ -1,8 +1,8 @@ # Load version number components. include(${CMake_SOURCE_DIR}/Source/CMakeVersion.cmake) -# Releases define a small tweak level. -if("${CMake_VERSION_TWEAK}" VERSION_LESS 20000000) +# Releases define a small patch level. +if("${CMake_VERSION_PATCH}" VERSION_LESS 20000000) set(CMake_VERSION_IS_RELEASE 1) set(CMake_VERSION_SOURCE "") else() @@ -12,9 +12,6 @@ endif() # Compute the full version string. set(CMake_VERSION ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}) -if(${CMake_VERSION_TWEAK} GREATER 0) - set(CMake_VERSION ${CMake_VERSION}.${CMake_VERSION_TWEAK}) -endif() if(CMake_VERSION_RC) set(CMake_VERSION ${CMake_VERSION}-rc${CMake_VERSION_RC}) endif() diff --git a/Source/cmExportFileGenerator.h b/Source/cmExportFileGenerator.h index 8be4bbf8b..57ab37899 100644 --- a/Source/cmExportFileGenerator.h +++ b/Source/cmExportFileGenerator.h @@ -21,14 +21,13 @@ #define STRINGIFY_HELPER(X) #X #define STRINGIFY(X) STRINGIFY_HELPER(X) -#define DEVEL_CMAKE_VERSION(maj, min, patch) \ - (CMake_VERSION_ENCODE(maj, min, patch) > \ - CMake_VERSION_ENCODE(CMake_VERSION_MAJOR, CMake_VERSION_MINOR, \ - CMake_VERSION_PATCH) \ - ) ? \ +#define DEVEL_CMAKE_VERSION(major, minor) ( \ + CMake_VERSION_ENCODE(major, minor, 0) > \ + CMake_VERSION_ENCODE(CMake_VERSION_MAJOR, CMake_VERSION_MINOR, 0) ? \ STRINGIFY(CMake_VERSION_MAJOR) "." STRINGIFY(CMake_VERSION_MINOR) "." \ - STRINGIFY(CMake_VERSION_PATCH) "." STRINGIFY(CMake_VERSION_TWEAK) \ - : #maj "." #min "." #patch + STRINGIFY(CMake_VERSION_PATCH) \ + : #major "." #minor ".0" \ + ) class cmTargetExport; diff --git a/Source/cmVersion.cxx b/Source/cmVersion.cxx index 047d24d74..9cb0cd6a7 100644 --- a/Source/cmVersion.cxx +++ b/Source/cmVersion.cxx @@ -16,7 +16,7 @@ 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; } +unsigned int cmVersion::GetTweakVersion() { return 0; } const char* cmVersion::GetCMakeVersion() { diff --git a/Source/cmVersionConfig.h.in b/Source/cmVersionConfig.h.in index 76bc8fe94..16aeabe9e 100644 --- a/Source/cmVersionConfig.h.in +++ b/Source/cmVersionConfig.h.in @@ -12,5 +12,4 @@ #define CMake_VERSION_MAJOR @CMake_VERSION_MAJOR@ #define CMake_VERSION_MINOR @CMake_VERSION_MINOR@ #define CMake_VERSION_PATCH @CMake_VERSION_PATCH@ -#define CMake_VERSION_TWEAK @CMake_VERSION_TWEAK@ #define CMake_VERSION "@CMake_VERSION@" diff --git a/Source/cmVersionMacros.h b/Source/cmVersionMacros.h index 67f58ca41..cf7f678a7 100644 --- a/Source/cmVersionMacros.h +++ b/Source/cmVersionMacros.h @@ -14,8 +14,8 @@ #include "cmVersionConfig.h" -#define CMake_VERSION_TWEAK_IS_RELEASE(tweak) ((tweak) < 20000000) -#if CMake_VERSION_TWEAK_IS_RELEASE(CMake_VERSION_TWEAK) +#define CMake_VERSION_PATCH_IS_RELEASE(patch) ((patch) < 20000000) +#if CMake_VERSION_PATCH_IS_RELEASE(CMake_VERSION_PATCH) # define CMake_VERSION_IS_RELEASE 1 #endif diff --git a/bootstrap b/bootstrap index 9154afb82..69dcbce84 100755 --- a/bootstrap +++ b/bootstrap @@ -53,10 +53,6 @@ cmake_version_major="`cmake_version_component MAJOR`" cmake_version_minor="`cmake_version_component MINOR`" cmake_version_patch="`cmake_version_component PATCH`" cmake_version="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}" -cmake_version_tweak="`cmake_version_component TWEAK`" -if [ "$cmake_version_tweak" != "0" ]; then - cmake_version="${cmake_version}.${cmake_version_tweak}" -fi cmake_version_rc="`cmake_version_component RC`" if [ "$cmake_version_rc" != "" ]; then cmake_version="${cmake_version}-rc${cmake_version_rc}" @@ -1464,7 +1460,6 @@ fi cmake_report cmVersionConfig.h${_tmp} "#define CMake_VERSION_MAJOR ${cmake_version_major}" cmake_report cmVersionConfig.h${_tmp} "#define CMake_VERSION_MINOR ${cmake_version_minor}" cmake_report cmVersionConfig.h${_tmp} "#define CMake_VERSION_PATCH ${cmake_version_patch}" -cmake_report cmVersionConfig.h${_tmp} "#define CMake_VERSION_TWEAK ${cmake_version_tweak}" cmake_report cmVersionConfig.h${_tmp} "#define CMake_VERSION \"${cmake_version}\"" cmake_report cmConfigure.h${_tmp} "#define CMAKE_ROOT_DIR \"${cmake_root_dir}\"" cmake_report cmConfigure.h${_tmp} "#define CMAKE_DATA_DIR \"/bootstrap-not-insalled\""