GME  13
svn_version.h
Go to the documentation of this file.
00001 
00027 #ifndef SVN_VERSION_H
00028 #define SVN_VERSION_H
00029 
00030 /* Hack to prevent the resource compiler from including
00031    apr_general.h.  It doesn't resolve the include paths
00032    correctly and blows up without this.
00033  */
00034 #ifndef APR_STRINGIFY
00035 #include <apr_general.h>
00036 #endif
00037 #include <apr_tables.h>
00038 
00039 #include "svn_types.h"
00040 
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif /* __cplusplus */
00044 
00045 
00046 /* Symbols that define the version number. */
00047 
00048 /* Version numbers: <major>.<minor>.<micro>
00049  *
00050  * The version numbers in this file follow the rules established by:
00051  *
00052  *   http://apr.apache.org/versioning.html
00053  */
00054 
00059 #define SVN_VER_MAJOR      1
00060 
00066 #define SVN_VER_MINOR      8
00067 
00075 #define SVN_VER_PATCH      3
00076 
00077 
00079 #define SVN_VER_MICRO      SVN_VER_PATCH
00080 
00082 #define SVN_VER_LIBRARY    SVN_VER_MAJOR
00083 
00084 
00098 #define SVN_VER_TAG        " (r1516576)"
00099 
00100 
00113 #define SVN_VER_NUMTAG     ""
00114 
00115 
00124 #define SVN_VER_REVISION   1516576
00125 
00126 
00127 /* Version strings composed from the above definitions. */
00128 
00130 #define SVN_VER_NUM        APR_STRINGIFY(SVN_VER_MAJOR) \
00131                            "." APR_STRINGIFY(SVN_VER_MINOR) \
00132                            "." APR_STRINGIFY(SVN_VER_PATCH)
00133 
00135 #define SVN_VER_NUMBER     SVN_VER_NUM SVN_VER_NUMTAG
00136 
00138 #define SVN_VERSION        SVN_VER_NUMBER SVN_VER_TAG
00139 
00140 
00141 
00142 /* Version queries and compatibility checks */
00143 
00151 struct svn_version_t
00152 {
00153   int major;                    
00154   int minor;                    
00155   int patch;                    
00161   const char *tag;
00162 };
00163 
00169 #define SVN_VERSION_DEFINE(name) \
00170   static const svn_version_t name = \
00171     { \
00172       SVN_VER_MAJOR, \
00173       SVN_VER_MINOR, \
00174       SVN_VER_PATCH, \
00175       SVN_VER_NUMTAG \
00176     } \
00177 
00178 
00183 #define SVN_VERSION_BODY \
00184   SVN_VERSION_DEFINE(versioninfo);              \
00185   return &versioninfo
00186 
00199 svn_boolean_t
00200 svn_ver_compatible(const svn_version_t *my_version,
00201                    const svn_version_t *lib_version);
00202 
00208 svn_boolean_t
00209 svn_ver_equal(const svn_version_t *my_version,
00210               const svn_version_t *lib_version);
00211 
00212 
00219 typedef struct svn_version_checklist_t
00220 {
00221   const char *label;            
00224   const svn_version_t *(*version_query)(void);
00225 } svn_version_checklist_t;
00226 
00227 
00237 svn_error_t *
00238 svn_ver_check_list(const svn_version_t *my_version,
00239                    const svn_version_checklist_t *checklist);
00240 
00241 
00247 typedef const svn_version_t *(*svn_version_func_t)(void);
00248 
00249 
00250 /* libsvn_subr doesn't have an svn_subr header, so put the prototype here. */
00256 const svn_version_t *
00257 svn_subr_version(void);
00258 
00259 
00265 typedef struct svn_version_extended_t svn_version_extended_t;
00266 
00275 const svn_version_extended_t *
00276 svn_version_extended(svn_boolean_t verbose,
00277                      apr_pool_t *pool);
00278 
00279 
00288 const char *
00289 svn_version_ext_build_date(const svn_version_extended_t *ext_info);
00290 
00299 const char *
00300 svn_version_ext_build_time(const svn_version_extended_t *ext_info);
00301 
00313 const char *
00314 svn_version_ext_build_host(const svn_version_extended_t *ext_info);
00315 
00323 const char *
00324 svn_version_ext_copyright(const svn_version_extended_t *ext_info);
00325 
00337 const char *
00338 svn_version_ext_runtime_host(const svn_version_extended_t *ext_info);
00339 
00349 const char *
00350 svn_version_ext_runtime_osname(const svn_version_extended_t *ext_info);
00351 
00359 typedef struct svn_version_ext_linked_lib_t
00360 {
00361   const char *name;             
00362   const char *compiled_version; 
00363   const char *runtime_version;  
00364 } svn_version_ext_linked_lib_t;
00365 
00374 const apr_array_header_t *
00375 svn_version_ext_linked_libs(const svn_version_extended_t *ext_info);
00376 
00377 
00385 typedef struct svn_version_ext_loaded_lib_t
00386 {
00387   const char *name;             
00388   const char *version;          
00389 } svn_version_ext_loaded_lib_t;
00390 
00391 
00403 const apr_array_header_t *
00404 svn_version_ext_loaded_libs(const svn_version_extended_t *ext_info);
00405 
00406 
00407 #ifdef __cplusplus
00408 }
00409 #endif /* __cplusplus */
00410 
00411 #endif /* SVN_VERSION_H */