summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
authorNicky <nicky.dasmijn@gmail.com>2022-04-06 16:31:53 +0200
committerNicky <nicky.dasmijn@gmail.com>2022-04-06 16:31:53 +0200
commit7522cea2528f9cfdf5283a7920dd3434417b20f4 (patch)
treeb598a5b05634c729d1ca0272fe4aede8dda22c46 /indra/cmake
parent952aee3f49d9591473b0bc2029dd485dd70a4132 (diff)
Use git for version detection fallback
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/BuildVersion.cmake44
1 files changed, 17 insertions, 27 deletions
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index 157fdd07e4..b531f29ee2 100644
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -19,33 +19,23 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
message(STATUS "Revision (from autobuild environment): ${VIEWER_VERSION_REVISION}")
else (DEFINED ENV{revision})
- find_program(MERCURIAL
- NAMES hg
- PATHS [HKEY_LOCAL_MACHINE\\Software\\TortoiseHG]
- PATH_SUFFIXES Mercurial)
- mark_as_advanced(MERCURIAL)
- if (MERCURIAL)
- execute_process(COMMAND ${MERCURIAL} identify --num --rev tip
- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
- RESULT_VARIABLE hg_id_result
- ERROR_VARIABLE hg_id_error
- OUTPUT_VARIABLE VIEWER_VERSION_REVISION
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (NOT ${hg_id_result} EQUAL 0)
- message(SEND_ERROR "Revision number generation failed with output:\n${hg_id_error}")
- else (NOT ${hg_id_result} EQUAL 0)
- string(REGEX REPLACE "[^0-9a-f]" "" VIEWER_VERSION_REVISION ${VIEWER_VERSION_REVISION})
- endif (NOT ${hg_id_result} EQUAL 0)
- if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
- message(STATUS "Revision (from hg) ${VIEWER_VERSION_REVISION}")
- else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
- message(STATUS "Revision not set (repository not found?); using 0")
- set(VIEWER_VERSION_REVISION 0 )
- endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
- else (MERCURIAL)
- message(STATUS "Revision not set: mercurial not found; using 0")
- set(VIEWER_VERSION_REVISION 0)
- endif (MERCURIAL)
+ find_program(GIT git)
+ if (DEFINED GIT )
+ execute_process(
+ COMMAND ${GIT} rev-list --count HEAD
+ OUTPUT_VARIABLE VIEWER_VERSION_REVISION
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+ if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ message(STATUS "Revision (from git) ${VIEWER_VERSION_REVISION}")
+ else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ message(STATUS "Revision not set (repository not found?); using 0")
+ set(VIEWER_VERSION_REVISION 0 )
+ endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ else (DEFINED GIT )
+ message(STATUS "Revision not set: 'git' found; using 0")
+ set(VIEWER_VERSION_REVISION 0)
+ endif (DEFINED GIT)
endif (DEFINED ENV{revision})
message(STATUS "Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )