xref: /aosp_15_r20/external/libxml2/include/libxml/xmlexports.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
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