Version Checking¶
The library has functions for checking compile-time and runtime versions.
All versions are of the tuple (major,minor,patch). Even minor versions indicate stable releases while odd minor versions indicate a development release.
The compile time version information is defined in botan/build.h
-
BOTAN_VERSION_MAJOR
¶ The major version of the release.
-
BOTAN_VERSION_MINOR
¶ The minor version of the release.
-
BOTAN_VERSION_PATCH
¶ The patch version of the release.
-
BOTAN_VERSION_DATESTAMP
¶ Expands to an integer of the form YYYYMMDD if this is an official release, or 0 otherwise. For instance, 1.10.1, which was released on July 11, 2011, has a BOTAN_VERSION_DATESTAMP of 20110711.
-
BOTAN_DISTRIBUTION_INFO
¶ New in version 1.9.3.
A macro expanding to a string that is set at build time using the
--distribution-info
option. It allows a packager of the library to specify any distribution-specific patches. If no value is given at build time, the value is ‘unspecified’.
-
BOTAN_VERSION_VC_REVISION
¶ New in version 1.10.1.
A macro expanding to a string that is set to a revision identifier cooresponding to the source, or ‘unknown’ if this could not be determined. It is set for all official releases and for builds that originated from within a Monotone workspace.
The runtime version information, and some helpers for compile time version checks, are included in botan/version.h
-
std::string
version_string
()¶ Returns a single-line string containing relevant information about this build and version of the library in an unspecified format.
-
u32bit
version_major
()¶ Returns the major part of the version.
-
u32bit
version_minor
()¶ Returns the minor part of the version.
-
u32bit
version_patch
()¶ Returns the patch part of the version.
-
u32bit
version_datestamp
()¶ Return the datestamp of the release (or 0 if the current version is not an official release).
-
BOTAN_VERSION_CODE_FOR
(maj, min, patch)¶ Return a value that can be used to compare versions. The current (compile-time) version is available as the macro BOTAN_VERSION_CODE. For instance, to choose one code path for versions before 1.10 and another for 1.10 or later:
#if BOTAN_VERSION_CODE >= BOTAN_VERSION_CODE_FOR(1,10,0) // 1.10 code path #else // pre-1.10 code path #endif