1/*
2 * Summary: compile-time version informations on Windows
3 * Description: compile-time version informations for the XML library
4 *              when compiled on the Windows platform
5 *
6 * Copy: See Copyright for the status of this software.
7 *
8 * Author: Daniel Veillard
9 */
10
11#ifndef __XML_VERSION_H__
12#define __XML_VERSION_H__
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18/*
19 * use those to be sure nothing nasty will happen if
20 * your library and includes mismatch
21 */
22#ifndef LIBXML2_COMPILING_MSCCDEF
23extern void xmlCheckVersion(int version);
24#endif /* LIBXML2_COMPILING_MSCCDEF */
25
26/**
27 * LIBXML_DOTTED_VERSION:
28 *
29 * the version string like "1.2.3"
30 */
31#define LIBXML_DOTTED_VERSION "@VERSION@"
32
33/**
34 * LIBXML_VERSION:
35 *
36 * the version number: 1.2.3 value is 1002003
37 */
38#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@
39
40/**
41 * LIBXML_VERSION_STRING:
42 *
43 * the version number string, 1.2.3 value is "1002003"
44 */
45#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"
46
47/**
48 * LIBXML_VERSION_EXTRA:
49 *
50 * extra version information, used to show a CVS compilation
51 */
52#define LIBXML_VERSION_EXTRA "-win32"
53
54/**
55 * LIBXML_TEST_VERSION:
56 *
57 * Macro to check that the libxml version in use is compatible with
58 * the version the software has been compiled against
59 */
60#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@);
61
62#if 0
63/**
64 * WITH_TRIO:
65 *
66 * defined if the trio support need to be configured in
67 */
68#define WITH_TRIO
69#else
70/**
71 * WITHOUT_TRIO:
72 *
73 * defined if the trio support should not be configured in
74 */
75#define WITHOUT_TRIO
76#endif
77
78/**
79 * LIBXML_THREAD_ENABLED:
80 *
81 * Whether the thread support is configured in
82 */
83#if 0
84#define LIBXML_THREAD_ENABLED
85#endif
86
87/**
88 * LIBXML_FTP_ENABLED:
89 *
90 * Whether the FTP support is configured in
91 */
92#if 1
93#define LIBXML_FTP_ENABLED
94#endif
95
96/**
97 * LIBXML_HTTP_ENABLED:
98 *
99 * Whether the HTTP support is configured in
100 */
101#if 1
102#define LIBXML_HTTP_ENABLED
103#endif
104
105/**
106 * LIBXML_HTML_ENABLED:
107 *
108 * Whether the HTML support is configured in
109 */
110#if 1
111#define LIBXML_HTML_ENABLED
112#endif
113
114/**
115 * LIBXML_CATALOG_ENABLED:
116 *
117 * Whether the Catalog support is configured in
118 */
119#if 1
120#define LIBXML_CATALOG_ENABLED
121#endif
122
123/**
124 * LIBXML_DOCB_ENABLED:
125 *
126 * Whether the SGML Docbook support is configured in
127 */
128#if 1
129#define LIBXML_DOCB_ENABLED
130#endif
131
132/**
133 * LIBXML_XPATH_ENABLED:
134 *
135 * Whether XPath is configured in
136 */
137#if 1
138#define LIBXML_XPATH_ENABLED
139#endif
140
141/**
142 * LIBXML_XPTR_ENABLED:
143 *
144 * Whether XPointer is configured in
145 */
146#if 1
147#define LIBXML_XPTR_ENABLED
148#endif
149
150/**
151 * LIBXML_C14N_ENABLED:
152 *
153 * Whether the Canonicalization support is configured in
154 */
155#if 0
156#define LIBXML_C14N_ENABLED
157#endif
158
159/**
160 * LIBXML_XINCLUDE_ENABLED:
161 *
162 * Whether XInclude is configured in
163 */
164#if 1
165#define LIBXML_XINCLUDE_ENABLED
166#endif
167
168/**
169 * LIBXML_SCHEMATRON_ENABLED:
170 *
171 * Whether the Schematron validation interfaces are compiled in
172 */
173#if 1
174#define LIBXML_SCHEMATRON_ENABLED
175#endif
176
177/**
178 * LIBXML_ICONV_ENABLED:
179 *
180 * Whether iconv support is available
181 */
182#if 0
183#define LIBXML_ICONV_ENABLED
184#endif
185
186/**
187 * LIBXML_ISO8859X_ENABLED:
188 *
189 * Whether ISO-8859-* support is made available in case iconv is not
190 */
191#if 1
192#define LIBXML_ISO8859X_ENABLED
193#endif
194
195/**
196 * LIBXML_DEBUG_ENABLED:
197 *
198 * Whether Debugging module is configured in
199 */
200#if 1
201#define LIBXML_DEBUG_ENABLED
202#endif
203
204/**
205 * DEBUG_MEMORY_LOCATION:
206 *
207 * Whether the memory debugging is configured in
208 */
209#if 0
210#define DEBUG_MEMORY_LOCATION
211#endif
212
213/**
214 * LIBXML_DEBUG_RUNTIME:
215 *
216 * Whether the runtime debugging is configured in
217 */
218#if 0
219#define LIBXML_DEBUG_RUNTIME
220#endif
221
222/**
223 * LIBXML_DLL_IMPORT:
224 *
225 * Used on Windows (MS C compiler only) to declare a variable as
226 * imported from the library. This macro should be empty when compiling
227 * libxml itself. It should expand to __declspec(dllimport)
228 * when the client code includes this header, and that only if the client
229 * links dynamically against libxml.
230 * For this to work, we need three macros. One tells us which compiler is
231 * being used and luckily the compiler defines such a thing: _MSC_VER. The
232 * second macro tells us if we are compiling libxml or the client code and
233 * we define the macro IN_LIBXML on the compiler's command line for this
234 * purpose. The third macro, LIBXML_STATIC, must be defined by any client
235 * code which links against libxml statically.
236 */
237#ifndef LIBXML_DLL_IMPORT
238#if defined(_MSC_VER) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
239#define LIBXML_DLL_IMPORT __declspec(dllimport)
240#else
241#define LIBXML_DLL_IMPORT
242#endif
243#endif
244
245#ifdef __GNUC__
246#ifdef HAVE_ANSIDECL_H
247#include <ansidecl.h>
248#endif
249
250/**
251 * ATTRIBUTE_UNUSED:
252 *
253 * Macro used to signal to GCC unused function parameters
254 */
255
256#ifndef ATTRIBUTE_UNUSED
257#define ATTRIBUTE_UNUSED
258#endif
259
260/**
261 * ATTRIBUTE_ALLOC_SIZE:
262 *
263 * Macro used to indicate to GCC this is an allocator function
264 */
265
266#ifndef ATTRIBUTE_ALLOC_SIZE
267# if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
268#  define ATTRIBUTE_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
269# else
270#  define ATTRIBUTE_ALLOC_SIZE(x)
271# endif
272#else
273# define ATTRIBUTE_ALLOC_SIZE(x)
274#endif
275
276/**
277 * LIBXML_ATTR_FORMAT:
278 *
279 * Macro used to indicate to GCC the parameter are printf like
280 */
281
282#ifndef LIBXML_ATTR_FORMAT
283# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
284#  define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
285# else
286#  define LIBXML_ATTR_FORMAT(fmt,args)
287# endif
288#else
289# define LIBXML_ATTR_FORMAT(fmt,args)
290#endif
291
292#else /* !__GNUC__ */
293#define ATTRIBUTE_UNUSED
294#define LIBXML_ATTR_FORMAT(fmt,args)
295#define ATTRIBUTE_ALLOC_SIZE(x)
296#endif /* __GNUC__ */
297
298/*
299 * #pragma comment(lib, "iconv.lib")
300 *
301 * pragma understood my MS compiler which enables a conditional link with
302 * iconv.
303 */
304#ifdef _MSC_VER
305#if defined LIBXML_ICONV_ENABLED && !defined LIBXML2_COMPILING_MSCCDEF
306#pragma comment(lib, "iconv.lib")
307#endif
308#endif
309
310/*
311 * #pragma comment(lib, "kernel32.lib")
312 *
313 * pragma understood my MS compiler which enables a conditional link with
314 * kernel32.
315 */
316#ifdef _MSC_VER
317#if defined LIBXML_MODULES_ENABLED
318#pragma comment(lib, "kernel32.lib")
319#endif
320#endif
321
322#ifdef __cplusplus
323}
324#endif /* __cplusplus */
325#endif
326