From dab6f2bcf292dfd6ee629a4ad9b2216e104d7c1d Mon Sep 17 00:00:00 2001 From: Elie Tournier Date: Thu, 20 Apr 2017 14:06:56 +0100 Subject: Add a getter for the library version. This value is save when running CMake. Signed-off-by: Elie Tournier --- CMakeLists.txt | 23 +++++++++++++++++++++++ NK_C_API.cc | 4 ++++ NK_C_API.h | 8 ++++++++ 3 files changed, 35 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8259f67..537a54a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,29 @@ include(GNUInstallDirs) OPTION(LIBNITROKEY_STATIC "Build libnitrokey statically" FALSE) +# Getter for the library version +# +# If a git tag is available, we use it. +# Else, we use a git version and we raise a warning. +# +exec_program( + "git" + ${CMAKE_CURRENT_SOURCE_DIR} + ARGS "describe" + OUTPUT_VARIABLE GIT_VERSION) + +IF(${GIT_TAG} MATCHES "fatal:.*") +MESSAGE(WARNING "Unable to find a git tag. Using git version instead.") +exec_program( + "git" + ${CMAKE_CURRENT_SOURCE_DIR} + ARGS "rev-parse HEAD" + OUTPUT_VARIABLE GIT_VERSION) +ENDIF() + +MESSAGE("LIBRARY VERSION: ${GIT_VERSION} ") +ADD_DEFINITIONS(-DVERSION="${GIT_VERSION}") + IF (NOT CMAKE_BUILD_TYPE) IF(APPLE) diff --git a/NK_C_API.cc b/NK_C_API.cc index e730bae..6f4c757 100644 --- a/NK_C_API.cc +++ b/NK_C_API.cc @@ -532,6 +532,10 @@ extern "C" { } + NK_C_API const char * NK_version() { + return VERSION; + } + #ifdef __cplusplus } #endif diff --git a/NK_C_API.h b/NK_C_API.h index 3742b43..96e5836 100644 --- a/NK_C_API.h +++ b/NK_C_API.h @@ -475,6 +475,14 @@ extern "C" { */ NK_C_API int NK_get_progress_bar_value(); + /** + * Return the version of the library. + * If a git tag is available, return it else return the git version. + * This value is defined at the compilation time. + * @return the version of the library + */ + NK_C_API const char * NK_version(); + #ifdef __cplusplus } #endif -- cgit v1.2.1