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