1*1b6084dbSDominic Spill# This script controls the version string that is passed at compile time. 2*1b6084dbSDominic Spill# To override the version, use cmake -DRELEASE_STRING="you_version" 3*1b6084dbSDominic Spill# If RELEASE_STRING is not explicitly set we attempt to use the latest git 4*1b6084dbSDominic Spill# commit. If cmake isn't being run from within a git repository we use the 5*1b6084dbSDominic Spill# LATEST_RELEASE variable, which developers should set before a release is 6*1b6084dbSDominic Spill# tagged 7*1b6084dbSDominic Spill 8*1b6084dbSDominic Spillif(NOT DEFINED RELEASE_STRING) 9ed5d4f18SDominic Spill set(LATEST_RELEASE "2017-03-R2") 10ed5d4f18SDominic Spill 11ed5d4f18SDominic Spill execute_process( 12ed5d4f18SDominic Spill COMMAND git log -n 1 --format=%h 13ed5d4f18SDominic Spill WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 14ed5d4f18SDominic Spill RESULT_VARIABLE GIT_EXIT_ERROR 15ed5d4f18SDominic Spill ERROR_QUIET 16ed5d4f18SDominic Spill OUTPUT_VARIABLE GIT_VERSION 17ed5d4f18SDominic Spill OUTPUT_STRIP_TRAILING_WHITESPACE 18ed5d4f18SDominic Spill ) 19ed5d4f18SDominic Spill if (GIT_EXIT_ERROR) 20ed5d4f18SDominic Spill # We're probably not in a git repo 21*1b6084dbSDominic Spill set(RELEASE_STRING ${LATEST_RELEASE}) 22ed5d4f18SDominic Spill else (GIT_EXIT_ERROR) 23ed5d4f18SDominic Spill # We're in a git repo 24ed5d4f18SDominic Spill execute_process( 25ed5d4f18SDominic Spill COMMAND git status -s --untracked-files=no 26ed5d4f18SDominic Spill OUTPUT_VARIABLE DIRTY 27ed5d4f18SDominic Spill ) 28ed5d4f18SDominic Spill if ( NOT "${DIRTY}" STREQUAL "" ) 29ed5d4f18SDominic Spill set(DIRTY_FLAG "*") 30ed5d4f18SDominic Spill else() 31ed5d4f18SDominic Spill set(DIRTY_FLAG "") 32ed5d4f18SDominic Spill endif() 33*1b6084dbSDominic Spill set(RELEASE_STRING "git-${GIT_VERSION}${DIRTY_FLAG}") 34ed5d4f18SDominic Spill endif (GIT_EXIT_ERROR) 35*1b6084dbSDominic Spillendif(NOT DEFINED RELEASE_STRING)