[Cmake-commits] CMake branch, master, updated. v2.8.1-1213-ge6cd880

cmake-commits at cmake.org cmake-commits at cmake.org
Mon May 17 13:48:11 EDT 2010


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  e6cd880381ec536be277da3b590b5f326b848e1f (commit)
       via  98821a4e3558aaf7ce8545f92a72651446e7794c (commit)
       via  3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3 (commit)
       via  c70fcf64aba77443bdb8bef3a62886c29a112df2 (commit)
       via  0328379411386abc89ba07991f858cdacca926b2 (commit)
       via  e49b6eca4f5857bcf7bfc08e34d0797a3400bcf2 (commit)
       via  378acb1d4d280bdfba45d8c524e55e4b6714255d (commit)
       via  5bfffd6f295678aedd53a53da77e0eaaafc21140 (commit)
       via  8c89b5e2dcab146557c6eac0c32e2ab813ae6428 (commit)
       via  1274ce5bf326ba4557c155994d9d0c94f2d4fe3d (commit)
       via  2812910950134d1d319ab98e98f49124f435eb39 (commit)
       via  6dde1543130c63f6fefd23e8791d1b9e9639aa4b (commit)
       via  f195a131cc8b216f8e729179ca8ffac7be2dfe06 (commit)
       via  5f926016a9ddb348a494688b979f4ffef978cac7 (commit)
       via  224dde9085aa05b23b3ee86d33ffff9c1625a510 (commit)
       via  b6e42e3aa48610c04612925db87dca0fbc5667eb (commit)
       via  09be6c548041f37739a6a9de783b447c2033ad93 (commit)
       via  5a0653edfd5dd130fbde19157a575f75aa9b285a (commit)
       via  107872976fbc5f063de2e28a08f546a51bbad3af (commit)
       via  dc1d2189ae922be9d6e7f5fde698532db47e46aa (commit)
       via  612409e5b01a7e4823bb379ee9e002177793eb75 (commit)
       via  d2715cae493a16e9187d8e43f36fab90e3239184 (commit)
       via  29ebc97c38a291988e1e16edcbb000bfb879825b (commit)
       via  e8f50e90e983b358ff8a729015db3608a51b6f83 (commit)
       via  86eac830b353b304fae635f91cebc888e1c37933 (commit)
       via  b4ae8bad4b8e7810a44e2f77363de3009260a473 (commit)
       via  ebd0c2d3771835a1317c1fd70eafd3ebf2135b01 (commit)
       via  f9687e328f7ea64ea6384aae11af36fdd3a12643 (commit)
       via  3c7354c1cd9fb081df8b3f4faef5160ea83f584f (commit)
       via  2ba9c61f39258c55b198a8d395afdef60b8cd94c (commit)
       via  5e7843bb9e113d6b60abe9deed48081bc6765940 (commit)
       via  574d0894b4f940d96c51cbc8d475b42267126ea4 (commit)
      from  0559c4e04e002555dd09a57b41e4d83645a82f37 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e6cd880381ec536be277da3b590b5f326b848e1f
commit e6cd880381ec536be277da3b590b5f326b848e1f
Author: Brad King <brad.king at kitware.com>
Date:   Mon May 17 13:39:16 2010 -0400

    ChangeLog: Changes since CMake 2.8.1

