• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
414/**
415 * ATTRIBUTE_UNUSED:
416 *
417 * Macro used to signal to GCC unused function parameters
418 */
419
420#ifndef ATTRIBUTE_UNUSED
421# if ((__GNUC__ > 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ >= 7)))
422#  define ATTRIBUTE_UNUSED __attribute__((unused))
423# else
424#  define ATTRIBUTE_UNUSED
425# endif
426#endif
427
428/**
429 * LIBXML_ATTR_ALLOC_SIZE:
430 *
431 * Macro used to indicate to GCC this is an allocator function
432 */
433
434#ifndef LIBXML_ATTR_ALLOC_SIZE
435# if (!defined(__clang__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3))))
436#  define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
437# else
438#  define LIBXML_ATTR_ALLOC_SIZE(x)
439# endif
440#else
441# define LIBXML_ATTR_ALLOC_SIZE(x)
442#endif
443
444/**
445 * LIBXML_ATTR_FORMAT:
446 *
447 * Macro used to indicate to GCC the parameter are printf like
448 */
449
450#ifndef LIBXML_ATTR_FORMAT
451# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
452#  define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
453# else
454#  define LIBXML_ATTR_FORMAT(fmt,args)
455# endif
456#else
457# define LIBXML_ATTR_FORMAT(fmt,args)
458#endif
459
460#else /* ! __GNUC__ */
461/**
462 * ATTRIBUTE_UNUSED:
463 *
464 * Macro used to signal to GCC unused function parameters
465 */
466#define ATTRIBUTE_UNUSED
467/**
468 * LIBXML_ATTR_ALLOC_SIZE:
469 *
470 * Macro used to indicate to GCC this is an allocator function
471 */
472#define LIBXML_ATTR_ALLOC_SIZE(x)
473/**
474 * LIBXML_ATTR_FORMAT:
475 *
476 * Macro used to indicate to GCC the parameter are printf like
477 */
478#define LIBXML_ATTR_FORMAT(fmt,args)
479#endif /* __GNUC__ */
480
481#ifdef __cplusplus
482}
483#endif /* __cplusplus */
484#endif
485
486
487