From 56ec97f71e277a0902ba81147555592d6551519d Mon Sep 17 00:00:00 2001 From: Ethan Lee Date: Mon, 18 Feb 2019 21:48:09 -0500 Subject: [PATCH] CMake: Make Hg dependency optional (thanks Chad!) --- CMakeLists.txt | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f5540d1..cf20d084 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,7 @@ OPTION(XNA4_VERTEXTEXTURE "Build MojoShader with XNA4 vertex texturing behavior" INCLUDE_DIRECTORIES(.) +# If Mercurial is installed and we are in a mercurial repository, include the rev# and changeset as version information. FIND_PROGRAM(HG hg DOC "Path to hg command line app: http://www.selenic.com/mercurial/") IF(NOT HG) MESSAGE(STATUS "Mercurial (hg) not found. You can go on, but version info will be wrong.") @@ -24,22 +25,37 @@ IF(NOT HG) SET(MOJOSHADER_CHANGESET "???") ELSE(NOT HG) MARK_AS_ADVANCED(HG) + + # See if we are in an hg repository. EXECUTE_PROCESS( - COMMAND hg tip --template {rev} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE HGVERSION_RC - OUTPUT_VARIABLE MOJOSHADER_VERSION - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - EXECUTE_PROCESS( - COMMAND hg tip --template hg-{rev}:{node|short} + COMMAND hg root WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" RESULT_VARIABLE HGVERSION_RC - OUTPUT_VARIABLE MOJOSHADER_CHANGESET ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE ) + IF(NOT HGVERSION_RC EQUAL 0) + MESSAGE(STATUS "Mercurial (hg) repository not found. You can go on, but version info will be wrong.") + SET(MOJOSHADER_VERSION -1) + SET(MOJOSHADER_CHANGESET "???") + ELSE(NOT HGVERSION_RC EQUAL 0) + # Query the rev and changeset. + EXECUTE_PROCESS( + COMMAND hg tip --template {rev} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE HGVERSION_RC + OUTPUT_VARIABLE MOJOSHADER_VERSION + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + EXECUTE_PROCESS( + COMMAND hg tip --template hg-{rev}:{node|short} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + RESULT_VARIABLE HGVERSION_RC + OUTPUT_VARIABLE MOJOSHADER_CHANGESET + ERROR_QUIET + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + ENDIF(NOT HGVERSION_RC EQUAL 0) ENDIF(NOT HG) WRITE_FILE(