Added gitversion,cmake and last commit epoch as patch version

pull/12/head
matt 2021-08-18 23:43:22 +01:00
parent eb53d31c1d
commit 75921c4386
No known key found for this signature in database
GPG Key ID: 089C8B076569DD58
3 changed files with 65 additions and 10 deletions

View File

@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.5.1)
set (AASDK_VERSION_MAJOR 2)
set (AASDK_VERSION_MINOR 1)
set (AASDK_VERSION_PATCH 0)
set (aasdk_VERSION_MAJOR 2)
set (aasdk_VERSION_MINOR 1)
set (aasdk_VERSION_PATCH 0)
project(aasdk
VERSION ${AASDK_VERSION_MAJOR}.${AASDK_VERSION_MINOR}.${AASDK_VERSION_PATCH}
VERSION ${aasdk_VERSION_MAJOR}.${aasdk_VERSION_MINOR}.${aasdk_VERSION_PATCH}
LANGUAGES CXX)
find_program(CCACHE_PROGRAM ccache)
@ -36,6 +36,10 @@ set(Boost_USE_STATIC_RUNTIME OFF)
add_definitions(-DBOOST_ALL_DYN_LINK)
include(${base_directory}/cmake_modules/gitversion.cmake)
set (aasdk_VERSION_PATCH ${_commit_timestamp})
set (CMAKE_PROJECT_VERSION_PATCH ${aasdk_VERSION_PATCH})
if(WIN32)
set(WINSOCK2_LIBRARIES "ws2_32")
endif(WIN32)
@ -82,9 +86,9 @@ target_link_libraries(aasdk
${OPENSSL_LIBRARIES}
${WINSOCK2_LIBRARIES})
set(AASDK_VERSION_STRING ${AASDK_VERSION_MAJOR}.${AASDK_VERSION_MINOR}.${AASDK_VERSION_PATCH})
set_target_properties(aasdk PROPERTIES VERSION ${AASDK_VERSION_STRING}
SOVERSION ${AASDK_VERSION_MAJOR})
set(aasdk_VERSION_STRING ${aasdk_VERSION_MAJOR}.${aasdk_VERSION_MINOR}.${aasdk_VERSION_PATCH})
set_target_properties(aasdk PROPERTIES VERSION ${aasdk_VERSION_STRING}
SOVERSION ${aasdk_VERSION_MAJOR})
install(TARGETS aasdk DESTINATION lib COMPONENT libraries)
install(DIRECTORY include/aasdk DESTINATION include COMPONENT headers)

View File

@ -7,9 +7,9 @@ protobuf_generate_cpp(proto_sources proto_headers ${proto_files})
add_library(aasdk_proto SHARED ${proto_headers} ${proto_sources})
target_link_libraries(aasdk_proto ${PROTOBUF_LIBRARIES})
set(AASDK_VERSION_STRING ${AASDK_VERSION_MAJOR}.${AASDK_VERSION_MINOR}.${AASDK_VERSION_PATCH})
set_target_properties(aasdk_proto PROPERTIES VERSION ${AASDK_VERSION_STRING}
SOVERSION ${AASDK_VERSION_MAJOR})
set(aasdk_VERSION_STRING ${aasdk_VERSION_MAJOR}.${aasdk_VERSION_MINOR}.${aasdk_VERSION_PATCH})
set_target_properties(aasdk_proto PROPERTIES VERSION ${aasdk_VERSION_STRING}
SOVERSION ${aasdk_VERSION_MAJOR})
install(TARGETS aasdk_proto DESTINATION lib)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DESTINATION include

View File

@ -0,0 +1,51 @@
# cmake/gitversion.cmake
cmake_minimum_required(VERSION 3.0.0)
message(STATUS "Resolving GIT Version")
set(_build_version "unknown")
set(_commit_timestamp "unknown")
find_package(Git)
if(GIT_FOUND)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY "${local_dir}"
OUTPUT_VARIABLE _build_version
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY "${local_dir}"
OUTPUT_VARIABLE _build_branch
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --format=%at
WORKING_DIRECTORY "${local_dir}"
OUTPUT_VARIABLE _commit_timestamp
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message( STATUS "GIT hash: ${_build_version}; branch: ${_build_branch}; Commit epoch: ${_commit_timestamp};")
execute_process(
COMMAND ${GIT_EXECUTABLE} diff --no-ext-diff --quiet
WORKING_DIRECTORY "${local_dir}"
RESULT_VARIABLE ret
)
if(ret EQUAL "1")
set(_build_changes "*")
else()
set(_build_changes "")
endif()
else()
message(STATUS "GIT not found")
endif()
# branch name
# git rev-parse --abbrev-ref HEAD
# changed
# git diff --no-ext-diff --quiet