aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/version.h
blob: 1b6bd1c97334b136638a0fb2b219091f0b2f31e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/*************************************************
* Version Information Header File                *
* (C) 1999-2007 Jack Lloyd                       *
*************************************************/

#ifndef BOTAN_VERSION_H__
#define BOTAN_VERSION_H__

#include <botan/types.h>
#include <string>

namespace Botan {

/*************************************************
* Get information describing the version         *
*************************************************/

/**
* Get the version string identifying the version of Botan.
* @return the version string
*/
BOTAN_DLL std::string version_string();

/**
* Get the major version number.
* @return the major version number
*/
BOTAN_DLL u32bit version_major();

/**
* Get the minor version number.
* @return the minor version number
*/
BOTAN_DLL u32bit version_minor();

/**
* Get the patch number.
* @return the patch number
*/
BOTAN_DLL u32bit version_patch();

/*************************************************
* Macros for compile-time version checks         *
*************************************************/
#define BOTAN_VERSION_CODE_FOR(a,b,c) ((a << 16) | (b << 8) | (c))

/**
* Compare using BOTAN_VERSION_CODE_FOR, as in
*  #if BOTAN_VERSION_CODE < BOTAN_VERSION_CODE_FOR(1,8,0)
*      #error "Botan version too old"
*  #endif
*/
#define BOTAN_VERSION_CODE BOTAN_VERSION_CODE_FOR(BOTAN_VERSION_MAJOR, \
                                                  BOTAN_VERSION_MINOR, \
                                                  BOTAN_VERSION_PATCH)

}

#endif