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