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 "2.4.26"
32
33/**
34 * LIBXML_VERSION:
35 *
36 * the version number: 1.2.3 value is 1002003
37 */
38#define LIBXML_VERSION 20426
39
40/**
41 * LIBXML_VERSION_STRING:
42 *
43 * the version number string, 1.2.3 value is "1002003"
44 */
45#define LIBXML_VERSION_STRING "20426"
46
47/**
48 * LIBXML_TEST_VERSION:
49 *
50 * Macro to check that the libxml version in use is compatible with
51 * the version the software has been compiled against
52 */
53#define LIBXML_TEST_VERSION xmlCheckVersion(20426);
54
55#if 0
56/**
57 * WITH_TRIO:
58 *
59 * defined if the trio support need to be configured in
60 */
61#define WITH_TRIO
62#else
63/**
64 * WITHOUT_TRIO:
65 *
66 * defined if the trio support should not be configured in
67 */
68#define WITHOUT_TRIO
69#endif
70
71/**
72 * LIBXML_THREAD_ENABLED:
73 *
74 * Whether the thread support is configured in
75 */
76#if 0
77#define LIBXML_THREAD_ENABLED
78#endif
79
80/**
81 * LIBXML_FTP_ENABLED:
82 *
83 * Whether the FTP support is configured in
84 */
85#if 1
86#define LIBXML_FTP_ENABLED
87#endif
88
89/**
90 * LIBXML_HTTP_ENABLED:
91 *
92 * Whether the HTTP support is configured in
93 */
94#if 1
95#define LIBXML_HTTP_ENABLED
96#endif
97
98/**
99 * LIBXML_HTML_ENABLED:
100 *
101 * Whether the HTML support is configured in
102 */
103#if 1
104#define LIBXML_HTML_ENABLED
105#endif
106
107/**
108 * LIBXML_CATALOG_ENABLED:
109 *
110 * Whether the Catalog support is configured in
111 */
112#if 1
113#define LIBXML_CATALOG_ENABLED
114#endif
115
116/**
117 * LIBXML_DOCB_ENABLED:
118 *
119 * Whether the SGML Docbook support is configured in
120 */
121#if 1
122#define LIBXML_DOCB_ENABLED
123#endif
124
125/**
126 * LIBXML_XPATH_ENABLED:
127 *
128 * Whether XPath is configured in
129 */
130#if 1
131#define LIBXML_XPATH_ENABLED
132#endif
133
134/**
135 * LIBXML_XPTR_ENABLED:
136 *
137 * Whether XPointer is configured in
138 */
139#if 1
140#define LIBXML_XPTR_ENABLED
141#endif
142
143/**
144 * LIBXML_C14N_ENABLED:
145 *
146 * Whether the Canonicalization support is configured in
147 */
148#if 0
149#define LIBXML_C14N_ENABLED
150#endif
151
152/**
153 * LIBXML_XINCLUDE_ENABLED:
154 *
155 * Whether XInclude is configured in
156 */
157#if 1
158#define LIBXML_XINCLUDE_ENABLED
159#endif
160
161/**
162 * LIBXML_ICONV_ENABLED:
163 *
164 * Whether iconv support is available
165 */
166#if 0
167#define LIBXML_ICONV_ENABLED
168#endif
169
170/**
171 * LIBXML_DEBUG_ENABLED:
172 *
173 * Whether Debugging module is configured in
174 */
175#if 1
176#define LIBXML_DEBUG_ENABLED
177#endif
178
179/**
180 * DEBUG_MEMORY_LOCATION:
181 *
182 * Whether the memory debugging is configured in
183 */
184#if 0
185#define DEBUG_MEMORY_LOCATION
186#endif
187
188/**
189 * LIBXML_DLL_IMPORT:
190 *
191 * Used on Windows (MS C compiler only) to declare a variable as
192 * imported from the library. This macro should be empty when compiling
193 * libxml itself. It should expand to __declspec(dllimport)
194 * when the client code includes this header, and that only if the client
195 * links dynamically against libxml.
196 * For this to work, we need three macros. One tells us which compiler is
197 * being used and luckily the compiler defines such a thing: _MSC_VER. The
198 * second macro tells us if we are compiling libxml or the client code and
199 * we define the macro IN_LIBXML on the compiler's command line for this
200 * purpose. The third macro, LIBXML_STATIC, must be defined by any client
201 * code which links against libxml statically.
202 */
203#ifndef LIBXML_DLL_IMPORT
204#if defined(_MSC_VER) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
205#define LIBXML_DLL_IMPORT __declspec(dllimport)
206#else
207#define LIBXML_DLL_IMPORT
208#endif
209#endif
210
211/**
212 * ATTRIBUTE_UNUSED:
213 *
214 * Macro used to signal to GCC unused function parameters
215 */
216#ifdef __GNUC__
217#ifdef HAVE_ANSIDECL_H
218#include <ansidecl.h>
219#endif
220#ifndef ATTRIBUTE_UNUSED
221#define ATTRIBUTE_UNUSED
222#endif
223#else
224#define ATTRIBUTE_UNUSED
225#endif
226
227/*
228 * #pragma comment(lib, "iconv.lib")
229 *
230 * pragma understood my MS compiler which enables a conditional link with
231 * iconv.
232 */
233#ifdef _MSC_VER
234#if defined LIBXML_ICONV_ENABLED && !defined LIBXML2_COMPILING_MSCCDEF
235#pragma comment(lib, "iconv.lib")
236#endif
237#endif
238
239#ifdef __cplusplus
240}
241#endif /* __cplusplus */
242#endif
243