Versioning (#515)

* making sure that git checkout of tags, doesn't get incrementing numbers when master gets more commits
This commit is contained in:
Kjell Hedström - seeking Senior Engineering roles as well as contract opportunities 2023-12-06 20:14:22 -07:00 committed by GitHub
parent 626191a62d
commit 5980182db0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 7 deletions

View File

@ -68,28 +68,27 @@ endif()
# Calculate the version number # Calculate the version number
SET(MAJOR_VERSION 2) SET(MAJOR_VERSION 2)
SET(MINOR_VERSION 3) SET(MINOR_VERSION 4)
IF ( NOT VERSION ) IF ( NOT VERSION )
IF ( "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows" ) IF ( "${CMAKE_HOST_SYSTEM_NAME}" STREQUAL "Windows" )
message("windows: Extracting git software version") message("windows: Extracting git software version")
execute_process(COMMAND cmd /c "git rev-list --branches HEAD | find /v " " /c" OUTPUT_VARIABLE GIT_VERSION WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) execute_process(COMMAND cmd /c "git rev-list ${MAJOR_VERSION}.${MINOR_VERSION}..HEAD | find /v " " /c" OUTPUT_VARIABLE GIT_RELEASE_COMMITS WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
ELSE() ELSE()
IF(UNIX OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") IF(UNIX OR ${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
message( STATUS "nix: Extracting git software version" ) message( STATUS "nix: Extracting git software version" )
ELSE() ELSE()
message( STATUS "unknown platform: extracting git software version" ) message( STATUS "unknown platform: extracting git software version" )
ENDIF() ENDIF()
execute_process(COMMAND bash "-c" "git rev-list --branches HEAD | wc -l | tr -d ' ' | tr -d '\n'" OUTPUT_VARIABLE GIT_VERSION WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) execute_process(COMMAND bash "-c" "git rev-list ${MAJOR_VERSION}.${MINOR_VERSION}..HEAD | wc -l" OUTPUT_VARIABLE GIT_RELEASE_COMMITS WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
ENDIF() ENDIF()
math(EXPR VERSION-BASE ${GIT_VERSION}/255) string(STRIP ${GIT_RELEASE_COMMITS} GIT_RELEASE_COMMITS)
math(EXPR VERSION-REMAINDER ${GIT_VERSION}%255)
message( STATUS "git build version: ${GIT_VERSION}" ) message( STATUS "git build version: ${GIT_VERSION}" )
message( STATUS "version base: ${VERSION-BASE}" ) message( STATUS "version base: ${VERSION-BASE}" )
message( STATUS "version remainder: ${VERSION-REMAINDER}" ) message( STATUS "version remainder: ${VERSION-REMAINDER}" )
SET(BUILD_NUMBER ${VERSION-BASE}) SET(BUILD_NUMBER ${VERSION-BASE})
SET(VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${BUILD_NUMBER}-${VERSION-REMAINDER}) SET(VERSION ${MAJOR_VERSION}.${MINOR_VERSION}-${GIT_RELEASE_COMMITS}) #-${VERSION-REMAINDER})
ENDIF() ENDIF()
message( STATUS "Software Version: ${VERSION}" ) message( STATUS "Software Version: ${VERSION}" )

View File

@ -24,7 +24,7 @@ INCLUDE(GNUInstallDirs)
SET(CPACK_PACKAGE_NAME g3log) SET(CPACK_PACKAGE_NAME g3log)
SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION}) SET(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
SET(CPACK_PACKAGE_VERSION_PATCH ${BUILD_NUMBER}) SET(CPACK_PACKAGE_VERSION_PATCH ${GIT_RELEASE_COMMITS})
SET(CPACK_PACKAGE_DESCRIPTION "Asynchronous 'crash safe' logger SET(CPACK_PACKAGE_DESCRIPTION "Asynchronous 'crash safe' logger
License: http://unlicense.org License: http://unlicense.org
Repository: https://github.com/KjellKod/g3log") Repository: https://github.com/KjellKod/g3log")