Subversion
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
usr
include
subversion-1
svn_version.h
Go to the documentation of this file.
1
/**
2
* @copyright
3
* ====================================================================
4
* Licensed to the Apache Software Foundation (ASF) under one
5
* or more contributor license agreements. See the NOTICE file
6
* distributed with this work for additional information
7
* regarding copyright ownership. The ASF licenses this file
8
* to you under the Apache License, Version 2.0 (the
9
* "License"); you may not use this file except in compliance
10
* with the License. You may obtain a copy of the License at
11
*
12
* http://www.apache.org/licenses/LICENSE-2.0
13
*
14
* Unless required by applicable law or agreed to in writing,
15
* software distributed under the License is distributed on an
16
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17
* KIND, either express or implied. See the License for the
18
* specific language governing permissions and limitations
19
* under the License.
20
* ====================================================================
21
* @endcopyright
22
*
23
* @file svn_version.h
24
* @brief Version information.
25
*/
26
27
#ifndef SVN_VERSION_H
28
#define SVN_VERSION_H
29
30
/* Hack to prevent the resource compiler from including
31
apr_general.h. It doesn't resolve the include paths
32
correctly and blows up without this.
33
*/
34
#ifndef APR_STRINGIFY
35
#include <apr_general.h>
36
#endif
37
38
#include "
svn_types.h
"
39
40
#ifdef __cplusplus
41
extern
"C"
{
42
#endif
/* __cplusplus */
43
44
45
/* Symbols that define the version number. */
46
47
/* Version numbers: <major>.<minor>.<micro>
48
*
49
* The version numbers in this file follow the rules established by:
50
*
51
* http://apr.apache.org/versioning.html
52
*/
53
54
/** Major version number.
55
*
56
* Modify when incompatible changes are made to published interfaces.
57
*/
58
#define SVN_VER_MAJOR 1
59
60
/** Minor version number.
61
*
62
* Modify when new functionality is added or new interfaces are
63
* defined, but all changes are backward compatible.
64
*/
65
#define SVN_VER_MINOR 7
66
67
/**
68
* Patch number.
69
*
70
* Modify for every released patch.
71
*
72
* @since New in 1.1.
73
*/
74
#define SVN_VER_PATCH 16
75
76
77
/** @deprecated Provided for backward compatibility with the 1.0 API. */
78
#define SVN_VER_MICRO SVN_VER_PATCH
79
80
/** @deprecated Provided for backward compatibility with the 1.0 API. */
81
#define SVN_VER_LIBRARY SVN_VER_MAJOR
82
83
84
/** Version tag: a string describing the version.
85
*
86
* This tag remains " (dev build)" in the repository so that we can
87
* always see from "svn --version" that the software has been built
88
* from the repository rather than a "blessed" distribution.
89
*
90
* When rolling a tarball, we automatically replace this text with " (r1234)"
91
* (where 1234 is the last revision on the branch prior to the release)
92
* for final releases; in prereleases, it becomes " (Alpha 1)",
93
* " (Beta 1)", etc., as appropriate.
94
*
95
* Always change this at the same time as SVN_VER_NUMTAG.
96
*/
97
#define SVN_VER_TAG " (r1569520)"
98
99
100
/** Number tag: a string describing the version.
101
*
102
* This tag is used to generate a version number string to identify
103
* the client and server in HTTP requests, for example. It must not
104
* contain any spaces. This value remains "-dev" in the repository.
105
*
106
* When rolling a tarball, we automatically replace this text with ""
107
* for final releases; in prereleases, it becomes "-alpha1, "-beta1",
108
* etc., as appropriate.
109
*
110
* Always change this at the same time as SVN_VER_TAG.
111
*/
112
#define SVN_VER_NUMTAG ""
113
114
115
/** Revision number: The repository revision number of this release.
116
*
117
* This constant is used to generate the build number part of the Windows
118
* file version. Its value remains 0 in the repository.
119
*
120
* When rolling a tarball, we automatically replace it with what we
121
* guess to be the correct revision number.
122
*/
123
#define SVN_VER_REVISION 1569520
124
125
126
/* Version strings composed from the above definitions. */
127
128
/** Version number */
129
#define SVN_VER_NUM APR_STRINGIFY(SVN_VER_MAJOR) \
130
"." APR_STRINGIFY(SVN_VER_MINOR) \
131
"." APR_STRINGIFY(SVN_VER_PATCH)
132
133
/** Version number with tag (contains no whitespace) */
134
#define SVN_VER_NUMBER SVN_VER_NUM SVN_VER_NUMTAG
135
136
/** Complete version string */
137
#define SVN_VERSION SVN_VER_NUMBER SVN_VER_TAG
138
139
140
141
/* Version queries and compatibility checks */
142
143
/**
144
* Version information. Each library contains a function called
145
* svn_<i>libname</i>_version() that returns a pointer to a statically
146
* allocated object of this type.
147
*
148
* @since New in 1.1.
149
*/
150
struct
svn_version_t
151
{
152
int
major
;
/**< Major version number */
153
int
minor
;
/**< Minor version number */
154
int
patch
;
/**< Patch number */
155
156
/**
157
* The version tag (#SVN_VER_NUMTAG). Must always point to a
158
* statically allocated string.
159
*/
160
const
char
*
tag
;
161
};
162
163
/**
164
* Define a static svn_version_t object.
165
*
166
* @since New in 1.1.
167
*/
168
#define SVN_VERSION_DEFINE(name) \
169
static const svn_version_t name = \
170
{ \
171
SVN_VER_MAJOR, \
172
SVN_VER_MINOR, \
173
SVN_VER_PATCH, \
174
SVN_VER_NUMTAG \
175
} \
176
177
/**
178
* Generate the implementation of a version query function.
179
*
180
* @since New in 1.1.
181
*/
182
#define SVN_VERSION_BODY \
183
SVN_VERSION_DEFINE(versioninfo); \
184
return &versioninfo
185
186
/**
187
* Check library version compatibility. Return #TRUE if the client's
188
* version, given in @a my_version, is compatible with the library
189
* version, provided in @a lib_version.
190
*
191
* This function checks for version compatibility as per our
192
* guarantees, but requires an exact match when linking to an
193
* unreleased library. A development client is always compatible with
194
* a previous released library.
195
*
196
* @since New in 1.1.
197
*/
198
svn_boolean_t
199
svn_ver_compatible
(
const
svn_version_t
*my_version,
200
const
svn_version_t
*lib_version);
201
202
/**
203
* Check if @a my_version and @a lib_version encode the same version number.
204
*
205
* @since New in 1.2.
206
*/
207
svn_boolean_t
208
svn_ver_equal
(
const
svn_version_t
*my_version,
209
const
svn_version_t
*lib_version);
210
211
212
/**
213
* An entry in the compatibility checklist.
214
* @see svn_ver_check_list()
215
*
216
* @since New in 1.1.
217
*/
218
typedef
struct
svn_version_checklist_t
219
{
220
const
char
*
label
;
/**< Entry label */
221
222
/** Version query function for this entry */
223
const
svn_version_t
*(*version_query)(void);
224
}
svn_version_checklist_t
;
225
226
227
/**
228
* Perform a series of version compatibility checks. Checks if @a
229
* my_version is compatible with each entry in @a checklist. @a
230
* checklist must end with an entry whose label is @c NULL.
231
*
232
* @see svn_ver_compatible()
233
*
234
* @since New in 1.1.
235
*/
236
svn_error_t
*
237
svn_ver_check_list
(
const
svn_version_t
*my_version,
238
const
svn_version_checklist_t
*checklist);
239
240
241
/**
242
* Type of function returning library version.
243
*
244
* @since New in 1.6.
245
*/
246
typedef
const
svn_version_t
*(*svn_version_func_t)(void);
247
248
249
/* libsvn_subr doesn't have an svn_subr header, so put the prototype here. */
250
/**
251
* Get libsvn_subr version information.
252
*
253
* @since New in 1.1.
254
*/
255
const
svn_version_t
*
256
svn_subr_version
(
void
);
257
258
259
#ifdef __cplusplus
260
}
261
#endif
/* __cplusplus */
262
263
#endif
/* SVN_VERSION_H */
Generated by
1.8.3.1