find_package(Git) if( Git_FOUND ) execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD WORKING_DIRECTORY ${STOCHASSRC} OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND ${GIT_EXECUTABLE} log -1 --format=%h WORKING_DIRECTORY ${STOCHASSRC} OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE ) else() message( WARNING "Git isn't present in your path. Setting hashes to defaults" ) set( GIT_BRANCH "git-not-present" ) set( GIT_COMMIT_HASH "git-not-present" ) endif() if( WIN32 ) set( STOCHAS_BUILD_ARCH "Intel" ) else() execute_process( COMMAND uname -m OUTPUT_VARIABLE STOCHAS_BUILD_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE ) endif() cmake_host_system_information(RESULT STOCHAS_BUILD_FQDN QUERY FQDN ) message( STATUS "Setting up surge version" ) message( STATUS " git hash is ${GIT_COMMIT_HASH} and branch is ${GIT_BRANCH}" ) message( STATUS " buildhost is ${STOCHAS_BUILD_FQDN}" ) message( STATUS " buildarch is ${STOCHAS_BUILD_ARCH}" ) if( ${AZURE_PIPELINE} ) message( STATUS "Azure Pipeline Build" ) set( lpipeline "pipeline" ) else() message( STATUS "Developer Local Build" ) set( lpipeline "local" ) endif() if(${GIT_BRANCH} STREQUAL "main" ) if( ${AZURE_PIPELINE} ) set( lverpatch "nightly" ) else() set( lverpatch "main" ) endif() set( lverrel "999" ) set( fverpatch ${lverpatch} ) else() string( FIND ${GIT_BRANCH} "release/" RLOC ) if( ${RLOC} EQUAL 0 ) message( STATUS "Configuring a Release Build from '${GIT_BRANCH}'" ) string( SUBSTRING ${GIT_BRANCH} 11 100 RV ) # that's release slash 1.7. string( FIND ${RV} "." DLOC ) if( NOT ( DLOC EQUAL -1 ) ) math( EXPR DLP1 "${DLOC} + 1" ) string( SUBSTRING ${RV} ${DLP1} 100 LRV ) # skip that first dots set( lverrel ${LRV} ) else() set( lverrel "99" ) endif() set( lverpatch "stable-${lverrel}" ) set( fverpatch "${lverrel}" ) else() set( lverpatch ${GIT_BRANCH} ) set( fverpatch ${lverpatch} ) set( lverrel "1000" ) endif() endif() set( STOCHAS_FULL_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}.${fverpatch}.${GIT_COMMIT_HASH}" ) set( STOCHAS_MAJOR_VERSION "${PROJECT_VERSION_MAJOR}" ) set( STOCHAS_SUB_VERSION "${PROJECT_VERSION_MINOR}" ) set( STOCHAS_RELEASE_VERSION "${lverpatch}" ) set( STOCHAS_RELEASE_NUMBER "${lverrel}" ) set( STOCHAS_BUILD_HASH "${GIT_COMMIT_HASH}" ) set( STOCHAS_BUILD_LOCATION "${lpipeline}" ) string( TIMESTAMP STOCHAS_BUILD_DATE "%Y-%m-%d" ) string( TIMESTAMP STOCHAS_BUILD_TIME "%H:%M:%S" ) message( STATUS "Using STOCHAS_VERSION=${STOCHAS_FULL_VERSION}" ) message( STATUS "Configuring ${STOCHASBLD}/geninclude/version.cpp" ) configure_file( ${STOCHASSRC}/src/version.cpp.in ${STOCHASBLD}/geninclude/version.cpp )