Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/cmake/modules/get-version.cmake b/cmake/modules/get-version.cmake
- index 65377c5b..59712772 100644
- --- a/cmake/modules/get-version.cmake
- +++ b/cmake/modules/get-version.cmake
- @@ -7,6 +7,63 @@ unset(PSI_REVISION)
- unset(PSI_PLUS_REVISION)
- set(VERSION_OBTAINED OFF)
- +function(read_version_file VF_RESULT)
- + if(EXISTS "${VER_FILE}")
- + message(STATUS "Found Psi version file: ${VER_FILE}")
- + file(STRINGS "${VER_FILE}" VER_LINES)
- + if(VER_LINES)
- + set(${VF_RESULT} ${VER_LINES} PARENT_SCOPE)
- + else()
- + message(FATAL_ERROR "Can't read ${VER_FILE} contents")
- + endif()
- + else()
- + message(FATAL_ERROR "${VER_FILE} not found")
- + endif()
- +endfunction()
- +
- +function(obtain_git_psi_version GIT_PSI_VERSION)
- + find_program(GIT_BIN git DOC "Path to git utility")
- + if(GIT_BIN)
- + message(STATUS "Git utility found ${GIT_BIN}")
- + execute_process(
- + COMMAND ${GIT_BIN} describe --tags --abbrev=0
- + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- + OUTPUT_VARIABLE MAIN_VER
- + OUTPUT_STRIP_TRAILING_WHITESPACE
- + )
- + if(MAIN_VER)
- + set(APP_VERSION "${MAIN_VER}" PARENT_SCOPE)
- + set(${GIT_PSI_VERSION} ${MAIN_VER} PARENT_SCOPE)
- + endif()
- + endif()
- +endfunction()
- +
- +function(obtain_git_psi_plus_version GIT_PSI_PLUS_VERSION)
- + find_program(GIT_BIN git DOC "Path to git utility")
- + if(GIT_BIN)
- + obtain_git_psi_version(GIT_VER)
- + if(GIT_VER)
- + execute_process(
- + COMMAND ${GIT_BIN} rev-list --count ${GIT_VER}\.\.HEAD
- + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- + OUTPUT_VARIABLE COMMITS
- + OUTPUT_STRIP_TRAILING_WHITESPACE
- + )
- + if(COMMITS)
- + execute_process(
- + COMMAND ${GIT_BIN} rev-parse --short HEAD
- + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
- + OUTPUT_VARIABLE VER_HASH
- + OUTPUT_STRIP_TRAILING_WHITESPACE
- + )
- + endif()
- + if(COMMITS AND VER_HASH)
- + set(${GIT_PSI_PLUS_VERSION} "${GIT_VER}.${COMMITS} \(${PSI_COMPILATION_DATE}, ${VER_HASH}${PSI_VER_SUFFIX}\)" PARENT_SCOPE)
- + endif()
- + endif()
- + endif()
- +endfunction()
- +
- function(obtain_psi_version VERSION_LINES)
- set(_VLINES ${VERSION_LINES})
- string(REGEX MATCH "^[0-9]+\\.[0-9]+" _VER_LINE ${_VLINES})
- @@ -25,7 +82,7 @@ endfunction()
- function(obtain_psi_plus_version VERSION_LINES)
- set(_VLINES ${VERSION_LINES})
- - string(REGEX MATCHALL "^([0-9]+\\.[0-9]+\\.[0-9]+)+.+Psi:([a-fA-F0-9]+)+.+Psi\\+:([a-fA-F0-9]+)+" VER_LINE_A ${VER_LINES})
- + string(REGEX MATCHALL "^([0-9]+\\.[0-9]+\\.[0-9]+)+.+Psi:([a-fA-F0-9]+)+.+Psi\\+:([a-fA-F0-9]+)+" VER_LINE_A ${_VLINES})
- if(${CMAKE_MATCH_COUNT} EQUAL 3)
- if(CMAKE_MATCH_1)
- set(_APP_VERSION ${CMAKE_MATCH_1})
- @@ -57,21 +114,37 @@ function(obtain_psi_plus_version VERSION_LINES)
- endif()
- endfunction()
- -if(NOT PSI_VERSION AND (EXISTS "${VER_FILE}"))
- - message(STATUS "Found Psi version file: ${VER_FILE}")
- - file(STRINGS "${VER_FILE}" VER_LINES)
- +if(NOT PSI_VERSION)# AND (EXISTS "${VER_FILE}"))
- if(IS_PSIPLUS)
- - obtain_psi_plus_version("${VER_LINES}")
- - if(VERSION_OBTAINED)
- - set(PSI_VERSION "${APP_VERSION} \(${PSI_COMPILATION_DATE}, Psi:${PSI_REVISION}, Psi+:${PSI_PLUS_REVISION}${PSI_VER_SUFFIX}\)")
- + obtain_git_psi_plus_version(GITVER)
- + if(GITVER)
- + message(STATUS "Git Version ${GITVER}")
- + set(PSI_VERSION "${GITVER}")
- + else()
- + read_version_file(VER_LINES)
- + obtain_psi_plus_version("${VER_LINES}")
- + if(VER_LINES)
- + set(PSI_VERSION "${APP_VERSION} \(${PSI_COMPILATION_DATE}, Psi:${PSI_REVISION}, Psi+:${PSI_PLUS_REVISION}${PSI_VER_SUFFIX}\)")
- + endif()
- endif()
- else()
- - obtain_psi_version("${VER_LINES}")
- - if(VERSION_OBTAINED)
- + obtain_git_psi_version(GITVER)
- + if(GITVER)
- + message(STATUS "Git Version ${GITVER}")
- if(PRODUCTION)
- - set(PSI_VERSION "${APP_VERSION}")
- + set(PSI_VERSION "${GITVER}")
- else()
- - set(PSI_VERSION "${APP_VERSION} \(${PSI_COMPILATION_DATE}${PSI_VER_SUFFIX}\)")
- + set(PSI_VERSION "${GITVER} \(${PSI_COMPILATION_DATE}${PSI_VER_SUFFIX}\)")
- + endif()
- + else()
- + read_version_file(VER_LINES)
- + obtain_psi_version("${VER_LINES}")
- + if(VERSION_OBTAINED)
- + if(PRODUCTION)
- + set(PSI_VERSION "${APP_VERSION}")
- + else()
- + set(PSI_VERSION "${APP_VERSION} \(${PSI_COMPILATION_DATE}${PSI_VER_SUFFIX}\)")
- + endif()
- endif()
- endif()
- endif()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement