xmlexports.h revision 1b7783879f7122564e209c7124301e886079f393
1/*
2 * Summary: macros for marking symbols as exportable/importable.
3 * Description: macros for marking symbols as exportable/importable.
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Igor Zlatovic <igor@zlatkovic.com>
8 */
9
10#ifndef __XML_EXPORTS_H__
11#define __XML_EXPORTS_H__
12
13/**
14 * XMLPUBFUN, XMLPUBVAR, XMLCALL
15 *
16 * Macros which declare an exportable function, an exportable variable and
17 * the calling convention used for functions.
18 *
19 * Please use an extra block for every platform/compiler combination when
20 * modifying this, rather than overlong #ifdef lines. This helps
21 * readability as well as the fact that different compilers on the same
22 * platform might need different definitions.
23 */
24
25/**
26 * XMLPUBFUN:
27 *
28 * Macros which declare an exportable function
29 */
30#define XMLPUBFUN
31/**
32 * XMLPUBVAR:
33 *
34 * Macros which declare an exportable variable
35 */
36#define XMLPUBVAR extern
37/**
38 * XMLCALL:
39 *
40 * Macros which declare the called convention for exported functions
41 */
42#define XMLCALL
43/**
44 * XMLCDECL:
45 *
46 * Macro which declares the calling convention for exported functions that
47 * use '...'.
48 */
49#define XMLCDECL
50
51/** DOC_DISABLE */
52
53/* Windows platform with MS compiler */
54#if defined(_WIN32) && defined(_MSC_VER)
55  #undef XMLPUBFUN
56  #undef XMLPUBVAR
57  #undef XMLCALL
58  #undef XMLCDECL
59  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
60    #define XMLPUBFUN __declspec(dllexport)
61    #define XMLPUBVAR __declspec(dllexport)
62  #else
63    #define XMLPUBFUN
64    #if !defined(LIBXML_STATIC)
65      #define XMLPUBVAR __declspec(dllimport) extern
66    #else
67      #define XMLPUBVAR extern
68    #endif
69  #endif
70  #if defined(LIBXML_FASTCALL)
71    #define XMLCALL __fastcall
72  #else
73    #define XMLCALL __cdecl
74  #endif
75  #define XMLCDECL __cdecl
76  #if !defined _REENTRANT
77    #define _REENTRANT
78  #endif
79#endif
80
81/* Windows platform with Borland compiler */
82#if defined(_WIN32) && defined(__BORLANDC__)
83  #undef XMLPUBFUN
84  #undef XMLPUBVAR
85  #undef XMLCALL
86  #undef XMLCDECL
87  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
88    #define XMLPUBFUN __declspec(dllexport)
89    #define XMLPUBVAR __declspec(dllexport) extern
90  #else
91    #define XMLPUBFUN
92    #if !defined(LIBXML_STATIC)
93      #define XMLPUBVAR __declspec(dllimport) extern
94    #else
95      #define XMLPUBVAR extern
96    #endif
97  #endif
98  #define XMLCALL __cdecl
99  #define XMLCDECL __cdecl
100  #if !defined _REENTRANT
101    #define _REENTRANT
102  #endif
103#endif
104
105/* Windows platform with GNU compiler (Mingw) */
106#if defined(_WIN32) && defined(__MINGW32__)
107  #undef XMLPUBFUN
108  #undef XMLPUBVAR
109  #undef XMLCALL
110  #undef XMLCDECL
111  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
112    #define XMLPUBFUN __declspec(dllexport)
113    #define XMLPUBVAR __declspec(dllexport)
114  #else
115    #define XMLPUBFUN
116    #if !defined(LIBXML_STATIC)
117      #define XMLPUBVAR __declspec(dllimport) extern
118    #else
119      #define XMLPUBVAR extern
120    #endif
121  #endif
122  #define XMLCALL __cdecl
123  #define XMLCDECL __cdecl
124  #if !defined _REENTRANT
125    #define _REENTRANT
126  #endif
127#endif
128
129/* Cygwin platform, GNU compiler */
130#if defined(_WIN32) && defined(__CYGWIN__)
131  #undef XMLPUBFUN
132  #undef XMLPUBVAR
133  #undef XMLCALL
134  #undef XMLCDECL
135  #if defined(IN_LIBXML) && !defined(LIBXML_STATIC)
136    #define XMLPUBFUN __declspec(dllexport)
137    #define XMLPUBVAR __declspec(dllexport)
138  #else
139    #define XMLPUBFUN
140    #if !defined(LIBXML_STATIC)
141      #define XMLPUBVAR __declspec(dllimport) extern
142    #else
143      #define XMLPUBVAR
144    #endif
145  #endif
146  #define XMLCALL __cdecl
147  #define XMLCDECL __cdecl
148#endif
149
150/* Compatibility */
151#if !defined(LIBXML_DLL_IMPORT)
152#define LIBXML_DLL_IMPORT XMLPUBVAR
153#endif
154
155#endif /* __XML_EXPORTS_H__ */
156
157
158