version UPDATE provide run-time version info
Fixes #2260
diff --git a/src/version.h.in b/src/version.h.in
index b1b7387..1ed86c1 100644
--- a/src/version.h.in
+++ b/src/version.h.in
@@ -1,9 +1,10 @@
/**
* @file version.h
* @author Radek Krejci <rkrejci@cesnet.cz>
+ * @author Michal Vasko <mvasko@cesnet.cz>
* @brief libyang version definitions
*
- * Copyright (c) 2020 CESNET, z.s.p.o.
+ * Copyright (c) 2020 - 2024 CESNET, z.s.p.o.
*
* This source code is licensed under BSD 3-Clause License (the "License").
* You may not use this file except in compliance with the License.
@@ -15,6 +16,10 @@
#ifndef LY_VERSION_H_
#define LY_VERSION_H_
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define LY_VERSION_MAJOR @LIBYANG_MAJOR_SOVERSION@ /**< libyang major version number */
#define LY_VERSION_MINOR @LIBYANG_MINOR_SOVERSION@ /**< libyang minor version number */
#define LY_VERSION_MICRO @LIBYANG_MICRO_SOVERSION@ /**< libyang micro version number */
@@ -25,4 +30,25 @@
#define LY_PROJ_VERSION_MICRO @LIBYANG_MICRO_VERSION@ /**< project micro version number */
#define LY_PROJ_VERSION "@LIBYANG_VERSION@" /**< project version string */
+struct ly_version {
+ uint32_t major; /**< Major version number */
+ uint32_t minor; /**< Minor version number */
+ uint32_t micro; /**< Micro version number */
+ const char *str; /**< Version string */
+};
+
+/**
+ * @brief libyang SO version.
+ */
+LIBYANG_API_DECL extern struct ly_version ly_version_so;
+
+/**
+ * @brief libyang project version.
+ */
+LIBYANG_API_DECL extern struct ly_version ly_version_proj;
+
+#ifdef __cplusplus
+}
+#endif
+
#endif /* LY_VERSION_H_ */