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

Last change on this file since 1487 was 1487, checked in by Jari Häkkinen, 15 years ago

Addresses #436. GPL license copy reference should also be updated.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.0 KB
Line 
1#ifndef _theplu_yat_utility_version_
2#define _theplu_yat_utility_version_
3
4// @configure_input@
5
6// $Id: version.h.in 1487 2008-09-10 08:41:36Z jari $
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 3 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 yat. If not, see <http://www.gnu.org/licenses/>.
25*/
26
27///
28/// \file utility/version.h
29///
30
31/*
32  Compile-time version constants
33
34  \see http://apr.apache.org/versioning.html
35*/
36
37/**
38   MAJOR version
39
40   No compatibility is guarenteed between MAJOR versions.
41
42   \since New in yat 0.5
43 */
44#define YAT_MAJOR_VERSION @YAT_MAJOR_VERSION@
45
46/**
47   MINOR version
48
49   Minor API changes that do not cause binary compatibility problems.
50   Reset to 0 when upgrading YAT_MAJOR_VERSION
51
52   \since New in yat 0.5
53 */
54#define YAT_MINOR_VERSION @YAT_MINOR_VERSION@
55
56/**
57   PATCH version
58
59   The Patch level never includes API changes, simply bug fixes.
60   Reset to 0 when upgrading YAT_MINOR_VERSION
61
62   \since New in yat 0.5
63 */
64#define YAT_PATCH_VERSION @YAT_PATCH_VERSION@
65
66/**
67   VERSION
68
69   The version of yat in string format
70
71   \since New in yat 0.5
72 */
73#define YAT_VERSION "@VERSION@"
74
75/**
76   DEV_BUILD
77
78   Is set to false in releases
79
80   \since New in yat 0.5
81 */
82#define YAT_DEV_BUILD @YAT_DEV_BUILD@
83
84/**
85   Check at compile time if the version of yat is at least a certain
86   level.
87   @param major The major version component of the version checked
88   for (e.g., the "0" of "0.5.1").
89   @param minor The minor version component of the version checked
90   for (e.g., the "5" of "0.5.1").
91   @param patch The patch level component of the version checked
92   for (e.g., the "1" of "0.5.1").
93
94   \since New in yat 0.5
95 */
96#define YAT_VERSION_AT_LEAST(major,minor,patch)                    \
97(((major) < YAT_MAJOR_VERSION) ||                                    \
98 ((major) == YAT_MAJOR_VERSION && (minor) < YAT_MINOR_VERSION) || \
99 ((major) == YAT_MAJOR_VERSION && (minor) == YAT_MINOR_VERSION &&\
100  (patch) <= YAT_PATCH_VERSION))
101
102#include <string>
103
104namespace theplu {
105namespace yat {
106namespace utility {
107
108  /**
109     \return major version number of compiled yat library
110
111   \since New in yat 0.5
112   */
113  unsigned int major_version(void);
114
115  /**
116     \return minor version number of compiled yat library
117
118     \since New in yat 0.5
119   */
120  unsigned int minor_version(void);
121
122  /**
123     \return patch version number of compiled yat library
124
125     \since New in yat 0.5
126   */
127  unsigned int patch_version(void);
128
129  /**
130     \return version number of compiled yat library
131
132     \since New in yat 0.5
133   */
134  std::string version(void);
135
136}}} // of namespace utility, yat, and theplu
137
138#endif
Note: See TracBrowser for help on using the repository browser.