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