aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt23
-rw-r--r--NK_C_API.cc4
-rw-r--r--NK_C_API.h8
3 files changed, 35 insertions, 0 deletions
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