# HG changeset patch # User koda # Date 1362401073 -3600 # Node ID d7062e684466d026b8a676fe97fe78ec225b5515 # Parent f3aa0d48a6009425244b9e3ab915eee1d385dc23 use rev info from the just created file when configuring without mercurial diff -r f3aa0d48a600 -r d7062e684466 CMakeLists.txt --- a/CMakeLists.txt Mon Mar 04 13:30:33 2013 +0100 +++ b/CMakeLists.txt Mon Mar 04 13:44:33 2013 +0100 @@ -61,9 +61,19 @@ file(WRITE "${CMAKE_SOURCE_DIR}/share/version_info.txt" "Hedgewars versioning information, do not modify\nrev ${revision_number}\nhash ${hash_number}\n") else() set(default_build_type "RELEASE") - # TODO think of a better fallback when hg not found - set(revision_number "0000") - set(hash_number "unknown") + # when compiling outside rev control, fetch revision and hash information from version_info.txt + find_file(version_info version_info.txt PATH ${CMAKE_SOURCE_DIR}/share) + if(version_info) + file(STRINGS ${version_info} internal_version REGEX "rev") + string(REGEX REPLACE "rev ([0-9]*)" "\\1" revision_number ${internal_version}) + file(STRINGS ${version_info} internal_version REGEX "hash") + string(REGEX REPLACE "hash: ([a-zA-Z0-9]*)" "\\1" hash_number ${internal_version}) + else() + message(${WARNING} "${CMAKE_SOURCE_DIR}/share/version_info.txt not found, revision information " + "will be incorrect!!! Contact your source provider to fix this!") + set(revision_number "0000") + set(hash_number "unknown") + endif() endif()