1/* 2 * Summary: compile-time version information 3 * Description: compile-time version information 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 git commit description 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#define LIBXML_THREAD_ENABLED 95#endif 96 97/** 98 * LIBXML_THREAD_ALLOC_ENABLED: 99 * 100 * Whether the allocation hooks are per-thread 101 */ 102#if @WITH_THREAD_ALLOC@ 103#define LIBXML_THREAD_ALLOC_ENABLED 104#endif 105 106/** 107 * LIBXML_TREE_ENABLED: 108 * 109 * Whether the DOM like tree manipulation API support is configured in 110 */ 111#if @WITH_TREE@ 112#define LIBXML_TREE_ENABLED 113#endif 114 115/** 116 * LIBXML_OUTPUT_ENABLED: 117 * 118 * Whether the serialization/saving support is configured in 119 */ 120#if @WITH_OUTPUT@ 121#define LIBXML_OUTPUT_ENABLED 122#endif 123 124/** 125 * LIBXML_PUSH_ENABLED: 126 * 127 * Whether the push parsing interfaces are configured in 128 */ 129#if @WITH_PUSH@ 130#define LIBXML_PUSH_ENABLED 131#endif 132 133/** 134 * LIBXML_READER_ENABLED: 135 * 136 * Whether the xmlReader parsing interface is configured in 137 */ 138#if @WITH_READER@ 139#define LIBXML_READER_ENABLED 140#endif 141 142/** 143 * LIBXML_PATTERN_ENABLED: 144 * 145 * Whether the xmlPattern node selection interface is configured in 146 */ 147#if @WITH_PATTERN@ 148#define LIBXML_PATTERN_ENABLED 149#endif 150 151/** 152 * LIBXML_WRITER_ENABLED: 153 * 154 * Whether the xmlWriter saving interface is configured in 155 */ 156#if @WITH_WRITER@ 157#define LIBXML_WRITER_ENABLED 158#endif 159 160/** 161 * LIBXML_SAX1_ENABLED: 162 * 163 * Whether the older SAX1 interface is configured in 164 */ 165#if @WITH_SAX1@ 166#define LIBXML_SAX1_ENABLED 167#endif 168 169/** 170 * LIBXML_FTP_ENABLED: 171 * 172 * Whether the FTP support is configured in 173 */ 174#if @WITH_FTP@ 175#define LIBXML_FTP_ENABLED 176#endif 177 178/** 179 * LIBXML_HTTP_ENABLED: 180 * 181 * Whether the HTTP support is configured in 182 */ 183#if @WITH_HTTP@ 184#define LIBXML_HTTP_ENABLED 185#endif 186 187/** 188 * LIBXML_VALID_ENABLED: 189 * 190 * Whether the DTD validation support is configured in 191 */ 192#if @WITH_VALID@ 193#define LIBXML_VALID_ENABLED 194#endif 195 196/** 197 * LIBXML_HTML_ENABLED: 198 * 199 * Whether the HTML support is configured in 200 */ 201#if @WITH_HTML@ 202#define LIBXML_HTML_ENABLED 203#endif 204 205/** 206 * LIBXML_LEGACY_ENABLED: 207 * 208 * Whether the deprecated APIs are compiled in for compatibility 209 */ 210#if @WITH_LEGACY@ 211#define LIBXML_LEGACY_ENABLED 212#endif 213 214/** 215 * LIBXML_C14N_ENABLED: 216 * 217 * Whether the Canonicalization support is configured in 218 */ 219#if @WITH_C14N@ 220#define LIBXML_C14N_ENABLED 221#endif 222 223/** 224 * LIBXML_CATALOG_ENABLED: 225 * 226 * Whether the Catalog support is configured in 227 */ 228#if @WITH_CATALOG@ 229#define LIBXML_CATALOG_ENABLED 230#endif 231 232/** 233 * LIBXML_XPATH_ENABLED: 234 * 235 * Whether XPath is configured in 236 */ 237#if @WITH_XPATH@ 238#define LIBXML_XPATH_ENABLED 239#endif 240 241/** 242 * LIBXML_XPTR_ENABLED: 243 * 244 * Whether XPointer is configured in 245 */ 246#if @WITH_XPTR@ 247#define LIBXML_XPTR_ENABLED 248#endif 249 250/** 251 * LIBXML_XPTR_LOCS_ENABLED: 252 * 253 * Whether support for XPointer locations is configured in 254 */ 255#if @WITH_XPTR_LOCS@ 256#define LIBXML_XPTR_LOCS_ENABLED 257#endif 258 259/** 260 * LIBXML_XINCLUDE_ENABLED: 261 * 262 * Whether XInclude is configured in 263 */ 264#if @WITH_XINCLUDE@ 265#define LIBXML_XINCLUDE_ENABLED 266#endif 267 268/** 269 * LIBXML_ICONV_ENABLED: 270 * 271 * Whether iconv support is available 272 */ 273#if @WITH_ICONV@ 274#define LIBXML_ICONV_ENABLED 275#endif 276 277/** 278 * LIBXML_ICU_ENABLED: 279 * 280 * Whether icu support is available 281 */ 282#if @WITH_ICU@ 283#define LIBXML_ICU_ENABLED 284#endif 285 286/** 287 * LIBXML_ISO8859X_ENABLED: 288 * 289 * Whether ISO-8859-* support is made available in case iconv is not 290 */ 291#if @WITH_ISO8859X@ 292#define LIBXML_ISO8859X_ENABLED 293#endif 294 295/** 296 * LIBXML_DEBUG_ENABLED: 297 * 298 * Whether Debugging module is configured in 299 */ 300#if @WITH_DEBUG@ 301#define LIBXML_DEBUG_ENABLED 302#endif 303 304/** 305 * DEBUG_MEMORY_LOCATION: 306 * 307 * Whether the memory debugging is configured in 308 */ 309#if @WITH_MEM_DEBUG@ 310#define DEBUG_MEMORY_LOCATION 311#endif 312 313/** 314 * LIBXML_DEBUG_RUNTIME: 315 * 316 * Whether the runtime debugging is configured in 317 */ 318#if @WITH_RUN_DEBUG@ 319#define LIBXML_DEBUG_RUNTIME 320#endif 321 322/** 323 * LIBXML_UNICODE_ENABLED: 324 * 325 * Whether the Unicode related interfaces are compiled in 326 */ 327#if @WITH_REGEXPS@ 328#define LIBXML_UNICODE_ENABLED 329#endif 330 331/** 332 * LIBXML_REGEXP_ENABLED: 333 * 334 * Whether the regular expressions interfaces are compiled in 335 */ 336#if @WITH_REGEXPS@ 337#define LIBXML_REGEXP_ENABLED 338#endif 339 340/** 341 * LIBXML_AUTOMATA_ENABLED: 342 * 343 * Whether the automata interfaces are compiled in 344 */ 345#if @WITH_REGEXPS@ 346#define LIBXML_AUTOMATA_ENABLED 347#endif 348 349/** 350 * LIBXML_EXPR_ENABLED: 351 * 352 * Whether the formal expressions interfaces are compiled in 353 * 354 * This code is unused and disabled unconditionally for now. 355 */ 356#if 0 357#define LIBXML_EXPR_ENABLED 358#endif 359 360/** 361 * LIBXML_SCHEMAS_ENABLED: 362 * 363 * Whether the Schemas validation interfaces are compiled in 364 */ 365#if @WITH_SCHEMAS@ 366#define LIBXML_SCHEMAS_ENABLED 367#endif 368 369/** 370 * LIBXML_SCHEMATRON_ENABLED: 371 * 372 * Whether the Schematron validation interfaces are compiled in 373 */ 374#if @WITH_SCHEMATRON@ 375#define LIBXML_SCHEMATRON_ENABLED 376#endif 377 378/** 379 * LIBXML_MODULES_ENABLED: 380 * 381 * Whether the module interfaces are compiled in 382 */ 383#if @WITH_MODULES@ 384#define LIBXML_MODULES_ENABLED 385/** 386 * LIBXML_MODULE_EXTENSION: 387 * 388 * the string suffix used by dynamic modules (usually shared libraries) 389 */ 390#define LIBXML_MODULE_EXTENSION "@MODULE_EXTENSION@" 391#endif 392 393/** 394 * LIBXML_ZLIB_ENABLED: 395 * 396 * Whether the Zlib support is compiled in 397 */ 398#if @WITH_ZLIB@ 399#define LIBXML_ZLIB_ENABLED 400#endif 401 402/** 403 * LIBXML_LZMA_ENABLED: 404 * 405 * Whether the Lzma support is compiled in 406 */ 407#if @WITH_LZMA@ 408#define LIBXML_LZMA_ENABLED 409#endif 410 411#ifdef __GNUC__ 412 413/** 414 * ATTRIBUTE_UNUSED: 415 * 416 * Macro used to signal to GCC unused function parameters 417 */ 418 419#ifndef ATTRIBUTE_UNUSED 420# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7))) 421# define ATTRIBUTE_UNUSED __attribute__((unused)) 422# else 423# define ATTRIBUTE_UNUSED 424# endif 425#endif 426 427/** 428 * LIBXML_ATTR_ALLOC_SIZE: 429 * 430 * Macro used to indicate to GCC this is an allocator function 431 */ 432 433#ifndef LIBXML_ATTR_ALLOC_SIZE 434# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))) 435# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x))) 436# else 437# define LIBXML_ATTR_ALLOC_SIZE(x) 438# endif 439#else 440# define LIBXML_ATTR_ALLOC_SIZE(x) 441#endif 442 443/** 444 * LIBXML_ATTR_FORMAT: 445 * 446 * Macro used to indicate to GCC the parameter are printf like 447 */ 448 449#ifndef LIBXML_ATTR_FORMAT 450# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3))) 451# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args))) 452# else 453# define LIBXML_ATTR_FORMAT(fmt,args) 454# endif 455#else 456# define LIBXML_ATTR_FORMAT(fmt,args) 457#endif 458 459#ifndef XML_DEPRECATED 460# ifdef IN_LIBXML 461# define XML_DEPRECATED 462# else 463/* Available since at least GCC 3.1 */ 464# define XML_DEPRECATED __attribute__((deprecated)) 465# endif 466#endif 467 468#else /* ! __GNUC__ */ 469/** 470 * ATTRIBUTE_UNUSED: 471 * 472 * Macro used to signal to GCC unused function parameters 473 */ 474#define ATTRIBUTE_UNUSED 475/** 476 * LIBXML_ATTR_ALLOC_SIZE: 477 * 478 * Macro used to indicate to GCC this is an allocator function 479 */ 480#define LIBXML_ATTR_ALLOC_SIZE(x) 481/** 482 * LIBXML_ATTR_FORMAT: 483 * 484 * Macro used to indicate to GCC the parameter are printf like 485 */ 486#define LIBXML_ATTR_FORMAT(fmt,args) 487/** 488 * XML_DEPRECATED: 489 * 490 * Macro used to indicate that a function, variable, type or struct member 491 * is deprecated. 492 */ 493#ifndef XML_DEPRECATED 494#define XML_DEPRECATED 495#endif 496#endif /* __GNUC__ */ 497 498#ifdef __cplusplus 499} 500#endif /* __cplusplus */ 501#endif 502 503 504