summaryrefslogtreecommitdiffstats
path: root/bootstrap
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2010-04-23 13:44:23 (GMT)
committerBrad King <brad.king@kitware.com>2010-04-23 13:44:23 (GMT)
commit5bfffd6f295678aedd53a53da77e0eaaafc21140 (patch)
tree6a5bbe7774d44a2380d9a160c0e3827f618975ca /bootstrap
parent7049dff85a7cbfd64d61de60c27ea794d013570c (diff)
downloadCMake-5bfffd6f295678aedd53a53da77e0eaaafc21140.zip
CMake-5bfffd6f295678aedd53a53da77e0eaaafc21140.tar.gz
CMake-5bfffd6f295678aedd53a53da77e0eaaafc21140.tar.bz2
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.
Diffstat (limited to 'bootstrap')
-rwxr-xr-xbootstrap25
1 files changed, 16 insertions, 9 deletions
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"