blob: 375f3a4e852b68a247f1dadd52df5c552d3d0b32 [file] [log] [blame]
Daniel Veillardf7f41852001-06-22 15:18:01 +00001/*
Daniel Veillardbe586972003-11-18 20:56:51 +00002 * Summary: compile-time version informations on Windows
3 * Description: compile-time version informations for the XML library
4 * when compiled on the Windows platform
Daniel Veillardf7f41852001-06-22 15:18:01 +00005 *
Daniel Veillardbe586972003-11-18 20:56:51 +00006 * Copy: See Copyright for the status of this software.
Daniel Veillardf7f41852001-06-22 15:18:01 +00007 *
Daniel Veillardbe586972003-11-18 20:56:51 +00008 * Author: Daniel Veillard
Daniel Veillardf7f41852001-06-22 15:18:01 +00009 */
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 */
Daniel Veillard50f34372001-08-03 12:06:36 +000022#ifndef LIBXML2_COMPILING_MSCCDEF
Daniel Veillard05dec342001-07-14 21:57:39 +000023extern void xmlCheckVersion(int version);
Daniel Veillard50f34372001-08-03 12:06:36 +000024#endif /* LIBXML2_COMPILING_MSCCDEF */
25
26/**
27 * LIBXML_DOTTED_VERSION:
28 *
29 * the version string like "1.2.3"
30 */
Daniel Veillardc5d64342001-06-24 12:13:24 +000031#define LIBXML_DOTTED_VERSION "@VERSION@"
Daniel Veillard50f34372001-08-03 12:06:36 +000032
33/**
34 * LIBXML_VERSION:
35 *
36 * the version number: 1.2.3 value is 1002003
37 */
Daniel Veillardc5d64342001-06-24 12:13:24 +000038#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@
Daniel Veillard50f34372001-08-03 12:06:36 +000039
40/**
41 * LIBXML_VERSION_STRING:
42 *
43 * the version number string, 1.2.3 value is "1002003"
44 */
Daniel Veillardc5d64342001-06-24 12:13:24 +000045#define LIBXML_VERSION_STRING "@LIBXML_VERSION_NUMBER@"
Daniel Veillard50f34372001-08-03 12:06:36 +000046
47/**
William M. Brackf4025492004-08-18 21:08:46 +000048 * LIBXML_VERSION_EXTRA:
49 *
50 * extra version information, used to show a CVS compilation
51 */
Daniel Veillardd17760f2005-07-10 14:12:00 +000052#define LIBXML_VERSION_EXTRA "-win32"
William M. Brackf4025492004-08-18 21:08:46 +000053
54/**
Daniel Veillard50f34372001-08-03 12:06:36 +000055 * 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 */
Daniel Veillardc5d64342001-06-24 12:13:24 +000060#define LIBXML_TEST_VERSION xmlCheckVersion(@LIBXML_VERSION_NUMBER@);
Daniel Veillardf7f41852001-06-22 15:18:01 +000061
Daniel Veillard7cf5e442001-09-10 20:16:32 +000062#if 0
Daniel Veillardf7f41852001-06-22 15:18:01 +000063/**
64 * WITH_TRIO:
65 *
Daniel Veillard7cf5e442001-09-10 20:16:32 +000066 * defined if the trio support need to be configured in
Daniel Veillardf7f41852001-06-22 15:18:01 +000067 */
Daniel Veillardf7f41852001-06-22 15:18:01 +000068#define WITH_TRIO
Daniel Veillard7cf5e442001-09-10 20:16:32 +000069#else
70/**
71 * WITHOUT_TRIO:
72 *
73 * defined if the trio support should not be configured in
74 */
75#define WITHOUT_TRIO
Daniel Veillardf7f41852001-06-22 15:18:01 +000076#endif
77
78/**
Daniel Veillardda423da2002-04-10 19:25:38 +000079 * LIBXML_THREAD_ENABLED:
Daniel Veillarddb0eb8d2002-01-13 13:35:00 +000080 *
81 * Whether the thread support is configured in
82 */
83#if 0
84#define LIBXML_THREAD_ENABLED
85#endif
86
87/**
Daniel Veillardf7f41852001-06-22 15:18:01 +000088 * LIBXML_FTP_ENABLED:
89 *
90 * Whether the FTP support is configured in
91 */
92#if 1
93#define LIBXML_FTP_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +000094#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
Daniel Veillardf7f41852001-06-22 15:18:01 +0000103#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
Daniel Veillardf7f41852001-06-22 15:18:01 +0000112#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
Daniel Veillardf7f41852001-06-22 15:18:01 +0000121#endif
122
123/**
124 * LIBXML_DOCB_ENABLED:
125 *
126 * Whether the SGML Docbook support is configured in
127 */
Daniel Veillard50f34372001-08-03 12:06:36 +0000128#if 1
Daniel Veillardf7f41852001-06-22 15:18:01 +0000129#define LIBXML_DOCB_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000130#endif
131
132/**
133 * LIBXML_XPATH_ENABLED:
134 *
135 * Whether XPath is configured in
136 */
137#if 1
138#define LIBXML_XPATH_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000139#endif
140
141/**
142 * LIBXML_XPTR_ENABLED:
143 *
144 * Whether XPointer is configured in
145 */
146#if 1
147#define LIBXML_XPTR_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000148#endif
149
150/**
Daniel Veillard044fc6b2002-03-04 17:09:44 +0000151 * 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/**
Daniel Veillardf7f41852001-06-22 15:18:01 +0000160 * LIBXML_XINCLUDE_ENABLED:
161 *
162 * Whether XInclude is configured in
163 */
164#if 1
165#define LIBXML_XINCLUDE_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000166#endif
167
168/**
Daniel Veillarded6c5492005-07-23 15:00:22 +0000169 * 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/**
Daniel Veillardf7f41852001-06-22 15:18:01 +0000178 * LIBXML_ICONV_ENABLED:
179 *
180 * Whether iconv support is available
181 */
Daniel Veillard50f34372001-08-03 12:06:36 +0000182#if 0
Daniel Veillardf7f41852001-06-22 15:18:01 +0000183#define LIBXML_ICONV_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000184#endif
Daniel Veillardf7f41852001-06-22 15:18:01 +0000185
186/**
Daniel Veillard01fc1a92003-07-30 15:12:01 +0000187 * 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/**
Daniel Veillardf7f41852001-06-22 15:18:01 +0000196 * LIBXML_DEBUG_ENABLED:
197 *
198 * Whether Debugging module is configured in
199 */
200#if 1
201#define LIBXML_DEBUG_ENABLED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000202#endif
203
204/**
205 * DEBUG_MEMORY_LOCATION:
206 *
207 * Whether the memory debugging is configured in
208 */
Daniel Veillard07385fd2001-06-23 21:55:48 +0000209#if 0
Daniel Veillardf7f41852001-06-22 15:18:01 +0000210#define DEBUG_MEMORY_LOCATION
211#endif
212
Daniel Veillard50f34372001-08-03 12:06:36 +0000213/**
Daniel Veillard22cdb842004-10-04 14:09:17 +0000214 * 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/**
Daniel Veillard50f34372001-08-03 12:06:36 +0000223 * 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 */
Daniel Veillardf7f41852001-06-22 15:18:01 +0000237#ifndef LIBXML_DLL_IMPORT
Daniel Veillard50f34372001-08-03 12:06:36 +0000238#if defined(_MSC_VER) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
Daniel Veillardf7f41852001-06-22 15:18:01 +0000239#define LIBXML_DLL_IMPORT __declspec(dllimport)
240#else
241#define LIBXML_DLL_IMPORT
242#endif
243#endif
244
Daniel Veillardf63085d2009-01-18 20:53:59 +0000245#ifdef __GNUC__
246#ifdef HAVE_ANSIDECL_H
247#include <ansidecl.h>
248#endif
249
Daniel Veillardf7f41852001-06-22 15:18:01 +0000250/**
251 * ATTRIBUTE_UNUSED:
252 *
253 * Macro used to signal to GCC unused function parameters
254 */
Daniel Veillardf63085d2009-01-18 20:53:59 +0000255
Daniel Veillard50f34372001-08-03 12:06:36 +0000256#ifndef ATTRIBUTE_UNUSED
Daniel Veillardf7f41852001-06-22 15:18:01 +0000257#define ATTRIBUTE_UNUSED
Daniel Veillard50f34372001-08-03 12:06:36 +0000258#endif
Daniel Veillardf63085d2009-01-18 20:53:59 +0000259
260/**
261 * ATTRIBUTE_ALLOC_SIZE:
262 *
263 * Macro used to indicate to GCC this is an allocator function
264 */
265
Daniel Veillardd032a5b2009-01-18 19:41:26 +0000266#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
Daniel Veillardf63085d2009-01-18 20:53:59 +0000275
276/**
Daniel Veillardf076f342009-04-15 09:20:25 +0000277 * LIBXML_ATTR_FORMAT:
Daniel Veillardf63085d2009-01-18 20:53:59 +0000278 *
279 * Macro used to indicate to GCC the parameter are printf like
280 */
281
Daniel Veillardf076f342009-04-15 09:20:25 +0000282#ifndef LIBXML_ATTR_FORMAT
Daniel Veillardf63085d2009-01-18 20:53:59 +0000283# if ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)))
Daniel Veillardf076f342009-04-15 09:20:25 +0000284# define LIBXML_ATTR_FORMAT(fmt,args) __attribute__((__format__(__printf__,fmt,args)))
Daniel Veillardf63085d2009-01-18 20:53:59 +0000285# else
Daniel Veillardf076f342009-04-15 09:20:25 +0000286# define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillardf63085d2009-01-18 20:53:59 +0000287# endif
Daniel Veillard50f34372001-08-03 12:06:36 +0000288#else
Daniel Veillardf076f342009-04-15 09:20:25 +0000289# define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillard50f34372001-08-03 12:06:36 +0000290#endif
Daniel Veillardf7f41852001-06-22 15:18:01 +0000291
Daniel Veillardf63085d2009-01-18 20:53:59 +0000292#else /* !__GNUC__ */
293#define ATTRIBUTE_UNUSED
Daniel Veillardf076f342009-04-15 09:20:25 +0000294#define LIBXML_ATTR_FORMAT(fmt,args)
Daniel Veillardf63085d2009-01-18 20:53:59 +0000295#define ATTRIBUTE_ALLOC_SIZE(x)
296#endif /* __GNUC__ */
297
William M. Brack60f394e2003-11-16 06:25:42 +0000298/*
Daniel Veillard8e3943c2001-11-12 21:35:44 +0000299 * #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
Daniel Veillardce1648b2005-01-04 15:10:22 +0000310/*
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
Daniel Veillardf7f41852001-06-22 15:18:01 +0000322#ifdef __cplusplus
323}
324#endif /* __cplusplus */
325#endif