diff --git a/CMakeLists.txt b/CMakeLists.txt index c4aec17..dc351a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,8 +3,15 @@ cmake_minimum_required(VERSION 3.10) +include(cmake/GitVersion.cmake) + +message("version ${GIT_VERSION}") +message("major ${GIT_VERSION_MAJOR}") +message("minor ${GIT_VERSION_MINOR}") +message("patch ${GIT_VERSION_PATCH}") + project(greentea-client - VERSION 0.1 + VERSION ${GIT_VERSION_MAJOR}.${GIT_VERSION_MINOR}.${GIT_VERSION_PATCH} DESCRIPTION "Greentea client" LANGUAGES C CXX ) @@ -21,6 +28,11 @@ target_sources(greentea-client source/greentea_test_env.cpp ) +target_compile_definitions(greentea-client + PUBLIC + GIT_VERSION=${GIT_VERSION} +) + # Default IO SET(GREENTEA_CLIENT_STDIO ON CACHE BOOL "Use stdio for IO") diff --git a/cmake/GitVersion.cmake b/cmake/GitVersion.cmake new file mode 100644 index 0000000..4814a81 --- /dev/null +++ b/cmake/GitVersion.cmake @@ -0,0 +1,16 @@ +# Copyright (c) 2021 ARM Limited. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +execute_process(COMMAND git describe --tags --abbrev=12 --dirty --always + OUTPUT_VARIABLE GIT_VERSION + ERROR_QUIET) + +if (GIT_VERSION MATCHES "^v([0-9]+)\.([0-9]+)\.([0-9]+)") + set(GIT_VERSION_MAJOR ${CMAKE_MATCH_1}) + set(GIT_VERSION_MINOR ${CMAKE_MATCH_2}) + set(GIT_VERSION_PATCH ${CMAKE_MATCH_3}) +else() + set(GIT_VERSION_MAJOR 0) + set(GIT_VERSION_MINOR 0) + set(GIT_VERSION_PATCH 0) +endif() diff --git a/include/greentea-client/test_env.h b/include/greentea-client/test_env.h index a5e0aea..26b7ee1 100644 --- a/include/greentea-client/test_env.h +++ b/include/greentea-client/test_env.h @@ -22,7 +22,6 @@ #include "greentea-client/test_io.h" #ifdef __cplusplus -#define GREENTEA_CLIENT_VERSION_STRING "1.3.0" /** * Auxilary macros diff --git a/source/greentea_test_env.cpp b/source/greentea_test_env.cpp index 83e269a..32fce7c 100644 --- a/source/greentea_test_env.cpp +++ b/source/greentea_test_env.cpp @@ -20,6 +20,10 @@ #include #include "greentea-client/test_env.h" +#define str(s) #s +#define xstr(s) str(s) +#define GIT_VERSION_STRING xstr(GIT_VERSION) + /** * Generic test suite transport protocol keys */ @@ -476,7 +480,7 @@ static void greentea_notify_completion(const int result) */ static void greentea_notify_version() { - greentea_send_kv(GREENTEA_TEST_ENV_HOST_TEST_VERSION, GREENTEA_CLIENT_VERSION_STRING); + greentea_send_kv(GREENTEA_TEST_ENV_HOST_TEST_VERSION, GIT_VERSION_STRING); } /**