diff --git a/ChangeLog.manual b/ChangeLog.manual
index 847d9b3..a2af9e4 100644
--- a/ChangeLog.manual
+++ b/ChangeLog.manual
@@ -1,3 +1,66 @@
+Changes since CMake 2.8.1
+- Build on Tru64 (#10542)
+- Build on mingw-w64
+- Build on old Sun (#10550, #10543)
+- CPack: Add native BZip2 support
+- CPack: Set compression type in RPM spec (#10363)
+- CTest: Add --stop-time argument
+- CTest: Cost data with '-j'
+- CTest: Fix memory report
+- CTest: Glob for uncovered files during coverage tests
+- CTest: Option to specify cdash server
+- CTest: Process tree kill for OpenBSD, FreeBSD, kFreeBSD, GNU/Hurd
+- CTest: Report failure in Update.xml
+- CTest: Submit author email in Update.xml
+- CTest: Teach ctest_update about Git submodules
+- Do not list file names during 'cmake -E tar xz'
+- Documentation: Comply with "XHTML 1.0 Strict"
+- Documentation: Fix typo in CMAKE_LIBRARY_PATH (#10291)
+- Documentation: Fix typo in HAS_CXX docs (#10578)
+- Documentation: More consistent command signatures
+- Eclipse: Do not add INCLUDE to environment twice
+- Enable extra CodeBlocks generator on Cygwin
+- FindCurses: Fix for cygwin ncurses package
+- FindHSPELL: Version support
+- FindJava: Error if version is not found only when REQUIRED
+- FindJava: Support runtime and development components (#9840)
+- FindKDE4: Prefer kdeconfig results over system paths
+- FindMPEG: Check for 'vo' library
+- FindPNG: Support png 1.4 versioned lib names (#10551)
+- FindPkgConfig: Add QUIET keyword to pkgconfig macros (see #10469)
+- FindZLIB: GnuWin32 support, version support (#5588)
+- FindwxWidget: Fix CXX flag parsing (#10209)
+- Fix .pdb name attribute in VS project files (#10614)
+- Fix CodeBlocks to work with Fortran-only
+- Fix VS 2010 custom commands (#10503)
+- Fix VS 6 support for COMPILE_DEFINITIONS_MINSIZEREL (#10700)
+- Fix cross-compiling from Linux to iPhone (#10526)
+- Fix documentation typos
+- Fix g95 Fortran compiler support
+- GetPrerequisites: Provide an override hook
+- Handle non-ASCII terminators in file(STRINGS)
+- Module fixes: FindPythonLibs, FindQt4, FindX11, FindwxWidgets
+- PathScale Fortran compiler tool detection
+- Qt4 OpenGL framework fix
+- Qt4ConfigDependentSettings.cmake Qt4Macros.cmake UseQt4.cmake
+- Recognize ARM ABI/EABI with GNU compilers
+- Search basic directories on "Generic" platform
+- Set MSVC* variables consistently on all generators, and test
+- Support VS 10 Express (related to #10670)
+- Support compression with 'cmake -E tar'
+- Support multiple arguments in CC,CXX,FC environment variables
+- Support per-platform initial ASM language flags (#10577)
+- Use Fortran ABI detection results conservatively
+- Use libarchive to replace the unmaintained libtar
+- UseQt4: Support QtMultimedia (#10675)
+- bootstrap: Fix make tool detection (#10544)
+- cmake-gui: Add simple grouped view
+- cmake-gui: Support build tree under symlink (#9975)
+- Cleanup modules FindASPELL, FindAVIFile, FindBZip2, FindDart,
+  FindEXPAT, FindGCCXML, FindGLU, FindHSPELL, FindJasper, FindLibXml2,
+  FindLibXslt, FindMPEG, FindOpenAL, FindPhysFS, FindQuickTime,
+  FindSubversion, FindZLIB.
+
 Changes in CMake 2.8.1
 - Fix failing test on cygwin
 - Add a new serach path for MPICH2

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=98821a4e3558aaf7ce8545f92a72651446e7794c
commit 98821a4e3558aaf7ce8545f92a72651446e7794c
Merge: 3ebb41d 8c89b5e
Author: Brad King <brad.king at kitware.com>
Date:   Mon May 17 13:36:19 2010 -0400

    Merge CMake 2.8.1 to start branchy workflow
    
    Merge the release branch into master to get its version number, tags,
    and ChangeLog.  Revert the version on master from 2.9 back to 2.8.
    Future releases will be prepared directly in master.
    
    This is the starting point for a branchy workflow based on one described
    by the "git help workflows" man page.  New development will be done on
    local topic branches.  Topics will be published by merging them into one
    of the integration branches:
    
     maint  = Maintenance of previous release
     master = Preparation of future release
     next   = Development of features ("next" to be merged into master)
    
    In order to bootstrap the topic-based workflow from here, all changes in
    master since the 2.8 release branch started will either be included in
    the next release or reverted and recreated on a topic branch.

diff --cc CMakeLists.txt
index 352c1c5,c4ab27a..69b45a4
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -337,37 -327,21 +337,38 @@@ ENDMACRO (CMAKE_BUILD_UTILITIES
  #-----------------------------------------------------------------------
  # The CMake version number.
  SET(CMake_VERSION_MAJOR 2)
- SET(CMake_VERSION_MINOR 9)
- SET(CMake_VERSION_PATCH 0)
+ SET(CMake_VERSION_MINOR 8)
+ SET(CMake_VERSION_PATCH 1)
 -#SET(CMake_VERSION_RC 5)
 +#SET(CMake_VERSION_TWEAK 0)
++#SET(CMake_VERSION_RC 1)
 +
 +# Releases define a tweak level.
 +IF(DEFINED CMake_VERSION_TWEAK)
 +  SET(CMake_VERSION_IS_RELEASE 1)
 +  SET(CMake_VERSION_SOURCE "")
 +ELSE()
 +  SET(CMake_VERSION_IS_RELEASE 0)
  
 -# We use odd minor numbers for development versions.
 -# Use a date for the development patch level.
 -IF("${CMake_VERSION_MINOR}" MATCHES "[13579]$")
 +  # Use the date as the tweak level.
    INCLUDE(${CMake_SOURCE_DIR}/Source/kwsys/kwsysDateStamp.cmake)
 -  SET(CMake_VERSION_PATCH
 +  SET(CMake_VERSION_TWEAK
      "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}"
      )
 -ENDIF("${CMake_VERSION_MINOR}" MATCHES "[13579]$")
  
 -SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
 -SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
 +  INCLUDE(${CMake_SOURCE_DIR}/Source/CMakeVersionSource.cmake)
 +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()
 +IF(CMake_VERSION_SOURCE)
 +  SET(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SOURCE})
 +ENDIF()
  
  # Include the standard Dart testing module
  ENABLE_TESTING()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3
commit 3ebb41d58ae4d791f39a2f65d7dbe5fc2d3ddff3
Merge: 0559c4e c70fcf6
Author: Brad King <brad.king at kitware.com>
Date:   Mon May 17 13:34:29 2010 -0400

    Merge branch 'version'


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c70fcf64aba77443bdb8bef3a62886c29a112df2
commit c70fcf64aba77443bdb8bef3a62886c29a112df2
Author: Brad King <brad.king at kitware.com>
Date:   Tue May 4 11:56:38 2010 -0400

    Package CMake with new version scheme

diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake
index 613bb9f..ce88d2f 100644
--- a/CMakeCPack.cmake
+++ b/CMakeCPack.cmake
@@ -31,12 +31,7 @@ IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
   SET(CPACK_PACKAGE_VERSION_MINOR "${CMake_VERSION_MINOR}")
   SET(CPACK_PACKAGE_VERSION_PATCH "${CMake_VERSION_PATCH}")
   SET(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
-  SET(CPACK_SOURCE_PACKAGE_FILE_NAME
-    "cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}")
-  IF(CMake_VERSION_RC)
-    SET(CPACK_SOURCE_PACKAGE_FILE_NAME
-      "${CPACK_SOURCE_PACKAGE_FILE_NAME}-rc${CMake_VERSION_RC}")
-  ENDIF(CMake_VERSION_RC)
+  SET(CPACK_SOURCE_PACKAGE_FILE_NAME "cmake-${CMake_VERSION}")
   IF(NOT DEFINED CPACK_SYSTEM_NAME)
     # make sure package is not Cygwin-unknown, for Cygwin just
     # cygwin is good for the system name
@@ -88,7 +83,7 @@ IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
     SET(CPACK_PACKAGE_NAME cmake)
     # setup the name of the package for cygwin cmake-2.4.3
     SET(CPACK_PACKAGE_FILE_NAME
-      "${CPACK_PACKAGE_NAME}-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}")
+      "${CPACK_PACKAGE_NAME}-${CMake_VERSION}")
     # the source has the same name as the binary
     SET(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME})
     # Create a cygwin version number in case there are changes for cygwin

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0328379411386abc89ba07991f858cdacca926b2
commit 0328379411386abc89ba07991f858cdacca926b2
Author: Brad King <brad.king at kitware.com>
Date:   Fri Apr 23 10:01:49 2010 -0400

    Report commit hash in CMake development versions
    
    For builds from Git repositories, add "-g<commit>" to the end of the
    version number.  If the source tree is modified, append "-dirty".
    For builds from CVS checkouts, add "-cvs-<branch>".

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f56beb3..352c1c5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -344,6 +344,7 @@ SET(CMake_VERSION_PATCH 0)
 # Releases define a tweak level.
 IF(DEFINED CMake_VERSION_TWEAK)
   SET(CMake_VERSION_IS_RELEASE 1)
+  SET(CMake_VERSION_SOURCE "")
 ELSE()
   SET(CMake_VERSION_IS_RELEASE 0)
 
@@ -352,6 +353,8 @@ ELSE()
   SET(CMake_VERSION_TWEAK
     "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}"
     )
+
+  INCLUDE(${CMake_SOURCE_DIR}/Source/CMakeVersionSource.cmake)
 ENDIF()
 
 # Compute the full version string.
@@ -362,6 +365,9 @@ ENDIF()
 IF(CMake_VERSION_RC)
   SET(CMake_VERSION ${CMake_VERSION}-rc${CMake_VERSION_RC})
 ENDIF()
+IF(CMake_VERSION_SOURCE)
+  SET(CMake_VERSION ${CMake_VERSION}-${CMake_VERSION_SOURCE})
+ENDIF()
 
 # Include the standard Dart testing module
 ENABLE_TESTING()
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/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index b583021..883a757 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -259,12 +259,14 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
      ,false, "Variables that Provide Information");
   cm->DefineProperty
     ("CMAKE_VERSION", cmProperty::VARIABLE,
-     "The full version of cmake in major.minor.patch[.tweak] 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, "
      "CMAKE_PATCH_VERSION, and CMAKE_TWEAK_VERSION "
-     "for individual version components.", false,
+     "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/Tests/FindPackageTest/CMakeLists.txt b/Tests/FindPackageTest/CMakeLists.txt
index 31cf0fc..74cc115 100644
--- a/Tests/FindPackageTest/CMakeLists.txt
+++ b/Tests/FindPackageTest/CMakeLists.txt
@@ -232,4 +232,5 @@ TRY_COMPILE(EXPORTER_COMPILED
 MESSAGE(STATUS "Searching for export(PACKAGE) test project")
 SET(CMakeTestExportPackage_DIR "" CACHE FILEPATH
   "Wipe out find results for testing." FORCE)
-FIND_PACKAGE(CMakeTestExportPackage 1.${CMAKE_VERSION} EXACT REQUIRED)
+STRING(REGEX REPLACE "-.*$" "" version ${CMAKE_VERSION})
+FIND_PACKAGE(CMakeTestExportPackage 1.${version} EXACT REQUIRED)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e49b6eca4f5857bcf7bfc08e34d0797a3400bcf2
commit e49b6eca4f5857bcf7bfc08e34d0797a3400bcf2
Author: Brad King <brad.king at kitware.com>
Date:   Fri Apr 23 09:50:31 2010 -0400

    Teach CMake Policies about tweak version component
    
    Add the [.tweak] version component throughout the policy implementation.
    Document all components for the cmake_policy(VERSION) command.  Record
    the tweak level in which each policy was introduced (0 for all current
    policies).  In generated documentation we report the tweak level only if
    it is not zero.  This preserves existing documentation.

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/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

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=378acb1d4d280bdfba45d8c524e55e4b6714255d
commit 378acb1d4d280bdfba45d8c524e55e4b6714255d
Author: Brad King <brad.king at kitware.com>
Date:   Fri Apr 23 09:50:02 2010 -0400

    Teach cmake_minimum_required about tweak version
    
    The command now accepts four version components in the format
    
      major[.minor[.patch[.tweak]]]
    
    This corresponds to the new versioning scheme introduced recently.

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"

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5bfffd6f295678aedd53a53da77e0eaaafc21140
commit 5bfffd6f295678aedd53a53da77e0eaaafc21140
Author: Brad King <brad.king at kitware.com>
Date:   Fri Apr 23 09:44:23 2010 -0400

    New version scheme to support branchy workflow
    
    Prepare to switch to the workflow described by "git help workflows".  In
    this workflow, the "master" branch is always used to integrate topics
    ready for release.  Brand new work merges into a "next" branch instead.
    We need a new versioning scheme to work this way because the version on
    "master" must always increase.
    
    We no longer use an even/odd minor number to distinguish releases from
    development versions.  Since we still support cvs checkout of our source
    tree we cannot depend on "git describe" to compute a version number
    based on the history graph.  We can use the CCYYMMDD nightly date stamp
    to get a monotonically increasing version component.
    
    The new version format is "major.minor.patch.(tweak|date)".  Releases
    use a tweak level in the half-open range [0,20000000), which is smaller
    than any current or future date.  For tweak=0 we do not show the tweak
    component, leaving the format "major.minor.patch" for most releases.
    Development versions use date=CCYYMMDD for the tweak level.  The
    major.minor.patch part of development versions on "master" always
    matches the most recent release.
    
    For example, a first-parent traversal of "master" might see
    
            v2.8.1      2.8.1.20100422    v2.8.2
               |              |              |
      ----o----o----o----o----o----o----o----o----
    
    Since the date appears in the tweak component, the next release can
    increment the patch level (or any more significant component) to be
    greater than any version leading to it.  Topic branches not ready for
    release are published only on "next" so we know that all versions on
    master lead between two releases.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4cd11c4..f56beb3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -339,18 +339,29 @@ ENDMACRO (CMAKE_BUILD_UTILITIES)
 SET(CMake_VERSION_MAJOR 2)
 SET(CMake_VERSION_MINOR 9)
 SET(CMake_VERSION_PATCH 0)
+#SET(CMake_VERSION_TWEAK 0)
 
-# We use odd minor numbers for development versions.
-# Use a date for the development patch level.
-IF("${CMake_VERSION_MINOR}" MATCHES "[13579]$")
+# Releases define a tweak level.
+IF(DEFINED CMake_VERSION_TWEAK)
+  SET(CMake_VERSION_IS_RELEASE 1)
+ELSE()
+  SET(CMake_VERSION_IS_RELEASE 0)
+
+  # Use the date as the tweak level.
   INCLUDE(${CMake_SOURCE_DIR}/Source/kwsys/kwsysDateStamp.cmake)
-  SET(CMake_VERSION_PATCH
+  SET(CMake_VERSION_TWEAK
     "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}"
     )
-ENDIF("${CMake_VERSION_MINOR}" MATCHES "[13579]$")
+ENDIF()
 
-SET(CMake_VERSION "${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}")
-SET(CMake_VERSION_FULL "${CMake_VERSION}.${CMake_VERSION_PATCH}")
+# 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()
 
 # Include the standard Dart testing module
 ENABLE_TESTING()
@@ -370,9 +381,9 @@ SET(LIBRARY_OUTPUT_PATH "" CACHE INTERNAL
 # install tree.
 SET(CMAKE_SKIP_RPATH ON CACHE INTERNAL "CMake does not need RPATHs.")
 
-SET(CMAKE_DATA_DIR "/share/cmake-${CMake_VERSION}" CACHE STRING
+SET(CMAKE_DATA_DIR "/share/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}" CACHE STRING
   "Install location for data (relative to prefix).")
-SET(CMAKE_DOC_DIR "/doc/cmake-${CMake_VERSION}" CACHE STRING
+SET(CMAKE_DOC_DIR "/doc/cmake-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}" CACHE STRING
   "Install location for documentation (relative to prefix).")
 SET(CMAKE_MAN_DIR "/man" CACHE STRING
   "Install location for man pages (relative to prefix).")
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index c6f9ba5..b583021 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -251,12 +251,20 @@ 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] 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.", false,
      "Variables that Provide Information");
 
   cm->DefineProperty
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index d09188a..e51ee65 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -2368,11 +2368,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/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
diff --git a/bootstrap b/bootstrap
index bcd11a5..c018b3c 100755
--- a/bootstrap
+++ b/bootstrap
@@ -30,17 +30,22 @@ cmake_date_stamp_component()
 cmake_system=`uname`
 cmake_source_dir=`cd "\`dirname \"$0\"\`";pwd`
 cmake_binary_dir=`pwd`
+
+# Load version information.
 cmake_version_major="`cmake_version_component MAJOR`"
 cmake_version_minor="`cmake_version_component MINOR`"
-if echo "${cmake_version_minor}" | grep "[0-9]*[13579]" > /dev/null 2>&1; then
-  cmake_version_patch="`cmake_date_stamp_component YEAR``cmake_date_stamp_component MONTH``cmake_date_stamp_component DAY`"
-else
-  cmake_version_patch="`cmake_version_component PATCH`"
+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 [ "x$cmake_version_tweak" = "x" ]; then
+  cmake_version_tweak="`cmake_date_stamp_component YEAR``cmake_date_stamp_component MONTH``cmake_date_stamp_component DAY`"
 fi
-cmake_version="${cmake_version_major}.${cmake_version_minor}"
-cmake_version_full="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}"
-cmake_data_dir="/share/cmake-${cmake_version}"
-cmake_doc_dir="/doc/cmake-${cmake_version}"
+if [ "$cmake_version_tweak" != "0" ]; then
+  cmake_version="${cmake_version}.${cmake_version_tweak}"
+fi
+
+cmake_data_dir="/share/cmake-${cmake_version_major}.${cmake_version_minor}"
+cmake_doc_dir="/doc/cmake-${cmake_version_major}.${cmake_version_minor}"
 cmake_man_dir="/man"
 cmake_init_file=""
 cmake_bootstrap_system_libs=""
@@ -312,7 +317,7 @@ Directory and file names:
 # Display CMake bootstrap usage
 cmake_version_display()
 {
-  echo "CMake ${cmake_version_full}, Copyright 2000-2009 Kitware, Inc."
+  echo "CMake ${cmake_version}, Copyright 2000-2009 Kitware, Inc."
 }
 
 # Display CMake bootstrap error, display the log file and exit
@@ -1246,6 +1251,8 @@ 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 \"${cmake_data_dir}\""
 cmake_report cmConfigure.h${_tmp} "#define CMAKE_BOOTSTRAP"

-----------------------------------------------------------------------

Summary of changes:
 CMakeCPack.cmake                     |    9 +-
 CMakeLists.txt                       |   42 +++-
 ChangeLog.manual                     |  388 ++++++++++++++++++++++++++++++++++
 Source/CMakeVersionSource.cmake      |   37 ++++
 Source/cmCMakeMinimumRequired.cxx    |   19 ++-
 Source/cmCMakeMinimumRequired.h      |    4 +-
 Source/cmCMakePolicyCommand.h        |    2 +-
 Source/cmDocumentVariables.cxx       |   16 ++-
 Source/cmMakefile.cxx                |    8 +-
 Source/cmPolicies.cxx                |   79 +++++---
 Source/cmPolicies.h                  |    1 +
 Source/cmVersion.cxx                 |    3 +-
 Source/cmVersion.h                   |    1 +
 Source/cmVersionConfig.h.in          |    3 +-
 Source/cmVersionMacros.h             |   19 +--
 Tests/FindPackageTest/CMakeLists.txt |    3 +-
 bootstrap                            |   25 ++-
 17 files changed, 567 insertions(+), 92 deletions(-)
 create mode 100644 ChangeLog.manual
 create mode 100644 Source/CMakeVersionSource.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list