summaryrefslogtreecommitdiff
path: root/indra/cmake/BuildVersion.cmake
diff options
context:
space:
mode:
authorOz Linden <oz@lindenlab.com>2013-09-05 11:41:19 -0400
committerOz Linden <oz@lindenlab.com>2013-09-05 11:41:19 -0400
commit035ab9f3747dc555148b17b87888fcf60ccc0114 (patch)
tree16aceeff842bd1d558f06b128d3d6b68fe7384fa /indra/cmake/BuildVersion.cmake
parent2108e9de5bb93d60a040ff385f50552ceed9b076 (diff)
open-183: improve local build number generation to account for multiple heads
Diffstat (limited to 'indra/cmake/BuildVersion.cmake')
-rwxr-xr-xindra/cmake/BuildVersion.cmake16
1 files changed, 10 insertions, 6 deletions
diff --git a/indra/cmake/BuildVersion.cmake b/indra/cmake/BuildVersion.cmake
index af2063ce6d..e4b63dc7cb 100755
--- a/indra/cmake/BuildVersion.cmake
+++ b/indra/cmake/BuildVersion.cmake
@@ -16,22 +16,26 @@ if (NOT DEFINED VIEWER_SHORT_VERSION) # will be true in indra/, false in indra/n
else (DEFINED ENV{revision})
find_program(MERCURIAL hg)
- if (DEFINED MERCURIAL)
+ find_program(WORDCOUNT wc)
+ find_program(SED sed)
+ if (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
execute_process(
- COMMAND ${MERCURIAL} log -r tip --template "{rev}"
+ COMMAND ${MERCURIAL} log -r tip:0 --template '\\n'
+ COMMAND ${WORDCOUNT} -l
+ COMMAND ${SED} "s/ //g"
OUTPUT_VARIABLE VIEWER_VERSION_REVISION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
message("Revision (from hg) ${VIEWER_VERSION_REVISION}")
else ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
+ message("Revision not set (repository not found?); using 0")
set(VIEWER_VERSION_REVISION 0 )
- message("Revision not set, repository not found, using ${VIEWER_VERSION_REVISION}")
endif ("${VIEWER_VERSION_REVISION}" MATCHES "^[0-9]+$")
- else (DEFINED MERCURIAL)
+ else (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
+ message("Revision not set: 'hg', 'wc' or 'sed' not found; using 0")
set(VIEWER_VERSION_REVISION 0)
- message("Revision not set, 'hg' not found (${MERCURIAL}), using ${VIEWER_VERSION_REVISION}")
- endif (DEFINED MERCURIAL)
+ endif (DEFINED MERCURIAL AND DEFINED WORDCOUNT AND DEFINED SED)
endif (DEFINED ENV{revision})
message("Building '${VIEWER_CHANNEL}' Version ${VIEWER_SHORT_VERSION}.${VIEWER_VERSION_REVISION}")
else ( EXISTS ${VIEWER_VERSION_BASE_FILE} )