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