diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 18:02:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 18:02:34 +0000 |
commit | fadeddfbb2aa38a980dd959b5ec1ffba7afd43cb (patch) | |
tree | a7bde6111c84ea64619656a38fba50909fa0bf60 /libevent/cmake/VersionViaGit.cmake | |
parent | Initial commit. (diff) | |
download | lldpd-fadeddfbb2aa38a980dd959b5ec1ffba7afd43cb.tar.xz lldpd-fadeddfbb2aa38a980dd959b5ec1ffba7afd43cb.zip |
Adding upstream version 1.0.18.upstream/1.0.18upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'libevent/cmake/VersionViaGit.cmake')
-rw-r--r-- | libevent/cmake/VersionViaGit.cmake | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/libevent/cmake/VersionViaGit.cmake b/libevent/cmake/VersionViaGit.cmake new file mode 100644 index 0000000..24eb6af --- /dev/null +++ b/libevent/cmake/VersionViaGit.cmake @@ -0,0 +1,66 @@ +# This module defines the following variables utilizing +# git to determine the parent tag. And if found the macro +# will attempt to parse them in the github tag fomat +# +# Useful for auto-versioning in our CMakeLists +# +# EVENT_GIT___VERSION_MAJOR - Major version. +# EVENT_GIT___VERSION_MINOR - Minor version +# EVENT_GIT___VERSION_STAGE - Stage version +# +# Example usage: +# +# event_fuzzy_version_from_git() +# message("Libvent major=${EVENT_GIT___VERSION_MAJOR}") +# message(" minor=${EVENT_GIT___VERSION_MINOR}") +# message(" patch=${EVENT_GIT___VERSION_PATCH}") +# message(" stage=${EVENT_GIT___VERSION_STAGE}") +# endif() + +include(FindGit) + +macro(event_fuzzy_version_from_git) + # set our defaults. + set(EVENT_GIT___VERSION_MAJOR 2) + set(EVENT_GIT___VERSION_MINOR 1) + set(EVENT_GIT___VERSION_PATCH 12) + set(EVENT_GIT___VERSION_STAGE "stable") + + find_package(Git) + + if (GIT_FOUND) + execute_process( + COMMAND + ${GIT_EXECUTABLE} describe --abbrev=0 --always + WORKING_DIRECTORY + ${PROJECT_SOURCE_DIR} + RESULT_VARIABLE + GITRET + OUTPUT_VARIABLE + GITVERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + string(REGEX REPLACE "[\\._-]" ";" VERSION_LIST "${GITVERSION}") + if(VERSION_LIST) + list(LENGTH VERSION_LIST VERSION_LIST_LENGTH) + endif() + + if ((GITRET EQUAL 0) AND (VERSION_LIST_LENGTH EQUAL 5)) + list(GET VERSION_LIST 1 _MAJOR) + list(GET VERSION_LIST 2 _MINOR) + list(GET VERSION_LIST 3 _PATCH) + list(GET VERSION_LIST 4 _STAGE) + + set(_DEFAULT_VERSION "${EVENT_GIT___VERSION_MAJOR}.${EVENT_GIT___VERSION_MINOR}.${EVENT_GIT___VERSION_PATCH}-${EVENT_GIT___VERSION_STAGE}") + set(_GIT_VERSION "${_MAJOR}.${_MINOR}.${_PATCH}-${_STAGE}") + + if (${_DEFAULT_VERSION} VERSION_LESS ${_GIT_VERSION}) + set(EVENT_GIT___VERSION_MAJOR ${_MAJOR}) + set(EVENT_GIT___VERSION_MINOR ${_MINOR}) + set(EVENT_GIT___VERSION_PATCH ${_PATCH}) + set(EVENT_GIT___VERSION_STAGE ${_STAGE}) + endif() + endif() + endif() +endmacro() |