blob: 95856541617009e037de8ea0cd8c3469992ff34b [file] [log] [blame]
Owen Taylor3473f882001-02-23 17:55:21 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: compile-time version informations
3 * Description: compile-time version informations for the XML library
Owen Taylor3473f882001-02-23 17:55:21 +00004 *
Daniel Veillardbe586972003-11-18 20:56:51 +00005 * Copy: See Copyright for the status of this software.
Owen Taylor3473f882001-02-23 17:55:21 +00006 *
Daniel Veillardbe586972003-11-18 20:56:51 +00007 * Author: Daniel Veillard
Owen Taylor3473f882001-02-23 17:55:21 +00008 */
9
10#ifndef __XML_VERSION_H__
11#define __XML_VERSION_H__
12
Igor Zlatkovicf05e5d12003-08-25 09:15:36 +000013#include <libxml/xmlexports.h>
Igor Zlatkovic76874e42003-08-25 09:05:12 +000014
Owen Taylor3473f882001-02-23 17:55:21 +000015#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 */
Daniel Veillard2d90de42001-04-16 17:46:18 +000023#ifndef LIBXML2_COMPILING_MSCCDEF
Igor Zlatkovic76874e42003-08-25 09:05:12 +000024XMLPUBFUN void XMLCALL xmlCheckVersion(int version);
Daniel Veillard2d90de42001-04-16 17:46:18 +000025#endif /* LIBXML2_COMPILING_MSCCDEF */
Daniel Veillard5e2dace2001-07-18 19:30:27 +000026
27/**
28 * LIBXML_DOTTED_VERSION:
29 *
30 * the version string like "1.2.3"
31 */
Owen Taylor3473f882001-02-23 17:55:21 +000032#define LIBXML_DOTTED_VERSION "@VERSION@"
Daniel Veillard5e2dace2001-07-18 19:30:27 +000033
34/**
35 * LIBXML_VERSION:
36 *
Daniel Veillardf4721d62006-10-11 21:12:10 +000037 * the version number: 1.2.3 value is 10203
Daniel Veillard5e2dace2001-07-18 19:30:27 +000038 */
Owen Taylor3473f882001-02-23 17:55:21 +000039#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@
Daniel Veillard5e2dace2001-07-18 19:30:27 +000040
41/**
42 * LIBXML_VERSION_STRING:
43 *
Daniel Veillardf4721d62006-10-11 21:12:10 +000044 * the version number string, 1.2.3 value is "10203"
Daniel Veillard5e2dace2001-07-18 19:30:27 +000045 */
Owen Taylor3473f882001-02-23 17:55:21 +000046#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"
Daniel Veillard5e2dace2001-07-18 19:30:27 +000047
48/**
William M. Brackf4025492004-08-18 21:08:46 +000049 * 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/**
Daniel Veillard5e2dace2001-07-18 19:30:27 +000056 * 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 */
Owen Taylor3473f882001-02-23 17:55:21 +000061#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@);
62
Daniel Veillardacf7ff02001-10-29 20:21:47 +000063#ifndef VMS
Daniel Veillard7cf5e442001-09-10 20:16:32 +000064#if @WITH_TRIO@
Daniel Veillardbed7b052001-05-19 14:59:49 +000065/**
66 * WITH_TRIO:
67 *
Daniel Veillard7cf5e442001-09-10 20:16:32 +000068 * defined if the trio support need to be configured in
Daniel Veillard92ad2102001-03-27 12:47:33 +000069 */
Daniel Veillard92ad2102001-03-27 12:47:33 +000070#define WITH_TRIO
Daniel Veillard7cf5e442001-09-10 20:16:32 +000071#else
72/**
73 * WITHOUT_TRIO:
74 *
75 * defined if the trio support should not be configured in
76 */
77#define WITHOUT_TRIO
Daniel Veillard92ad2102001-03-27 12:47:33 +000078#endif
Daniel Veillardacf7ff02001-10-29 20:21:47 +000079#else /* VMS */
MST 2003 John Fleck941f40d2003-12-04 04:55:46 +000080/**
81 * WITH_TRIO:
82 *
83 * defined if the trio support need to be configured in
84 */
Daniel Veillardacf7ff02001-10-29 20:21:47 +000085#define WITH_TRIO 1
86#endif /* VMS */
Daniel Veillard92ad2102001-03-27 12:47:33 +000087
Daniel Veillardbed7b052001-05-19 14:59:49 +000088/**
Daniel Veillard9d06d302002-01-22 18:15:52 +000089 * LIBXML_THREAD_ENABLED:
Daniel Veillardb8478642001-10-12 17:29:10 +000090 *
91 * Whether the thread support is configured in
92 */
93#if @WITH_THREADS@
William M. Brack38d452a2007-05-22 16:00:06 +000094#if defined(_REENTRANT) || defined(__MT__) || \
95 (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 >= 199506L))
Daniel Veillardb8478642001-10-12 17:29:10 +000096#define LIBXML_THREAD_ENABLED
97#endif
98#endif
99
100/**
Daniel Veillard652327a2003-09-29 18:02:38 +0000101 * LIBXML_TREE_ENABLED:
102 *
103 * Whether the DOM like tree manipulation API support is configured in
104 */
105#if @WITH_TREE@
106#define LIBXML_TREE_ENABLED
107#endif
108
109/**
Daniel Veillarda9cce9c2003-09-29 13:20:24 +0000110 * LIBXML_OUTPUT_ENABLED:
111 *
112 * Whether the serialization/saving support is configured in
113 */
114#if @WITH_OUTPUT@
115#define LIBXML_OUTPUT_ENABLED
116#endif
117
118/**
Daniel Veillard73b013f2003-09-30 12:36:01 +0000119 * LIBXML_PUSH_ENABLED:
120 *
121 * Whether the push parsing interfaces are configured in
122 */
123#if @WITH_PUSH@
124#define LIBXML_PUSH_ENABLED
125#endif
126
127/**
Daniel Veillard81273902003-09-30 00:43:48 +0000128 * LIBXML_READER_ENABLED:
129 *
130 * Whether the xmlReader parsing interface is configured in
131 */
132#if @WITH_READER@
133#define LIBXML_READER_ENABLED
134#endif
135
136/**
Daniel Veillardb3de70c2003-12-02 22:32:15 +0000137 * LIBXML_PATTERN_ENABLED:
138 *
139 * Whether the xmlPattern node selection interface is configured in
140 */
141#if @WITH_PATTERN@
142#define LIBXML_PATTERN_ENABLED
143#endif
144
145/**
Daniel Veillard1d211e22003-10-20 22:32:39 +0000146 * LIBXML_WRITER_ENABLED:
147 *
148 * Whether the xmlWriter saving interface is configured in
149 */
150#if @WITH_WRITER@
151#define LIBXML_WRITER_ENABLED
152#endif
153
154/**
Daniel Veillard81273902003-09-30 00:43:48 +0000155 * LIBXML_SAX1_ENABLED:
156 *
157 * Whether the older SAX1 interface is configured in
158 */
159#if @WITH_SAX1@
160#define LIBXML_SAX1_ENABLED
161#endif
162
163/**
Daniel Veillardbed7b052001-05-19 14:59:49 +0000164 * LIBXML_FTP_ENABLED:
165 *
Owen Taylor3473f882001-02-23 17:55:21 +0000166 * Whether the FTP support is configured in
167 */
168#if @WITH_FTP@
169#define LIBXML_FTP_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000170#endif
171
Daniel Veillardbed7b052001-05-19 14:59:49 +0000172/**
173 * LIBXML_HTTP_ENABLED:
174 *
Owen Taylor3473f882001-02-23 17:55:21 +0000175 * Whether the HTTP support is configured in
176 */
177#if @WITH_HTTP@
178#define LIBXML_HTTP_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000179#endif
180
Daniel Veillardbed7b052001-05-19 14:59:49 +0000181/**
Daniel Veillard4432df22003-09-28 18:58:27 +0000182 * LIBXML_VALID_ENABLED:
183 *
184 * Whether the DTD validation support is configured in
185 */
186#if @WITH_VALID@
187#define LIBXML_VALID_ENABLED
188#endif
189
190/**
Daniel Veillardbed7b052001-05-19 14:59:49 +0000191 * LIBXML_HTML_ENABLED:
192 *
Owen Taylor3473f882001-02-23 17:55:21 +0000193 * Whether the HTML support is configured in
194 */
195#if @WITH_HTML@
196#define LIBXML_HTML_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000197#endif
198
Daniel Veillardbed7b052001-05-19 14:59:49 +0000199/**
Daniel Veillard4432df22003-09-28 18:58:27 +0000200 * LIBXML_LEGACY_ENABLED:
201 *
202 * Whether the deprecated APIs are compiled in for compatibility
203 */
204#if @WITH_LEGACY@
205#define LIBXML_LEGACY_ENABLED
206#endif
207
208/**
Daniel Veillard044fc6b2002-03-04 17:09:44 +0000209 * LIBXML_C14N_ENABLED:
210 *
211 * Whether the Canonicalization support is configured in
212 */
213#if @WITH_C14N@
214#define LIBXML_C14N_ENABLED
215#endif
216
217/**
Daniel Veillardbed7b052001-05-19 14:59:49 +0000218 * LIBXML_CATALOG_ENABLED:
219 *
Daniel Veillarda7374592001-05-10 14:17:55 +0000220 * Whether the Catalog support is configured in
221 */
222#if @WITH_CATALOG@
223#define LIBXML_CATALOG_ENABLED
Daniel Veillarda7374592001-05-10 14:17:55 +0000224#endif
225
Daniel Veillardbed7b052001-05-19 14:59:49 +0000226/**
227 * LIBXML_DOCB_ENABLED:
228 *
Daniel Veillardeae522a2001-04-23 13:41:34 +0000229 * Whether the SGML Docbook support is configured in
Owen Taylor3473f882001-02-23 17:55:21 +0000230 */
Daniel Veillardeae522a2001-04-23 13:41:34 +0000231#if @WITH_DOCB@
232#define LIBXML_DOCB_ENABLED
Daniel Veillardeae522a2001-04-23 13:41:34 +0000233#endif
Owen Taylor3473f882001-02-23 17:55:21 +0000234
Daniel Veillardbed7b052001-05-19 14:59:49 +0000235/**
236 * LIBXML_XPATH_ENABLED:
237 *
Owen Taylor3473f882001-02-23 17:55:21 +0000238 * Whether XPath is configured in
239 */
240#if @WITH_XPATH@
241#define LIBXML_XPATH_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000242#endif
243
Daniel Veillardbed7b052001-05-19 14:59:49 +0000244/**
245 * LIBXML_XPTR_ENABLED:
246 *
Owen Taylor3473f882001-02-23 17:55:21 +0000247 * Whether XPointer is configured in
248 */
249#if @WITH_XPTR@
250#define LIBXML_XPTR_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000251#endif
252
Daniel Veillardbed7b052001-05-19 14:59:49 +0000253/**
254 * LIBXML_XINCLUDE_ENABLED:
255 *
Owen Taylor3473f882001-02-23 17:55:21 +0000256 * Whether XInclude is configured in
257 */
258#if @WITH_XINCLUDE@
259#define LIBXML_XINCLUDE_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000260#endif
261
Daniel Veillardbed7b052001-05-19 14:59:49 +0000262/**
263 * LIBXML_ICONV_ENABLED:
264 *
Owen Taylor3473f882001-02-23 17:55:21 +0000265 * Whether iconv support is available
266 */
Owen Taylor3473f882001-02-23 17:55:21 +0000267#if @WITH_ICONV@
268#define LIBXML_ICONV_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000269#endif
Owen Taylor3473f882001-02-23 17:55:21 +0000270
Daniel Veillardbed7b052001-05-19 14:59:49 +0000271/**
Giuseppe Iuculano48f7dcb2010-11-04 17:42:42 +0100272 * LIBXML_ICU_ENABLED:
273 *
274 * Whether icu support is available
275 */
276#if @WITH_ICU@
277#define LIBXML_ICU_ENABLED
278#endif
279
280/**
Daniel Veillard01fc1a92003-07-30 15:12:01 +0000281 * LIBXML_ISO8859X_ENABLED:
282 *
283 * Whether ISO-8859-* support is made available in case iconv is not
284 */
285#if @WITH_ISO8859X@
286#define LIBXML_ISO8859X_ENABLED
287#endif
288
289/**
Daniel Veillardbed7b052001-05-19 14:59:49 +0000290 * LIBXML_DEBUG_ENABLED:
291 *
Owen Taylor3473f882001-02-23 17:55:21 +0000292 * Whether Debugging module is configured in
293 */
294#if @WITH_DEBUG@
295#define LIBXML_DEBUG_ENABLED
Owen Taylor3473f882001-02-23 17:55:21 +0000296#endif
297
Daniel Veillardbed7b052001-05-19 14:59:49 +0000298/**
299 * DEBUG_MEMORY_LOCATION:
300 *
Owen Taylor3473f882001-02-23 17:55:21 +0000301 * Whether the memory debugging is configured in
302 */
303#if @WITH_MEM_DEBUG@
304#define DEBUG_MEMORY_LOCATION
305#endif
306
Daniel Veillard5e2dace2001-07-18 19:30:27 +0000307/**
Daniel Veillard22cdb842004-10-04 14:09:17 +0000308 * LIBXML_DEBUG_RUNTIME:
309 *
310 * Whether the runtime debugging is configured in
311 */
Kasimier T. Buchcikd81ebd12005-12-14 17:14:35 +0000312#if @WITH_RUN_DEBUG@
Daniel Veillard22cdb842004-10-04 14:09:17 +0000313#define LIBXML_DEBUG_RUNTIME
314#endif
315
316/**
Daniel Veillard7a02cfe2003-09-25 12:18:34 +0000317 * LIBXML_UNICODE_ENABLED:
Daniel Veillard4255d502002-04-16 15:50:10 +0000318 *
319 * Whether the Unicode related interfaces are compiled in
320 */
Daniel Veillard23e73572002-09-19 19:56:43 +0000321#if @WITH_REGEXPS@
Daniel Veillard4255d502002-04-16 15:50:10 +0000322#define LIBXML_UNICODE_ENABLED
323#endif
324
325/**
Daniel Veillard7a02cfe2003-09-25 12:18:34 +0000326 * LIBXML_REGEXP_ENABLED:
Daniel Veillard4255d502002-04-16 15:50:10 +0000327 *
328 * Whether the regular expressions interfaces are compiled in
329 */
Daniel Veillard23e73572002-09-19 19:56:43 +0000330#if @WITH_REGEXPS@
Daniel Veillard4255d502002-04-16 15:50:10 +0000331#define LIBXML_REGEXP_ENABLED
332#endif
333
334/**
Daniel Veillard7a02cfe2003-09-25 12:18:34 +0000335 * LIBXML_AUTOMATA_ENABLED:
Daniel Veillard4255d502002-04-16 15:50:10 +0000336 *
337 * Whether the automata interfaces are compiled in
338 */
Daniel Veillard23e73572002-09-19 19:56:43 +0000339#if @WITH_REGEXPS@
Daniel Veillard4255d502002-04-16 15:50:10 +0000340#define LIBXML_AUTOMATA_ENABLED
341#endif
342
343/**
Daniel Veillard465a0002005-08-22 12:07:04 +0000344 * LIBXML_EXPR_ENABLED:
345 *
346 * Whether the formal expressions interfaces are compiled in
347 */
348#if @WITH_SCHEMAS@
349#define LIBXML_EXPR_ENABLED
350#endif
351
352/**
Daniel Veillard7a02cfe2003-09-25 12:18:34 +0000353 * LIBXML_SCHEMAS_ENABLED:
Daniel Veillard4255d502002-04-16 15:50:10 +0000354 *
355 * Whether the Schemas validation interfaces are compiled in
356 */
357#if @WITH_SCHEMAS@
358#define LIBXML_SCHEMAS_ENABLED
359#endif
360
361/**
Daniel Veillarded6c5492005-07-23 15:00:22 +0000362 * LIBXML_SCHEMATRON_ENABLED:
363 *
364 * Whether the Schematron validation interfaces are compiled in
365 */
366#if @WITH_SCHEMATRON@
367#define LIBXML_SCHEMATRON_ENABLED
368#endif
369
370/**
Daniel Veillardce1648b2005-01-04 15:10:22 +0000371 * LIBXML_MODULES_ENABLED:
372 *
373 * Whether the module interfaces are compiled in
374 */
375#if @WITH_MODULES@
376#define LIBXML_MODULES_ENABLED
Daniel Veillard5eee7672005-08-22 21:22:27 +0000377/**
378 * LIBXML_MODULE_EXTENSION:
379 *
380 * the string suffix used by dynamic modules (usually shared libraries)
381 */
Daniel Veillardce1648b2005-01-04 15:10:22 +0000382#define LIBXML_MODULE_EXTENSION "@MODULE_EXTENSION@"
383#endif
384
385/**
Daniel Veillard75acfee2006-07-13 06:29:56 +0000386 * LIBXML_ZLIB_ENABLED:
387 *
388 * Whether the Zlib support is compiled in
389 */
390#if @WITH_ZLIB@
391#define LIBXML_ZLIB_ENABLED
392#endif
393
Daniel Veillardf63085d2009-01-18 20:53:59 +0000394#ifdef __GNUC__
395#ifdef HAVE_ANSIDECL_H
396#include <ansidecl.h>
397#endif
398
Daniel Veillard75acfee2006-07-13 06:29:56 +0000399/**
Daniel Veillardbed7b052001-05-19 14:59:49 +0000400 * ATTRIBUTE_UNUSED:
401 *
402 * Macro used to signal to GCC unused function parameters
403 */
Daniel Veillardf63085d2009-01-18 20:53:59 +0000404
Daniel Veillardc86a4fa2001-03-26 16:28:29 +0000405#ifndef ATTRIBUTE_UNUSED
William M. Brack30ce0dd2003-11-04 23:57:30 +0000406#define ATTRIBUTE_UNUSED __attribute__((unused))
Daniel Veillardc86a4fa2001-03-26 16:28:29 +0000407#endif
Daniel Veillardf63085d2009-01-18 20:53:59 +0000408
409/**
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200410 * LIBXML_ATTR_ALLOC_SIZE:
Daniel Veillardf63085d2009-01-18 20:53:59 +0000411 *
412 * Macro used to indicate to GCC this is an allocator function
413 */
414
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200415#ifndef LIBXML_ATTR_ALLOC_SIZE
Daniel Veillardd4d47052009-01-18 17:26:02 +0000416# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200417# define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
Daniel Veillardd4d47052009-01-18 17:26:02 +0000418# else
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200419# define LIBXML_ATTR_ALLOC_SIZE(x)
Daniel Veillardd4d47052009-01-18 17:26:02 +0000420# endif
421#else
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200422# define LIBXML_ATTR_ALLOC_SIZE(x)
Daniel Veillardd4d47052009-01-18 17:26:02 +0000423#endif
Daniel Veillardf63085d2009-01-18 20:53:59 +0000424
425/**
Daniel Veillardf076f342009-04-15 09:20:25 +0000426 * LIBXML_ATTR_FORMAT:
Daniel Veillardf63085d2009-01-18 20:53:59 +0000427 *
428 * Macro used to indicate to GCC the parameter are printf like
429 */
430
Daniel Veillardf076f342009-04-15 09:20:25 +0000431#ifndef LIBXML_ATTR_FORMAT
Daniel Veillardf63085d2009-01-18 20:53:59 +0000432# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
Daniel Veillardf076f342009-04-15 09:20:25 +0000433# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
Daniel Veillardf63085d2009-01-18 20:53:59 +0000434# else
Daniel Veillardf076f342009-04-15 09:20:25 +0000435# define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillardf63085d2009-01-18 20:53:59 +0000436# endif
Daniel Veillardc86a4fa2001-03-26 16:28:29 +0000437#else
Daniel Veillardf076f342009-04-15 09:20:25 +0000438# define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillardc86a4fa2001-03-26 16:28:29 +0000439#endif
440
Daniel Veillardf63085d2009-01-18 20:53:59 +0000441#else /* ! __GNUC__ */
442/**
443 * ATTRIBUTE_UNUSED:
444 *
445 * Macro used to signal to GCC unused function parameters
446 */
447#define ATTRIBUTE_UNUSED
448/**
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200449 * LIBXML_ATTR_ALLOC_SIZE:
Daniel Veillardf63085d2009-01-18 20:53:59 +0000450 *
451 * Macro used to indicate to GCC this is an allocator function
452 */
Daniel Veillard57f71ae2009-09-09 18:57:26 +0200453#define LIBXML_ATTR_ALLOC_SIZE(x)
Daniel Veillardf63085d2009-01-18 20:53:59 +0000454/**
Daniel Veillardf076f342009-04-15 09:20:25 +0000455 * LIBXML_ATTR_FORMAT:
Daniel Veillardf63085d2009-01-18 20:53:59 +0000456 *
457 * Macro used to indicate to GCC the parameter are printf like
458 */
Daniel Veillardf076f342009-04-15 09:20:25 +0000459#define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillardf63085d2009-01-18 20:53:59 +0000460#endif /* __GNUC__ */
461
Owen Taylor3473f882001-02-23 17:55:21 +0000462#ifdef __cplusplus
463}
464#endif /* __cplusplus */
465#endif
466
467