diff -r dae338c8c19c -r ec0d9f737449 cmake_modules/revinfo.cmake --- a/cmake_modules/revinfo.cmake Sat Jan 04 02:18:57 2014 +0100 +++ b/cmake_modules/revinfo.cmake Sat Jan 04 02:18:57 2014 +0100 @@ -1,11 +1,12 @@ #detect Mercurial revision and init rev/hash information find_program(HGCOMMAND hg) -if(HGCOMMAND AND (EXISTS ${CMAKE_SOURCE_DIR}/.hg)) +find_program(GITCOMMAND git) +if(EXISTS ${CMAKE_SOURCE_DIR}/.hg AND HGCOMMAND) execute_process(COMMAND ${HGCOMMAND} identify -in WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} OUTPUT_VARIABLE internal_version ERROR_QUIET - ) + ) #check local repo status string(REGEX REPLACE "[^+]" "" HGCHANGED ${internal_version}) string(REGEX REPLACE "[0-9a-zA-Z]+(.*) ([0-9]+)(.*)" "\\2" HEDGEWARS_REVISION ${internal_version}) @@ -14,8 +15,23 @@ if(HGCHANGED) message("*** You have uncommitted changes in your repository ***") endif() + #let's assume that if you have hg you might be interested in debugging set(default_build_type "DEBUG") + + #write down hash and rev for easy picking should hg be missing + file(WRITE "${CMAKE_SOURCE_DIR}/share/version_info.txt" "Hedgewars versioning information, do not modify\nrev ${HEDGEWARS_REVISION}\nhash ${HEDGEWARS_HASH}\n") +elseif(EXISTS ${CMAKE_SOURCE_DIR}/.git AND GITCOMMAND) + execute_process(COMMAND ${GITCOMMAND} rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + OUTPUT_VARIABLE HEDGEWARS_HASH + ERROR_QUIET + ) + set(HEDGEWARS_REVISION "git") + + #let's assume that if you have git you might be interested in debugging + set(default_build_type "DEBUG") + #write down hash and rev for easy picking should hg be missing file(WRITE "${CMAKE_SOURCE_DIR}/share/version_info.txt" "Hedgewars versioning information, do not modify\nrev ${HEDGEWARS_REVISION}\nhash ${HEDGEWARS_HASH}\n") else() @@ -24,7 +40,7 @@ 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" HEDGEWARS_REVISION ${internal_version}) + string(REGEX REPLACE "rev ([git0-9]*)" "\\1" HEDGEWARS_REVISION ${internal_version}) file(STRINGS ${version_info} internal_version REGEX "hash") string(REGEX REPLACE "hash ([a-zA-Z0-9]*)" "\\1" HEDGEWARS_HASH ${internal_version}) else()