summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2012-04-20 15:20:48 (GMT)
committerBrad King <brad.king@kitware.com>2012-04-20 15:25:55 (GMT)
commit0c7029c6420d6387b74a85bb8e62194e80b4e879 (patch)
tree32cf9f5b3d8c1098c06712930cfc890c8bbf73dd
parent20ba4fe1bf3d753ecc6f482aeb922582a6b99a1f (diff)
downloadCMake-0c7029c6420d6387b74a85bb8e62194e80b4e879.zip
CMake-0c7029c6420d6387b74a85bb8e62194e80b4e879.tar.gz
CMake-0c7029c6420d6387b74a85bb8e62194e80b4e879.tar.bz2
Refactor CMake version handling
Move the CMake version number components out of "CMakeLists.txt" into dedicated file "Source/CMakeVersion.cmake". Set the TWEAK level to the date explicitly. Add a "Source/CMakeVersion.bash" script to update the date, thus replacing KWSys DateStamp for CMake. Teach the bootstrap script to extract the version components from their new location.
-rw-r--r--CMakeLists.txt19
-rwxr-xr-xSource/CMakeVersion.bash7
-rw-r--r--Source/CMakeVersion.cmake6
-rwxr-xr-xbootstrap12
4 files changed, 17 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a88d5f..b1d5930 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -422,26 +422,13 @@ ENDIF()
# The main section of the CMakeLists file
#
#-----------------------------------------------------------------------
-# The CMake version number.
-SET(CMake_VERSION_MAJOR 2)
-SET(CMake_VERSION_MINOR 8)
-SET(CMake_VERSION_PATCH 8)
-#SET(CMake_VERSION_TWEAK 0)
-#SET(CMake_VERSION_RC 1)
-
-# Releases define a tweak level.
-IF(DEFINED CMake_VERSION_TWEAK)
+INCLUDE(Source/CMakeVersion.cmake)
+# Releases define a small tweak level.
+IF("${CMake_VERSION_TWEAK}" VERSION_LESS 20000000)
SET(CMake_VERSION_IS_RELEASE 1)
SET(CMake_VERSION_SOURCE "")
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_TWEAK
- "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}"
- )
-
INCLUDE(${CMake_SOURCE_DIR}/Source/CMakeVersionSource.cmake)
ENDIF()
diff --git a/Source/CMakeVersion.bash b/Source/CMakeVersion.bash
new file mode 100755
index 0000000..126adba
--- /dev/null
+++ b/Source/CMakeVersion.bash
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+# Update the version component if it looks like a date or -f is given.
+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/
+' "${BASH_SOURCE%/*}/CMakeVersion.cmake"
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
new file mode 100644
index 0000000..51672e4
--- /dev/null
+++ b/Source/CMakeVersion.cmake
@@ -0,0 +1,6 @@
+# CMake version number components.
+SET(CMake_VERSION_MAJOR 2)
+SET(CMake_VERSION_MINOR 8)
+SET(CMake_VERSION_PATCH 8)
+SET(CMake_VERSION_TWEAK 20120420)
+#SET(CMake_VERSION_RC 1)
diff --git a/bootstrap b/bootstrap
index 3be3d1f..0069754 100755
--- a/bootstrap
+++ b/bootstrap
@@ -18,18 +18,11 @@ die() {
# Version number extraction function.
cmake_version_component()
{
- cat "${cmake_source_dir}/CMakeLists.txt" | sed -n "
+ cat "${cmake_source_dir}/Source/CMakeVersion.cmake" | sed -n "
/^SET(CMake_VERSION_${1}/ {s/SET(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;}
"
}
-cmake_date_stamp_component()
-{
- cat "${cmake_source_dir}/Source/kwsys/kwsysDateStamp.cmake" | sed -n "
-/KWSYS_DATE_STAMP_${1}/ {s/^.* \([0-9][0-9]*\))$/\1/;p;}
-"
-}
-
cmake_toupper()
{
echo "$1" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'
@@ -46,9 +39,6 @@ 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 [ "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
if [ "$cmake_version_tweak" != "0" ]; then
cmake_version="${cmake_version}.${cmake_version_tweak}"
fi