1*7c568831SAndroid Build Coastguard Worker /* 2*7c568831SAndroid Build Coastguard Worker * Summary: macros for marking symbols as exportable/importable. 3*7c568831SAndroid Build Coastguard Worker * Description: macros for marking symbols as exportable/importable. 4*7c568831SAndroid Build Coastguard Worker * 5*7c568831SAndroid Build Coastguard Worker * Copy: See Copyright for the status of this software. 6*7c568831SAndroid Build Coastguard Worker */ 7*7c568831SAndroid Build Coastguard Worker 8*7c568831SAndroid Build Coastguard Worker #ifndef __XML_EXPORTS_H__ 9*7c568831SAndroid Build Coastguard Worker #define __XML_EXPORTS_H__ 10*7c568831SAndroid Build Coastguard Worker 11*7c568831SAndroid Build Coastguard Worker /** DOC_DISABLE */ 12*7c568831SAndroid Build Coastguard Worker 13*7c568831SAndroid Build Coastguard Worker /* 14*7c568831SAndroid Build Coastguard Worker * Symbol visibility 15*7c568831SAndroid Build Coastguard Worker */ 16*7c568831SAndroid Build Coastguard Worker 17*7c568831SAndroid Build Coastguard Worker #if defined(_WIN32) || defined(__CYGWIN__) 18*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_STATIC 19*7c568831SAndroid Build Coastguard Worker #define XMLPUBLIC 20*7c568831SAndroid Build Coastguard Worker #elif defined(IN_LIBXML) 21*7c568831SAndroid Build Coastguard Worker #define XMLPUBLIC __declspec(dllexport) 22*7c568831SAndroid Build Coastguard Worker #else 23*7c568831SAndroid Build Coastguard Worker #define XMLPUBLIC __declspec(dllimport) 24*7c568831SAndroid Build Coastguard Worker #endif 25*7c568831SAndroid Build Coastguard Worker #else /* not Windows */ 26*7c568831SAndroid Build Coastguard Worker #define XMLPUBLIC 27*7c568831SAndroid Build Coastguard Worker #endif /* platform switch */ 28*7c568831SAndroid Build Coastguard Worker 29*7c568831SAndroid Build Coastguard Worker #define XMLPUBFUN XMLPUBLIC 30*7c568831SAndroid Build Coastguard Worker 31*7c568831SAndroid Build Coastguard Worker #define XMLPUBVAR XMLPUBLIC extern 32*7c568831SAndroid Build Coastguard Worker 33*7c568831SAndroid Build Coastguard Worker /* Compatibility */ 34*7c568831SAndroid Build Coastguard Worker #define XMLCALL 35*7c568831SAndroid Build Coastguard Worker #define XMLCDECL 36*7c568831SAndroid Build Coastguard Worker #ifndef LIBXML_DLL_IMPORT 37*7c568831SAndroid Build Coastguard Worker #define LIBXML_DLL_IMPORT XMLPUBVAR 38*7c568831SAndroid Build Coastguard Worker #endif 39*7c568831SAndroid Build Coastguard Worker 40*7c568831SAndroid Build Coastguard Worker /* 41*7c568831SAndroid Build Coastguard Worker * Attributes 42*7c568831SAndroid Build Coastguard Worker */ 43*7c568831SAndroid Build Coastguard Worker 44*7c568831SAndroid Build Coastguard Worker #if !defined(__clang__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403) 45*7c568831SAndroid Build Coastguard Worker #define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x))) 46*7c568831SAndroid Build Coastguard Worker #else 47*7c568831SAndroid Build Coastguard Worker #define LIBXML_ATTR_ALLOC_SIZE(x) 48*7c568831SAndroid Build Coastguard Worker #endif 49*7c568831SAndroid Build Coastguard Worker 50*7c568831SAndroid Build Coastguard Worker #if __GNUC__ * 100 + __GNUC_MINOR__ >= 303 51*7c568831SAndroid Build Coastguard Worker #define LIBXML_ATTR_FORMAT(fmt,args) \ 52*7c568831SAndroid Build Coastguard Worker __attribute__((__format__(__printf__,fmt,args))) 53*7c568831SAndroid Build Coastguard Worker #else 54*7c568831SAndroid Build Coastguard Worker #define LIBXML_ATTR_FORMAT(fmt,args) 55*7c568831SAndroid Build Coastguard Worker #endif 56*7c568831SAndroid Build Coastguard Worker 57*7c568831SAndroid Build Coastguard Worker #ifndef XML_DEPRECATED 58*7c568831SAndroid Build Coastguard Worker #if defined(IN_LIBXML) 59*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED 60*7c568831SAndroid Build Coastguard Worker #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301 61*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED __attribute__((deprecated)) 62*7c568831SAndroid Build Coastguard Worker #elif defined(_MSC_VER) && _MSC_VER >= 1400 63*7c568831SAndroid Build Coastguard Worker /* Available since Visual Studio 2005 */ 64*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED __declspec(deprecated) 65*7c568831SAndroid Build Coastguard Worker #else 66*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED 67*7c568831SAndroid Build Coastguard Worker #endif 68*7c568831SAndroid Build Coastguard Worker #endif 69*7c568831SAndroid Build Coastguard Worker 70*7c568831SAndroid Build Coastguard Worker #ifndef XML_DEPRECATED_MEMBER 71*7c568831SAndroid Build Coastguard Worker #if defined(IN_LIBXML) 72*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED_MEMBER 73*7c568831SAndroid Build Coastguard Worker #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301 74*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED_MEMBER __attribute__((deprecated)) 75*7c568831SAndroid Build Coastguard Worker #else 76*7c568831SAndroid Build Coastguard Worker #define XML_DEPRECATED_MEMBER 77*7c568831SAndroid Build Coastguard Worker #endif 78*7c568831SAndroid Build Coastguard Worker #endif 79*7c568831SAndroid Build Coastguard Worker 80*7c568831SAndroid Build Coastguard Worker /* 81*7c568831SAndroid Build Coastguard Worker * Warnings pragmas, should be moved from public headers 82*7c568831SAndroid Build Coastguard Worker */ 83*7c568831SAndroid Build Coastguard Worker 84*7c568831SAndroid Build Coastguard Worker #if defined(__LCC__) 85*7c568831SAndroid Build Coastguard Worker 86*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_FPTR_CAST_WARNINGS 87*7c568831SAndroid Build Coastguard Worker #define XML_POP_WARNINGS \ 88*7c568831SAndroid Build Coastguard Worker _Pragma("diag_default 1215") 89*7c568831SAndroid Build Coastguard Worker 90*7c568831SAndroid Build Coastguard Worker #elif defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 406) 91*7c568831SAndroid Build Coastguard Worker 92*7c568831SAndroid Build Coastguard Worker #if defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 800) 93*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_FPTR_CAST_WARNINGS \ 94*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic push") \ 95*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \ 96*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"") 97*7c568831SAndroid Build Coastguard Worker #else 98*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_FPTR_CAST_WARNINGS \ 99*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic push") \ 100*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic ignored \"-Wpedantic\"") 101*7c568831SAndroid Build Coastguard Worker #endif 102*7c568831SAndroid Build Coastguard Worker #define XML_POP_WARNINGS \ 103*7c568831SAndroid Build Coastguard Worker _Pragma("GCC diagnostic pop") 104*7c568831SAndroid Build Coastguard Worker 105*7c568831SAndroid Build Coastguard Worker #elif defined(_MSC_VER) && _MSC_VER >= 1400 106*7c568831SAndroid Build Coastguard Worker 107*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_FPTR_CAST_WARNINGS __pragma(warning(push)) 108*7c568831SAndroid Build Coastguard Worker #define XML_POP_WARNINGS __pragma(warning(pop)) 109*7c568831SAndroid Build Coastguard Worker 110*7c568831SAndroid Build Coastguard Worker #else 111*7c568831SAndroid Build Coastguard Worker 112*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_FPTR_CAST_WARNINGS 113*7c568831SAndroid Build Coastguard Worker #define XML_POP_WARNINGS 114*7c568831SAndroid Build Coastguard Worker 115*7c568831SAndroid Build Coastguard Worker #endif 116*7c568831SAndroid Build Coastguard Worker 117*7c568831SAndroid Build Coastguard Worker /* 118*7c568831SAndroid Build Coastguard Worker * Accessors for globals 119*7c568831SAndroid Build Coastguard Worker */ 120*7c568831SAndroid Build Coastguard Worker 121*7c568831SAndroid Build Coastguard Worker #define XML_NO_ATTR 122*7c568831SAndroid Build Coastguard Worker 123*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_THREAD_ENABLED 124*7c568831SAndroid Build Coastguard Worker #define XML_DECLARE_GLOBAL(name, type, attrs) \ 125*7c568831SAndroid Build Coastguard Worker attrs XMLPUBFUN type *__##name(void); 126*7c568831SAndroid Build Coastguard Worker #define XML_GLOBAL_MACRO(name) (*__##name()) 127*7c568831SAndroid Build Coastguard Worker #else 128*7c568831SAndroid Build Coastguard Worker #define XML_DECLARE_GLOBAL(name, type, attrs) \ 129*7c568831SAndroid Build Coastguard Worker attrs XMLPUBVAR type name; 130*7c568831SAndroid Build Coastguard Worker #endif 131*7c568831SAndroid Build Coastguard Worker 132*7c568831SAndroid Build Coastguard Worker /* 133*7c568831SAndroid Build Coastguard Worker * Originally declared in xmlversion.h which is generated 134*7c568831SAndroid Build Coastguard Worker */ 135*7c568831SAndroid Build Coastguard Worker 136*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 137*7c568831SAndroid Build Coastguard Worker extern "C" { 138*7c568831SAndroid Build Coastguard Worker #endif 139*7c568831SAndroid Build Coastguard Worker 140*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void xmlCheckVersion(int version); 141*7c568831SAndroid Build Coastguard Worker 142*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 143*7c568831SAndroid Build Coastguard Worker } 144*7c568831SAndroid Build Coastguard Worker #endif 145*7c568831SAndroid Build Coastguard Worker 146*7c568831SAndroid Build Coastguard Worker #endif /* __XML_EXPORTS_H__ */ 147*7c568831SAndroid Build Coastguard Worker 148*7c568831SAndroid Build Coastguard Worker 149