From 75921c438620e3361c17479baef28ebbb58bcc95 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 18 Aug 2021 23:43:22 +0100 Subject: [PATCH] Added gitversion,cmake and last commit epoch as patch version --- CMakeLists.txt | 18 +++++++----- aasdk_proto/CMakeLists.txt | 6 ++-- cmake_modules/gitversion.cmake | 51 ++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 cmake_modules/gitversion.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 8309bc0..4d69865 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/aasdk_proto/CMakeLists.txt b/aasdk_proto/CMakeLists.txt index f050119..4c0d40f 100644 --- a/aasdk_proto/CMakeLists.txt +++ b/aasdk_proto/CMakeLists.txt @@ -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 diff --git a/cmake_modules/gitversion.cmake b/cmake_modules/gitversion.cmake new file mode 100644 index 0000000..b3267b5 --- /dev/null +++ b/cmake_modules/gitversion.cmake @@ -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