source: trunk/yat/utility/version.h.in @ 1416

Last change on this file since 1416 was 1416, checked in by Peter, 13 years ago

adding pp macro to conveinently compare version

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.1 KB
Line 
1#ifndef _theplu_yat_utility_version_
2#define _theplu_yat_utility_version_
3
4// @configure_input@
5
6// $Id: version.h.in 1416 2008-08-18 22:00:05Z peter $
7
8/*
9  Copyright (C) 2008 Peter Johansson
10
11  This file is part of the yat library, http://trac.thep.lu.se/yat
12
13  The yat library is free software; you can redistribute it and/or
14  modify it under the terms of the GNU General Public License as
15  published by the Free Software Foundation; either version 2 of the
16  License, or (at your option) any later version.
17
18  The yat library is distributed in the hope that it will be useful,
19  but WITHOUT ANY WARRANTY; without even the implied warranty of
20  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21  General Public License for more details.
22
23  You should have received a copy of the GNU General Public License
24  along with this program; if not, write to the Free Software
25  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
26  02111-1307, USA.
27*/
28
29///
30/// \file utility/version.h
31///
32
33/*
34  Compile-time version constants
35
36  \see http://apr.apache.org/versioning.html
37*/
38
39/**
40   MAJOR version
41
42   No compatibility is guarenteed between MAJOR versions.
43
44   \since New in yat 0.5
45 */
46#define YAT_MAJOR_VERSION @YAT_MAJOR_VERSION@
47
48/**
49   MINOR version
50
51   Minor API changes that do not cause binary compatibility problems.
52   Reset to 0 when upgrading YAT_MAJOR_VERSION
53
54   \since New in yat 0.5
55 */
56#define YAT_MINOR_VERSION @YAT_MINOR_VERSION@
57
58/**
59   PATCH version
60
61   The Patch level never includes API changes, simply bug fixes.
62   Reset to 0 when upgrading YAT_MINOR_VERSION
63
64   \since New in yat 0.5
65 */
66#define YAT_PATCH_VERSION @YAT_PATCH_VERSION@
67
68/**
69   VERSION
70
71   The version of yat in string format
72
73   \since New in yat 0.5
74 */
75#define YAT_VERSION "@VERSION@"
76
77/**
78   DEV_BUILD
79
80   Is set to false in releases
81
82   \since New in yat 0.5
83 */
84#define YAT_DEV_BUILD @YAT_DEV_BUILD@
85
86/**
87   Check at compile time if the version of yat is at least a certain
88   level.
89   @param major The major version component of the version checked
90   for (e.g., the "0" of "0.5.1").
91   @param minor The minor version component of the version checked
92   for (e.g., the "5" of "0.5.1").
93   @param patch The patch level component of the version checked
94   for (e.g., the "1" of "0.5.1").
95
96   \since New in yat 0.5
97 */
98#define YAT_VERSION_AT_LEAST(major,minor,patch)                    \
99(((major) < YAT_MAJOR_VERSION) ||                                    \
100 ((major) == YAT_MAJOR_VERSION && (minor) < YAT_MINOR_VERSION) || \
101 ((major) == YAT_MAJOR_VERSION && (minor) == YAT_MINOR_VERSION &&\
102  (patch) <= YAT_PATCH_VERSION))
103
104#include <string>
105
106namespace theplu {
107namespace yat {
108namespace utility {
109
110  /**
111     \return major version number of compiled yat library
112
113   \since New in yat 0.5
114   */
115  unsigned int major_version(void);
116
117  /**
118     \return minor version number of compiled yat library
119
120     \since New in yat 0.5
121   */
122  unsigned int minor_version(void);
123
124  /**
125     \return patch version number of compiled yat library
126
127     \since New in yat 0.5
128   */
129  unsigned int patch_version(void);
130
131  /**
132     \return version number of compiled yat library
133
134     \since New in yat 0.5
135   */
136  std::string version(void);
137
138}}} // of namespace utility, yat, and theplu
139
140#endif
Note: See TracBrowser for help on using the repository browser.