From 98c51ff6dcd5e6aa80050cfc00f19eb6092e79c0 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 5 Mar 2009 15:17:07 -0500 Subject: [PATCH] ENH: Overhaul CMake version numbering This moves the version numbers into an isolated configured header so that not all of CMake needs to rebuild when the version changes. Previously we had spaces, dashes and/or the word 'patch' randomly chosen before the patch number. Now we always report version numbers in the traditional format "..[-rc]". We still use odd minor numbers for development versions. Now we also use the CCYYMMDD date as the patch number of development versions, thus allowing tests for exact CMake versions. --- CMakeCPack.cmake | 13 ++---- CMakeLists.txt | 10 ++-- Source/CMakeLists.txt | 4 ++ .../CursesDialog/cmCursesLongMessageForm.cxx | 3 +- Source/CursesDialog/cmCursesMainForm.cxx | 3 +- Source/MFCDialog/CMakeSetupDialog.cpp | 4 +- Source/QtDialog/CMakeSetup.cxx | 2 +- Source/WXDialog/CMakeSetupFrame.cpp | 5 +- Source/cmCTest.cxx | 3 +- Source/cmCacheManager.cxx | 7 ++- Source/cmConfigure.cmake.h.in | 5 -- Source/cmDocumentVariables.cxx | 6 +-- Source/cmLocalGenerator.cxx | 1 + Source/cmStandardIncludes.h | 15 ------ Source/cmVersion.cxx | 26 +++-------- Source/cmVersion.h | 12 +++-- Source/cmVersionConfig.h.in | 20 ++++++++ Source/cmVersionMacros.h | 40 ++++++++++++++++ Source/cmake.cxx | 4 +- Tests/CMakeTests/CMakeLists.txt | 1 + Tests/CMakeTests/VersionTest.cmake.in | 9 ++++ bootstrap | 46 ++++++++----------- 22 files changed, 127 insertions(+), 112 deletions(-) create mode 100644 Source/cmVersionConfig.h.in create mode 100644 Source/cmVersionMacros.h create mode 100644 Tests/CMakeTests/VersionTest.cmake.in diff --git a/CMakeCPack.cmake b/CMakeCPack.cmake index ec4cb9964..51715cc50 100644 --- a/CMakeCPack.cmake +++ b/CMakeCPack.cmake @@ -18,18 +18,13 @@ IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake") SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") SET(CPACK_PACKAGE_VERSION_MAJOR "${CMake_VERSION_MAJOR}") SET(CPACK_PACKAGE_VERSION_MINOR "${CMake_VERSION_MINOR}") -# if version date is set then use that as the patch - IF(CMake_VERSION_DATE) - SET(CPACK_PACKAGE_VERSION_PATCH "${CMake_VERSION_DATE}") - ELSE(CMake_VERSION_DATE) - SET(CPACK_PACKAGE_VERSION_PATCH "${CMake_VERSION_PATCH}") - ENDIF(CMake_VERSION_DATE) + 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}.${CPACK_PACKAGE_VERSION_PATCH}") + "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}") + "${CPACK_SOURCE_PACKAGE_FILE_NAME}-rc${CMake_VERSION_RC}") ENDIF(CMake_VERSION_RC) IF(NOT DEFINED CPACK_SYSTEM_NAME) # make sure package is not Cygwin-unknown, for Cygwin just @@ -82,7 +77,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}.${CPACK_PACKAGE_VERSION_PATCH}") + "${CPACK_PACKAGE_NAME}-${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}.${CMake_VERSION_PATCH}") # 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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 03a0e58d3..d48bda270 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -361,11 +361,11 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 7) SET(CMake_VERSION_PATCH 0) -# CVS versions are odd, if this is an odd minor version -# then set the CMake_VERSION_DATE variable +# We use odd minor numbers for development versions. +# Use a date for the development patch level. IF("${CMake_VERSION_MINOR}" MATCHES "[13579]$") INCLUDE(${CMake_SOURCE_DIR}/Source/kwsys/kwsysDateStamp.cmake) - SET(CMake_VERSION_DATE + SET(CMake_VERSION_PATCH "${KWSYS_DATE_STAMP_YEAR}${KWSYS_DATE_STAMP_MONTH}${KWSYS_DATE_STAMP_DAY}" ) ENDIF("${CMake_VERSION_MINOR}" MATCHES "[13579]$") @@ -425,10 +425,6 @@ IF(BUILD_QtDialog) IF(APPLE) SET(CMAKE_BUNDLE_NAME "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}-${CMake_VERSION_PATCH}") - IF(CMake_VERSION_DATE) - SET(CMAKE_BUNDLE_NAME - "CMake ${CMake_VERSION_MAJOR}.${CMake_VERSION_MINOR}-${CMake_VERSION_DATE}") - ENDIF(CMake_VERSION_DATE) SET(CMAKE_BUNDLE_LOCATION "${CMAKE_INSTALL_PREFIX}") # make sure CMAKE_INSTALL_PREFIX ends in / STRING(LENGTH "${CMAKE_INSTALL_PREFIX}" LEN) diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 964099c76..d977a4613 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -12,6 +12,10 @@ CONFIGURE_FILE( "${CMake_SOURCE_DIR}/Source/cmConfigure.cmake.h.in" "${CMake_BINARY_DIR}/Source/cmConfigure.h" ) +CONFIGURE_FILE( + "${CMake_SOURCE_DIR}/Source/cmVersionConfig.h.in" + "${CMake_BINARY_DIR}/Source/cmVersionConfig.h" + ) CONFIGURE_FILE( "${CMake_SOURCE_DIR}/Source/CPack/cmCPackConfigure.h.in" "${CMake_BINARY_DIR}/Source/CPack/cmCPackConfigure.h" diff --git a/Source/CursesDialog/cmCursesLongMessageForm.cxx b/Source/CursesDialog/cmCursesLongMessageForm.cxx index ed603e8c7..83bf8d35d 100644 --- a/Source/CursesDialog/cmCursesLongMessageForm.cxx +++ b/Source/CursesDialog/cmCursesLongMessageForm.cxx @@ -80,8 +80,7 @@ void cmCursesLongMessageForm::UpdateStatusBar() char version[cmCursesMainForm::MAX_WIDTH]; char vertmp[128]; - sprintf(vertmp,"CMake Version %d.%d - %s", cmVersion::GetMajorVersion(), - cmVersion::GetMinorVersion(),cmVersion::GetReleaseVersion().c_str()); + sprintf(vertmp,"CMake Version %s", cmVersion::GetCMakeVersion()); int sideSpace = (width-strlen(vertmp)); for(int i=0; iSetWindowText(tmp); this->UpdateData(FALSE); diff --git a/Source/QtDialog/CMakeSetup.cxx b/Source/QtDialog/CMakeSetup.cxx index e78b68684..8401b3287 100644 --- a/Source/QtDialog/CMakeSetup.cxx +++ b/Source/QtDialog/CMakeSetup.cxx @@ -144,7 +144,7 @@ int main(int argc, char** argv) CMakeSetupDialog dialog; QString title = QString("CMake %1"); - title = title.arg(cmVersion::GetCMakeVersion().c_str()); + title = title.arg(cmVersion::GetCMakeVersion()); dialog.setWindowTitle(title); dialog.show(); diff --git a/Source/WXDialog/CMakeSetupFrame.cpp b/Source/WXDialog/CMakeSetupFrame.cpp index 0e0bdca3d..f42ef42df 100644 --- a/Source/WXDialog/CMakeSetupFrame.cpp +++ b/Source/WXDialog/CMakeSetupFrame.cpp @@ -700,9 +700,7 @@ void CMakeSetupFrm::DoInitFrame(cmCommandLineInfo &cm, const wxString &fn) m_cmGeneratorChoice->SetStringSelection(generator); wxString str; - str.Printf("CMake %d.%d - %s", cmVersion::GetMajorVersion(), - cmVersion::GetMinorVersion(), - cmVersion::GetReleaseVersion().c_str()); + str.Printf("CMake %s", cmVersion::GetCMakeVersion()); str.Printf("CMakeSetup v%i.%i%s", CMAKEGUI_MAJORVER, CMAKEGUI_MINORVER, CMAKEGUI_ADDVER); SetTitle(str); @@ -1696,7 +1694,6 @@ void CMakeSetupFrm::OnAboutClick( wxCommandEvent& event ) generators.Add(i->c_str()); wxString cmversion, cmsversion; -// cmversion.Printf("v%i.%i %s", cmake::GetMajorVersion(), cmake::GetMinorVersion(), cmake::GetReleaseVersion()); cmsversion.Printf("v%i.%i%s", CMAKEGUI_MAJORVER, CMAKEGUI_MINORVER, CMAKEGUI_ADDVER); dlg->SetAboutText(cmversion, cmsversion, generators); diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index c1f2752e4..364790b93 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -26,6 +26,7 @@ #include "cmDynamicLoader.h" #include "cmGeneratedFileStream.h" #include "cmXMLSafe.h" +#include "cmVersionMacros.h" #include "cmCTestCommand.h" #include "cmCTestBuildHandler.h" @@ -1266,7 +1267,7 @@ void cmCTest::StartXML(std::ostream& ostr, bool append) << "GetCTestConfiguration("BuildName") << "\"\n\tBuildStamp=\"" << this->CurrentTag << "-" << this->GetTestModelString() << "\"\n\tName=\"" - << this->GetCTestConfiguration("Site") << "\"\n\tGenerator=\"ctest" + << this->GetCTestConfiguration("Site") << "\"\n\tGenerator=\"ctest-" << cmVersion::GetCMakeVersion() << "\"\n" << (append? "\tAppend=\"true\"\n":"") << "\tOSName=\"" << info.GetOSName() << "\"\n" diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx index aaf863aaf..74e1d4d4b 100644 --- a/Source/cmCacheManager.cxx +++ b/Source/cmCacheManager.cxx @@ -410,10 +410,9 @@ bool cmCacheManager::SaveCache(const char* path) this->AddCacheEntry("CMAKE_CACHE_MAJOR_VERSION", temp, "Major version of cmake used to create the " "current loaded cache", cmCacheManager::INTERNAL); - - this->AddCacheEntry("CMAKE_CACHE_RELEASE_VERSION", - cmVersion::GetReleaseVersion().c_str(), - "Major version of cmake used to create the " + sprintf(temp, "%d", cmVersion::GetPatchVersion()); + this->AddCacheEntry("CMAKE_CACHE_PATCH_VERSION", temp, + "Patch version of cmake used to create the " "current loaded cache", cmCacheManager::INTERNAL); // Let us store the current working directory so that if somebody diff --git a/Source/cmConfigure.cmake.h.in b/Source/cmConfigure.cmake.h.in index ba4a6c9da..b4d89ff4f 100644 --- a/Source/cmConfigure.cmake.h.in +++ b/Source/cmConfigure.cmake.h.in @@ -24,9 +24,4 @@ #cmakedefine CMAKE_STRICT #define CMAKE_ROOT_DIR "${CMake_SOURCE_DIR}" #define CMAKE_BUILD_DIR "${CMake_BINARY_DIR}" - -#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_DATA_DIR "@CMAKE_DATA_DIR@" diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index 27afd923f..199b36a55 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -110,9 +110,9 @@ void cmDocumentVariables::DefineVariables(cmake* cm) "Variables that Provide Information"); cm->DefineProperty - ("CMAKE_CACHE_RELEASE_VERSION", cmProperty::VARIABLE, - "Release version of CMake used to create the CMakeCache.txt file", - "This is stores the release version of CMake used to " + ("CMAKE_CACHE_PATCH_VERSION", cmProperty::VARIABLE, + "Patch version of CMake used to create the CMakeCache.txt file", + "This is stores the patch version of CMake used to " "write a CMake cache file. It is only different when " "a different version of CMake is run on a previously " "created cache file.", false, diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 246731fef..e9c44a5b8 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -26,6 +26,7 @@ #include "cmMakefile.h" #include "cmSourceFile.h" #include "cmTest.h" +#include "cmVersion.h" #include "cmake.h" #if defined(CMAKE_BUILD_WITH_CMAKE) diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h index 390cb1655..30d1a7f64 100644 --- a/Source/cmStandardIncludes.h +++ b/Source/cmStandardIncludes.h @@ -21,26 +21,11 @@ #ifndef cmStandardIncludes_h #define cmStandardIncludes_h -#define CMAKE_TO_STRING(x) CMAKE_TO_STRING0(x) -#define CMAKE_TO_STRING0(x) #x - // include configure generated header to define CMAKE_NO_ANSI_STREAM_HEADERS, // CMAKE_NO_STD_NAMESPACE, and other macros. #include "cmConfigure.h" #include -#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) - -#define CMake_VERSION_ENCODE(major, minor, patch) \ - ((major)*0x10000u + (minor)*0x100u + (patch)) - #ifdef _MSC_VER #pragma warning ( disable : 4786 ) #pragma warning ( disable : 4503 ) diff --git a/Source/cmVersion.cxx b/Source/cmVersion.cxx index 77b19aa30..0518c1f75 100644 --- a/Source/cmVersion.cxx +++ b/Source/cmVersion.cxx @@ -16,27 +16,13 @@ =========================================================================*/ #include "cmVersion.h" -#include +#include "cmVersionMacros.h" -std::string cmVersion::GetReleaseVersion() -{ -#if CMake_VERSION_MINOR & 1 - return cmsys_DATE_STAMP_STRING_FULL; -#else -# ifdef CMake_VERSION_RC - return "patch " CMAKE_TO_STRING(CMake_VERSION_PATCH) " RC-" - CMAKE_TO_STRING(CMake_VERSION_RC); -# else - return "patch " CMAKE_TO_STRING(CMake_VERSION_PATCH); -# endif -#endif -} +unsigned int cmVersion::GetMajorVersion() { return CMake_VERSION_MAJOR; } +unsigned int cmVersion::GetMinorVersion() { return CMake_VERSION_MINOR; } +unsigned int cmVersion::GetPatchVersion() { return CMake_VERSION_PATCH; } -std::string cmVersion::GetCMakeVersion() +const char* cmVersion::GetCMakeVersion() { - cmOStringStream str; - str << CMake_VERSION_MAJOR << "." << CMake_VERSION_MINOR - << "-" - << cmVersion::GetReleaseVersion(); - return str.str(); + return CMake_VERSION_FULL CMake_VERSION_RC_SUFFIX; } diff --git a/Source/cmVersion.h b/Source/cmVersion.h index 29eb9d19b..de92b4e7d 100644 --- a/Source/cmVersion.h +++ b/Source/cmVersion.h @@ -30,12 +30,14 @@ public: /** * Return major and minor version numbers for cmake. */ - static unsigned int GetMajorVersion() { return CMake_VERSION_MAJOR; } - static unsigned int GetMinorVersion() { return CMake_VERSION_MINOR; } - static unsigned int GetPatchVersion() { return CMake_VERSION_PATCH; } - static std::string GetReleaseVersion(); - static std::string GetCMakeVersion(); + static unsigned int GetMajorVersion(); + static unsigned int GetMinorVersion(); + static unsigned int GetPatchVersion(); + static const char* GetCMakeVersion(); }; +#define CMake_VERSION_ENCODE(major, minor, patch) \ + ((major)*0x10000u + (minor)*0x100u + (patch)) + #endif diff --git a/Source/cmVersionConfig.h.in b/Source/cmVersionConfig.h.in new file mode 100644 index 000000000..eced4d46d --- /dev/null +++ b/Source/cmVersionConfig.h.in @@ -0,0 +1,20 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#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@ diff --git a/Source/cmVersionMacros.h b/Source/cmVersionMacros.h new file mode 100644 index 000000000..aaaa4e37f --- /dev/null +++ b/Source/cmVersionMacros.h @@ -0,0 +1,40 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmVersionMacros_h +#define cmVersionMacros_h + +#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 "" +#endif + +#endif diff --git a/Source/cmake.cxx b/Source/cmake.cxx index da690732f..4068259b2 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -2355,9 +2355,7 @@ int cmake::DumpDocumentationToFile(std::ostream& f) const char *terse; const char *full; char tmp[1024]; - sprintf(tmp,"Version %d.%d (%s)", cmVersion::GetMajorVersion(), - cmVersion::GetMinorVersion(), - cmVersion::GetReleaseVersion().c_str()); + sprintf(tmp,"Version %s", cmVersion::GetCMakeVersion()); f << "\n"; f << "

Documentation for commands of CMake " << tmp << "

\n"; f << "
    \n"; diff --git a/Tests/CMakeTests/CMakeLists.txt b/Tests/CMakeTests/CMakeLists.txt index 9e3c3e7d2..e8ed3a3a4 100644 --- a/Tests/CMakeTests/CMakeLists.txt +++ b/Tests/CMakeTests/CMakeLists.txt @@ -15,6 +15,7 @@ AddCMakeTest(Include "") AddCMakeTest(FindBase "") AddCMakeTest(Toolchain "") AddCMakeTest(GetFilenameComponentRealpath "") +AddCMakeTest(Version "") SET(GetPrerequisites_PreArgs "-DCTEST_CONFIGURATION_TYPE:STRING=\\\${CTEST_CONFIGURATION_TYPE}" diff --git a/Tests/CMakeTests/VersionTest.cmake.in b/Tests/CMakeTests/VersionTest.cmake.in new file mode 100644 index 000000000..215bb2b96 --- /dev/null +++ b/Tests/CMakeTests/VersionTest.cmake.in @@ -0,0 +1,9 @@ +set(min_ver 2.7.20090305) +cmake_minimum_required(VERSION ${min_ver}) + +if("${CMAKE_VERSION}" VERSION_LESS "${min_ver}") + message(FATAL_ERROR + "CMAKE_VERSION=[${CMAKE_VERSION}] is less than [${min_ver}]") +else() + message("CMAKE_VERSION=[${CMAKE_VERSION}] is not less than [${min_ver}]") +endif() diff --git a/bootstrap b/bootstrap index 3008d070b..e6229cfa4 100755 --- a/bootstrap +++ b/bootstrap @@ -40,10 +40,13 @@ cmake_binary_dir=`pwd` cmake_bootstrap_dir="${cmake_binary_dir}/Bootstrap.cmk" cmake_version_major="`cmake_version_component MAJOR`" cmake_version_minor="`cmake_version_component MINOR`" -cmake_version_patch="`cmake_version_component PATCH`" +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`" +fi cmake_version="${cmake_version_major}.${cmake_version_minor}" cmake_version_full="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}" -cmake_date_stamp="`cmake_date_stamp_component YEAR``cmake_date_stamp_component MONTH``cmake_date_stamp_component DAY`" cmake_data_dir="/share/cmake-${cmake_version}" cmake_doc_dir="/doc/cmake-${cmake_version}" cmake_man_dir="/man" @@ -283,15 +286,7 @@ EOF # Display CMake bootstrap usage cmake_version_display() { - ( - # Get CMake version - if echo "${cmake_version_full}" | grep "[0-9]\.[0-9]*[13579]\.[0-9]" > /dev/null 2>&1; then - version="${cmake_version}-${cmake_date_stamp}" - else - version="${cmake_version}-${cmake_version_patch}" - fi - echo "CMake ${version}, Copyright (c) 2007 Kitware, Inc., Insight Consortium" - ) + echo "CMake ${cmake_version_full}, Copyright (c) 2000-2009 Kitware, Inc., Insight Consortium" } # Display CMake bootstrap error, display the log file and exit @@ -594,6 +589,7 @@ done # Delete all the bootstrap files rm -f "${cmake_bootstrap_dir}/cmake_bootstrap.log" rm -f "${cmake_bootstrap_dir}/cmConfigure.h.tmp" +rm -f "${cmake_bootstrap_dir}/cmVersionConfig.h.tmp" # If exist compiler flags, set them cmake_c_flags=${CFLAGS} @@ -1204,19 +1200,21 @@ else fi # Write CMake version -cmake_report cmConfigure.h.tmp "#define CMake_VERSION_MAJOR ${cmake_version_major}" -cmake_report cmConfigure.h.tmp "#define CMake_VERSION_MINOR ${cmake_version_minor}" -cmake_report cmConfigure.h.tmp "#define CMake_VERSION_PATCH ${cmake_version_patch}" +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 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" -# Regenerate real cmConfigure.h -if diff cmConfigure.h cmConfigure.h.tmp > /dev/null 2> /dev/null; then - rm -f cmConfigure.h.tmp -else - mv -f cmConfigure.h.tmp cmConfigure.h -fi +# Regenerate configured headers +for h in Configure VersionConfig; do + if diff cm${h}.h cm${h}.h.tmp > /dev/null 2> /dev/null; then + rm -f cm${h}.h.tmp + else + mv -f cm${h}.h.tmp cm${h}.h + fi +done # Prepare KWSYS cmake_kwsys_config_replace_string \ @@ -1228,14 +1226,6 @@ cmake_kwsys_config_replace_string \ "${cmake_bootstrap_dir}/cmsys/Configure.h" \ "${cmake_compiler_settings_comment}" -cat>"${cmake_bootstrap_dir}/cmsys/DateStamp.h"<