diff options
Diffstat (limited to 'src/lib/utils/version.cpp')
-rw-r--r-- | src/lib/utils/version.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/lib/utils/version.cpp b/src/lib/utils/version.cpp new file mode 100644 index 000000000..32679cf63 --- /dev/null +++ b/src/lib/utils/version.cpp @@ -0,0 +1,55 @@ +/* +* Version Information +* (C) 1999-2013 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#include <botan/version.h> +#include <botan/parsing.h> + +namespace Botan { + +/* + These are intentionally compiled rather than inlined, so an + application running against a shared library can test the true + version they are running against. +*/ + +/* +* Return the version as a string +*/ +std::string version_string() + { +#define QUOTE(name) #name +#define STR(macro) QUOTE(macro) + + /* + It is intentional that this string is a compile-time constant; + it makes it much easier to find in binaries. + */ + + return "Botan " STR(BOTAN_VERSION_MAJOR) "." + STR(BOTAN_VERSION_MINOR) "." + STR(BOTAN_VERSION_PATCH) " (" + BOTAN_VERSION_RELEASE_TYPE +#if (BOTAN_VERSION_DATESTAMP != 0) + ", dated " STR(BOTAN_VERSION_DATESTAMP) +#endif + ", revision " BOTAN_VERSION_VC_REVISION + ", distribution " BOTAN_DISTRIBUTION_INFO ")"; + +#undef STR +#undef QUOTE + } + +u32bit version_datestamp() { return BOTAN_VERSION_DATESTAMP; } + +/* +* Return parts of the version as integers +*/ +u32bit version_major() { return BOTAN_VERSION_MAJOR; } +u32bit version_minor() { return BOTAN_VERSION_MINOR; } +u32bit version_patch() { return BOTAN_VERSION_PATCH; } + +} |