UniMRCP  1.3.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
uni_version.h
Go to the documentation of this file.
1 /*
2  * Copyright 2008-2014 Arsen Chaloyan
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  * $Id: uni_version.h 2271 2015-02-03 03:27:46Z achaloyan@gmail.com $
17  */
18 
19 #ifndef UNI_VERSION_H
20 #define UNI_VERSION_H
21 
22 /**
23  * @file uni_version.h
24  * @brief UniMRCP Version
25  *
26  * UniMRCP uses a version numbering scheme derived from the APR project.
27  *
28  * <a href="http://apr.apache.org/versioning.html"> APR's Version Numbering </a>
29  */
30 
31 /** major version
32  * Major API changes that could cause compatibility problems for older
33  * programs such as structure size changes. No binary compatibility is
34  * possible across a change in the major version.
35  */
36 #define UNI_MAJOR_VERSION 1
37 
38 /** minor version
39  * Minor API changes that do not cause binary compatibility problems.
40  * Reset to 0 when upgrading UNI_MAJOR_VERSION.
41  */
42 #define UNI_MINOR_VERSION 3
43 
44 /** patch level
45  * The Patch Level never includes API changes, simply bug fixes.
46  * Reset to 0 when upgrading UNI_MINOR_VERSION.
47  */
48 #define UNI_PATCH_VERSION 0
49 
50 
51 /** Check at compile time if the version of UniMRCP is at least a certain level. */
52 #define UNI_VERSION_AT_LEAST(major,minor,patch) \
53 (((major) < UNI_MAJOR_VERSION) \
54  || ((major) == UNI_MAJOR_VERSION && (minor) < UNI_MINOR_VERSION) \
55  || ((major) == UNI_MAJOR_VERSION && (minor) == UNI_MINOR_VERSION && (patch) <= UNI_PATCH_VERSION))
56 
57 /** Properly quote a value as a string in the C preprocessor. */
58 #define UNI_STRINGIFY(n) UNI_STRINGIFY_HELPER(n)
59 /** Helper macro for UNI_STRINGIFY. */
60 #define UNI_STRINGIFY_HELPER(n) #n
61 
62 /** The formatted string of UniMRCP's version. */
63 #define UNI_VERSION_STRING \
64  UNI_STRINGIFY(UNI_MAJOR_VERSION) "." \
65  UNI_STRINGIFY(UNI_MINOR_VERSION) "." \
66  UNI_STRINGIFY(UNI_PATCH_VERSION)
67 
68 /** An alternative formatted string of UniMRCP's version
69  macro for Win32 .rc files using numeric CSV representation. */
70 #define UNI_VERSION_STRING_CSV UNI_MAJOR_VERSION ##, \
71  ##UNI_MINOR_VERSION ##, \
72  ##UNI_PATCH_VERSION
73 
74 /** The Copyright. */
75 #define UNI_COPYRIGHT "Copyright 2008-2014 Arsen Chaloyan"
76 
77 /*
78  * Use the brief description of the license for Win32 .rc files;
79  * otherwise, use the full description.
80  */
81 #if defined(APSTUDIO_INVOKED) || defined(RC_INVOKED)
82 /** The License (brief description). */
83 #define UNI_LICENSE "The Apache License, Version 2.0"
84 #else
85 /** The License (full description). */
86 #define UNI_LICENSE \
87  " * Licensed under the Apache License, Version 2.0 (the ""License"");\n" \
88  " * you may not use this file except in compliance with the License.\n" \
89  " * You may obtain a copy of the License at\n" \
90  " * \n" \
91  " * http://www.apache.org/licenses/LICENSE-2.0 \n" \
92  " * \n" \
93  " * Unless required by applicable law or agreed to in writing, software\n" \
94  " * distributed under the License is distributed on an ""AS IS"" BASIS,\n" \
95  " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" \
96  " * See the License for the specific language governing permissions and\n" \
97  " * limitations under the License.\n"
98 #endif /* APSTUDIO_INVOKED || RC_INVOKED */
99 
100 #endif /* UNI_VERSION_H */