tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

VersionViaGit.cmake (1978B)


      1 # This module defines the following variables utilizing
      2 # git to determine the parent tag. And if found the macro
      3 # will attempt to parse them in the github tag fomat
      4 #
      5 # Useful for auto-versioning in our CMakeLists
      6 #
      7 #  EVENT_GIT___VERSION_MAJOR - Major version.
      8 #  EVENT_GIT___VERSION_MINOR - Minor version
      9 #  EVENT_GIT___VERSION_STAGE - Stage version
     10 #
     11 # Example usage:
     12 #
     13 # event_fuzzy_version_from_git()
     14 #    message("Libvent major=${EVENT_GIT___VERSION_MAJOR}")
     15 #    message("        minor=${EVENT_GIT___VERSION_MINOR}")
     16 #    message("        patch=${EVENT_GIT___VERSION_PATCH}")
     17 #    message("        stage=${EVENT_GIT___VERSION_STAGE}")
     18 # endif()
     19 
     20 include(FindGit)
     21 
     22 macro(event_fuzzy_version_from_git)
     23 # set our defaults.
     24 set(EVENT_GIT___VERSION_MAJOR 2)
     25 set(EVENT_GIT___VERSION_MINOR 1)
     26 set(EVENT_GIT___VERSION_PATCH 12)
     27 set(EVENT_GIT___VERSION_STAGE "stable")
     28 
     29 find_package(Git)
     30 
     31 if (GIT_FOUND)
     32 	execute_process(
     33 		COMMAND
     34 			${GIT_EXECUTABLE} describe --abbrev=0 --always
     35 		WORKING_DIRECTORY
     36 			${PROJECT_SOURCE_DIR}
     37 		RESULT_VARIABLE
     38 			GITRET
     39 		OUTPUT_VARIABLE
     40 			GITVERSION
     41 		OUTPUT_STRIP_TRAILING_WHITESPACE
     42 	)
     43 
     44 	string(REGEX REPLACE "[\\._-]" ";" VERSION_LIST "${GITVERSION}")
     45 	if(VERSION_LIST)
     46 		list(LENGTH VERSION_LIST VERSION_LIST_LENGTH)
     47 	endif()
     48 
     49 	if ((GITRET EQUAL 0) AND (VERSION_LIST_LENGTH EQUAL 5))
     50 		list(GET VERSION_LIST 1 _MAJOR)
     51 		list(GET VERSION_LIST 2 _MINOR)
     52 		list(GET VERSION_LIST 3 _PATCH)
     53 		list(GET VERSION_LIST 4 _STAGE)
     54 
     55 		set(_DEFAULT_VERSION "${EVENT_GIT___VERSION_MAJOR}.${EVENT_GIT___VERSION_MINOR}.${EVENT_GIT___VERSION_PATCH}-${EVENT_GIT___VERSION_STAGE}")
     56 		set(_GIT_VERSION     "${_MAJOR}.${_MINOR}.${_PATCH}-${_STAGE}")
     57 
     58 		if (${_DEFAULT_VERSION} VERSION_LESS ${_GIT_VERSION})
     59 			set(EVENT_GIT___VERSION_MAJOR ${_MAJOR})
     60 			set(EVENT_GIT___VERSION_MINOR ${_MINOR})
     61 			set(EVENT_GIT___VERSION_PATCH ${_PATCH})
     62 			set(EVENT_GIT___VERSION_STAGE ${_STAGE})
     63 		endif()
     64 	endif()
     65 endif()
     66 endmacro()