• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1set(VERSION_MAJOR 2)
2set(VERSION_MINOR 0)
3set(VERSION_PATCH 0)
4set(VERSION_COMMIT 0)
5
6find_program(GIT git)
7if(GIT)
8  execute_process(
9      COMMAND ${GIT} describe
10      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
11      OUTPUT_VARIABLE GIT_DESCRIBE_DIRTY
12      OUTPUT_STRIP_TRAILING_WHITESPACE
13      RESULT_VARIABLE GIT_DESCRIBE_RESULT
14  )
15
16  if(GIT_DESCRIBE_RESULT EQUAL 0)
17    string(REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${GIT_DESCRIBE_DIRTY}")
18    string(REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_DESCRIBE_DIRTY}")
19    string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${GIT_DESCRIBE_DIRTY}")
20    string(REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_DESCRIBE_DIRTY}")
21  else()
22    message(WARNING "git describe failed with exit code: ${GIT_DESCRIBE_RESULT}")
23  endif()
24else()
25  message(WARNING "git is not found")
26endif()
27
28message(STATUS "Proceeding with version: ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}.${VERSION_COMMIT}")
29