diff options
author | click <none@none> | 2010-09-30 11:10:46 +0200 |
---|---|---|
committer | click <none@none> | 2010-09-30 11:10:46 +0200 |
commit | 5ec21b3e602e350014fc69bdb61f974a296c46e9 (patch) | |
tree | dcc65cee83d3d0ce65d978387ce67e6cac3a5f2a /CMakeLists.txt | |
parent | fd7ef08946c75f7298371a9d4b6b7f25a5bdb86a (diff) |
BuildSystem: Adjust revision-ID/Hash detections slightly so that it
returns the correct variables into revision.h depending on wether we
have a .hg dir, .hg_archival.txt file, or are simply strip-copied
somewhere.
--HG--
branch : trunk
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c313c95e6..ed132fa8547 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,6 +57,22 @@ if( UNIX ) find_package(BZip2) endif() +# Find revision ID and hash of the sourcetree +execute_process( + COMMAND hg id -n + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE hg_rev_id_str + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET +) +execute_process( + COMMAND hg id -i + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE hg_rev_hash_str + OUTPUT_STRIP_TRAILING_WHITESPACE + ERROR_QUIET +) + if(EXISTS ${CMAKE_SOURCE_DIR}/.hg_archival.txt) file(READ ${CMAKE_SOURCE_DIR}/.hg_archival.txt hg_rev_hash_str @@ -64,25 +80,10 @@ if(EXISTS ${CMAKE_SOURCE_DIR}/.hg_archival.txt) OFFSET 7 NEWLINE_CONSUME ) - string(STRIP ${hg_rev_id_str} hg_rev_id_str) string(STRIP ${hg_rev_hash_str} hg_rev_hash_str) set(hg_rev_id_str "Archive") set(hg_rev_id "0") set(hg_rev_hash ${hg_rev_hash_str}) -else() - # Find revision ID and hash of the sourcetree - execute_process( - COMMAND hg id -n - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE hg_rev_id_str - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - execute_process( - COMMAND hg id -i - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - OUTPUT_VARIABLE hg_rev_hash_str - OUTPUT_STRIP_TRAILING_WHITESPACE - ) endif() # Last minute check - ensure that we have a proper revision @@ -92,14 +93,16 @@ if(NOT hg_rev_id_str) message(STATUS "WARNING - No revision-information found - have you been tampering with the sources?") # Ok, since we have no valid ways of finding/setting the revision, let's force some defaults + set(hg_rev_hash_str "Archive") + set(hg_rev_hash "0") set(hg_rev_id_str "0") set(hg_rev_id "0") - set(hg_rev_hash_str "Unknown archive") - set(hg_rev_hash "0") endif() # Strip off excess strings (shows when the source is actually modified) -string(REPLACE "+" "" hg_rev_id ${hg_rev_id_str}) +if(NOT hg_rev_id_str MATCHES "Archive") + string(REPLACE "+" "" hg_rev_id ${hg_rev_id_str}) +endif() string(REPLACE "+" "" hg_rev_hash ${hg_rev_hash_str}) # Create the actual revision.h file from the above params |