aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorclick <none@none>2010-09-30 11:10:46 +0200
committerclick <none@none>2010-09-30 11:10:46 +0200
commit5ec21b3e602e350014fc69bdb61f974a296c46e9 (patch)
treedcc65cee83d3d0ce65d978387ce67e6cac3a5f2a /CMakeLists.txt
parentfd7ef08946c75f7298371a9d4b6b7f25a5bdb86a (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.txt39
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