1/* 2 * Summary: compile-time version informations 3 * Description: compile-time version informations for the XML library 4 * 5 * Copy: See Copyright for the status of this software. 6 * 7 * Author: Daniel Veillard 8 */ 9 10#ifndef __XML_VERSION_H__ 11#define __XML_VERSION_H__ 12 13#include <libxml/xmlexports.h> 14 15#ifdef __cplusplus 16extern "C" { 17#endif 18 19/* 20 * use those to be sure nothing nasty will happen if 21 * your library and includes mismatch 22 */ 23#ifndef LIBXML2_COMPILING_MSCCDEF 24XMLPUBFUN void XMLCALL xmlCheckVersion(int version); 25#endif /* LIBXML2_COMPILING_MSCCDEF */ 26 27/** 28 * LIBXML_DOTTED_VERSION: 29 * 30 * the version string like "1.2.3" 31 */ 32#define LIBXML_DOTTED_VERSION "@VERSION@" 33 34/** 35 * LIBXML_VERSION: 36 * 37 * the version number: 1.2.3 value is 10203 38 */ 39#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@ 40 41/** 42 * LIBXML_VERSION_STRING: 43 * 44 * the version number string, 1.2.3 value is "10203" 45 */ 46#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@" 47 48/** 49 * LIBXML_VERSION_EXTRA: 50 * 51 * extra version information, used to show a CVS compilation 52 */ 53#define LIBXML_VERSION_EXTRA "@LIBXML_VERSION_EXTRA@" 54 55/** 56 * LIBXML_TEST_VERSION: 57 * 58 * Macro to check that the libxml version in use is compatible with 59 * the version the software has been compiled against 60 */ 61#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@); 62 63#ifndef VMS 64#if @WITH_TRIO@ 65/** 66 * WITH_TRIO: 67 * 68 * defined if the trio support need to be configured in 69 */ 70#define WITH_TRIO 71#else 72/** 73 * WITHOUT_TRIO: 74 * 75 * defined if the trio support should not be configured in 76 */ 77#define WITHOUT_TRIO 78#endif 79#else /* VMS */ 80/** 81 * WITH_TRIO: 82 * 83 * defined if the trio support need to be configured in 84 */ 85#define WITH_TRIO 1 86#endif /* VMS */ 87 88/** 89 * LIBXML_THREAD_ENABLED: 90 * 91 * Whether the thread support is configured in 92 */ 93#if @WITH_THREADS@ 94#if defined(_REENTRANT) || defined(__MT__) || \ 95 (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L)) 96#define LIBXML_THREAD_ENABLED 97#endif 98#endif 99 100/** 101 * LIBXML_THREAD_ALLOC_ENABLED: 102 * 103 * Whether the allocation hooks are per-thread 104 */ 105#if @WITH_THREAD_ALLOC@ 106#define LIBXML_THREAD_ALLOC_ENABLED 107#endif 108 109/** 110 * LIBXML_TREE_ENABLED: 111 * 112 * Whether the DOM like tree manipulation API support is configured in 113 */ 114#if @WITH_TREE@ 115#define LIBXML_TREE_ENABLED 116#endif 117 118/** 119 * LIBXML_OUTPUT_ENABLED: 120 * 121 * Whether the serialization/saving support is configured in 122 */ 123#if @WITH_OUTPUT@ 124#define LIBXML_OUTPUT_ENABLED 125#endif 126 127/** 128 * LIBXML_PUSH_ENABLED: 129 * 130 * Whether the push parsing interfaces are configured in 131 */ 132#if @WITH_PUSH@ 133#define LIBXML_PUSH_ENABLED 134#endif 135 136/** 137 * LIBXML_READER_ENABLED: 138 * 139 * Whether the xmlReader parsing interface is configured in 140 */ 141#if @WITH_READER@ 142#define LIBXML_READER_ENABLED 143#endif 144 145/** 146 * LIBXML_PATTERN_ENABLED: 147 * 148 * Whether the xmlPattern node selection interface is configured in 149 */ 150#if @WITH_PATTERN@ 151#define LIBXML_PATTERN_ENABLED 152#endif 153 154/** 155 * LIBXML_WRITER_ENABLED: 156 * 157 * Whether the xmlWriter saving interface is configured in 158 */ 159#if @WITH_WRITER@ 160#define LIBXML_WRITER_ENABLED 161#endif 162 163/** 164 * LIBXML_SAX1_ENABLED: 165 * 166 * Whether the older SAX1 interface is configured in 167 */ 168#if @WITH_SAX1@ 169#define LIBXML_SAX1_ENABLED 170#endif 171 172/** 173 * LIBXML_FTP_ENABLED: 174 * 175 * Whether the FTP support is configured in 176 */ 177#if @WITH_FTP@ 178#define LIBXML_FTP_ENABLED 179#endif 180 181/** 182 * LIBXML_HTTP_ENABLED: 183 * 184 * Whether the HTTP support is configured in 185 */ 186#if @WITH_HTTP@ 187#define LIBXML_HTTP_ENABLED 188#endif 189 190/** 191 * LIBXML_VALID_ENABLED: 192 * 193 * Whether the DTD validation support is configured in 194 */ 195#if @WITH_VALID@ 196#define LIBXML_VALID_ENABLED 197#endif 198 199/** 200 * LIBXML_HTML_ENABLED: 201 * 202 * Whether the HTML support is configured in 203 */ 204#if @WITH_HTML@ 205#define LIBXML_HTML_ENABLED 206#endif 207 208/** 209 * LIBXML_LEGACY_ENABLED: 210 * 211 * Whether the deprecated APIs are compiled in for compatibility 212 */ 213#if @WITH_LEGACY@ 214#define LIBXML_LEGACY_ENABLED 215#endif 216 217/** 218 * LIBXML_C14N_ENABLED: 219 * 220 * Whether the Canonicalization support is configured in 221 */ 222#if @WITH_C14N@ 223#define LIBXML_C14N_ENABLED 224#endif 225 226/** 227 * LIBXML_CATALOG_ENABLED: 228 * 229 * Whether the Catalog support is configured in 230 */ 231#if @WITH_CATALOG@ 232#define LIBXML_CATALOG_ENABLED 233#endif 234 235/** 236 * LIBXML_DOCB_ENABLED: 237 * 238 * Whether the SGML Docbook support is configured in 239 */ 240#if @WITH_DOCB@ 241#define LIBXML_DOCB_ENABLED 242#endif 243 244/** 245 * LIBXML_XPATH_ENABLED: 246 * 247 * Whether XPath is configured in 248 */ 249#if @WITH_XPATH@ 250#define LIBXML_XPATH_ENABLED 251#endif 252 253/** 254 * LIBXML_XPTR_ENABLED: 255 * 256 * Whether XPointer is configured in 257 */ 258#if @WITH_XPTR@ 259#define LIBXML_XPTR_ENABLED 260#endif 261 262/** 263 * LIBXML_XINCLUDE_ENABLED: 264 * 265 * Whether XInclude is configured in 266 */ 267#if @WITH_XINCLUDE@ 268#define LIBXML_XINCLUDE_ENABLED 269#endif 270 271/** 272 * LIBXML_ICONV_ENABLED: 273 * 274 * Whether iconv support is available 275 */ 276#if @WITH_ICONV@ 277#define LIBXML_ICONV_ENABLED 278#endif 279 280/** 281 * LIBXML_ICU_ENABLED: 282 * 283 * Whether icu support is available 284 */ 285#if @WITH_ICU@ 286#define LIBXML_ICU_ENABLED 287#endif 288 289/** 290 * LIBXML_ISO8859X_ENABLED: 291 * 292 * Whether ISO-8859-* support is made available in case iconv is not 293 */ 294#if @WITH_ISO8859X@ 295#define LIBXML_ISO8859X_ENABLED 296#endif 297 298/** 299 * LIBXML_DEBUG_ENABLED: 300 * 301 * Whether Debugging module is configured in 302 */ 303#if @WITH_DEBUG@ 304#define LIBXML_DEBUG_ENABLED 305#endif 306 307/** 308 * DEBUG_MEMORY_LOCATION: 309 * 310 * Whether the memory debugging is configured in 311 */ 312#if @WITH_MEM_DEBUG@ 313#define DEBUG_MEMORY_LOCATION 314#endif 315 316/** 317 * LIBXML_DEBUG_RUNTIME: 318 * 319 * Whether the runtime debugging is configured in 320 */ 321#if @WITH_RUN_DEBUG@ 322#define LIBXML_DEBUG_RUNTIME 323#endif 324 325/** 326 * LIBXML_UNICODE_ENABLED: 327 * 328 * Whether the Unicode related interfaces are compiled in 329 */ 330#if @WITH_REGEXPS@ 331#define LIBXML_UNICODE_ENABLED 332#endif 333 334/** 335 * LIBXML_REGEXP_ENABLED: 336 * 337 * Whether the regular expressions interfaces are compiled in 338 */ 339#if @WITH_REGEXPS@ 340#define LIBXML_REGEXP_ENABLED 341#endif 342 343/** 344 * LIBXML_AUTOMATA_ENABLED: 345 * 346 * Whether the automata interfaces are compiled in 347 */ 348#if @WITH_REGEXPS@ 349#define LIBXML_AUTOMATA_ENABLED 350#endif 351 352/** 353 * LIBXML_EXPR_ENABLED: 354 * 355 * Whether the formal expressions interfaces are compiled in 356 */ 357#if @WITH_SCHEMAS@ 358#define LIBXML_EXPR_ENABLED 359#endif 360 361/** 362 * LIBXML_SCHEMAS_ENABLED: 363 * 364 * Whether the Schemas validation interfaces are compiled in 365 */ 366#if @WITH_SCHEMAS@ 367#define LIBXML_SCHEMAS_ENABLED 368#endif 369 370/** 371 * LIBXML_SCHEMATRON_ENABLED: 372 * 373 * Whether the Schematron validation interfaces are compiled in 374 */ 375#if @WITH_SCHEMATRON@ 376#define LIBXML_SCHEMATRON_ENABLED 377#endif 378 379/** 380 * LIBXML_MODULES_ENABLED: 381 * 382 * Whether the module interfaces are compiled in 383 */ 384#if @WITH_MODULES@ 385#define LIBXML_MODULES_ENABLED 386/** 387 * LIBXML_MODULE_EXTENSION: 388 * 389 * the string suffix used by dynamic modules (usually shared libraries) 390 */ 391#define LIBXML_MODULE_EXTENSION "@MODULE_EXTENSION@" 392#endif 393 394/** 395 * LIBXML_ZLIB_ENABLED: 396 * 397 * Whether the Zlib support is compiled in 398 */ 399#if @WITH_ZLIB@ 400#define LIBXML_ZLIB_ENABLED 401#endif 402 403/** 404 * LIBXML_LZMA_ENABLED: 405 * 406 * Whether the Lzma support is compiled in 407 */ 408#if @WITH_LZMA@ 409#define LIBXML_LZMA_ENABLED 410#endif 411 412#ifdef __GNUC__ 413#ifdef HAVE_ANSIDECL_H 414#include <ansidecl.h> 415#endif 416 417/** 418 * ATTRIBUTE_UNUSED: 419 * 420 * Macro used to signal to GCC unused function parameters 421 */ 422 423#ifndef ATTRIBUTE_UNUSED 424# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) 425# define ATTRIBUTE_UNUSED __attribute__((unused)) 426# else 427# define ATTRIBUTE_UNUSED 428# endif 429#endif 430 431/** 432 * LIBXML_ATTR_ALLOC_SIZE: 433 * 434 * Macro used to indicate to GCC this is an allocator function 435 */ 436 437#ifndef LIBXML_ATTR_ALLOC_SIZE 438# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))) 439# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x))) 440# else 441# define LIBXML_ATTR_ALLOC_SIZE(x) 442# endif 443#else 444# define LIBXML_ATTR_ALLOC_SIZE(x) 445#endif 446 447/** 448 * LIBXML_ATTR_FORMAT: 449 * 450 * Macro used to indicate to GCC the parameter are printf like 451 */ 452 453#ifndef LIBXML_ATTR_FORMAT 454# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3))) 455# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args))) 456# else 457# define LIBXML_ATTR_FORMAT(fmt,args) 458# endif 459#else 460# define LIBXML_ATTR_FORMAT(fmt,args) 461#endif 462 463#else /* ! __GNUC__ */ 464/** 465 * ATTRIBUTE_UNUSED: 466 * 467 * Macro used to signal to GCC unused function parameters 468 */ 469#define ATTRIBUTE_UNUSED 470/** 471 * LIBXML_ATTR_ALLOC_SIZE: 472 * 473 * Macro used to indicate to GCC this is an allocator function 474 */ 475#define LIBXML_ATTR_ALLOC_SIZE(x) 476/** 477 * LIBXML_ATTR_FORMAT: 478 * 479 * Macro used to indicate to GCC the parameter are printf like 480 */ 481#define LIBXML_ATTR_FORMAT(fmt,args) 482#endif /* __GNUC__ */ 483 484#ifdef __cplusplus 485} 486#endif /* __cplusplus */ 487#endif 488 489 490