| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /*
- * Summary: macros for marking symbols as exportable/importable.
- * Description: macros for marking symbols as exportable/importable.
- *
- * Copy: See Copyright for the status of this software.
- */
- #ifndef __XML_EXPORTS_H__
- #define __XML_EXPORTS_H__
- /** DOC_DISABLE */
- /*
- * Symbol visibility
- */
- #if defined(_WIN32) || defined(__CYGWIN__)
- #ifdef LIBXML_STATIC
- #define XMLPUBLIC
- #elif defined(IN_LIBXML)
- #define XMLPUBLIC __declspec(dllexport)
- #else
- #define XMLPUBLIC __declspec(dllimport)
- #endif
- #else /* not Windows */
- #define XMLPUBLIC
- #endif /* platform switch */
- #define XMLPUBFUN XMLPUBLIC
- #define XMLPUBVAR XMLPUBLIC extern
- /* Compatibility */
- #define XMLCALL
- #define XMLCDECL
- #ifndef LIBXML_DLL_IMPORT
- #define LIBXML_DLL_IMPORT XMLPUBVAR
- #endif
- /*
- * Attributes
- */
- #ifndef ATTRIBUTE_UNUSED
- #if __GNUC__ * 100 + __GNUC_MINOR__ >= 207 || defined(__clang__)
- #define ATTRIBUTE_UNUSED __attribute__((unused))
- #else
- #define ATTRIBUTE_UNUSED
- #endif
- #endif
- #if !defined(__clang__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)
- #define LIBXML_ATTR_ALLOC_SIZE(x) __attribute__((alloc_size(x)))
- #else
- #define LIBXML_ATTR_ALLOC_SIZE(x)
- #endif
- #if __GNUC__ * 100 + __GNUC_MINOR__ >= 303
- #define LIBXML_ATTR_FORMAT(fmt,args) \
- __attribute__((__format__(__printf__,fmt,args)))
- #else
- #define LIBXML_ATTR_FORMAT(fmt,args)
- #endif
- #ifndef XML_DEPRECATED
- #if defined(IN_LIBXML)
- #define XML_DEPRECATED
- #elif __GNUC__ * 100 + __GNUC_MINOR__ >= 301
- #define XML_DEPRECATED __attribute__((deprecated))
- #elif defined(_MSC_VER) && _MSC_VER >= 1400
- /* Available since Visual Studio 2005 */
- #define XML_DEPRECATED __declspec(deprecated)
- #else
- #define XML_DEPRECATED
- #endif
- #endif
- /*
- * Warnings pragmas, should be moved from public headers
- */
- #if defined(__LCC__)
- #define XML_IGNORE_FPTR_CAST_WARNINGS
- #define XML_POP_WARNINGS \
- _Pragma("diag_default 1215")
- #elif defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 406)
- #if defined(__clang__) || (__GNUC__ * 100 + __GNUC_MINOR__ >= 800)
- #define XML_IGNORE_FPTR_CAST_WARNINGS \
- _Pragma("GCC diagnostic push") \
- _Pragma("GCC diagnostic ignored \"-Wpedantic\"") \
- _Pragma("GCC diagnostic ignored \"-Wcast-function-type\"")
- #else
- #define XML_IGNORE_FPTR_CAST_WARNINGS \
- _Pragma("GCC diagnostic push") \
- _Pragma("GCC diagnostic ignored \"-Wpedantic\"")
- #endif
- #define XML_POP_WARNINGS \
- _Pragma("GCC diagnostic pop")
- #elif defined(_MSC_VER) && _MSC_VER >= 1400
- #define XML_IGNORE_FPTR_CAST_WARNINGS __pragma(warning(push))
- #define XML_POP_WARNINGS __pragma(warning(pop))
- #else
- #define XML_IGNORE_FPTR_CAST_WARNINGS
- #define XML_POP_WARNINGS
- #endif
- /*
- * Accessors for globals
- */
- #define XML_NO_ATTR
- #ifdef LIBXML_THREAD_ENABLED
- #define XML_DECLARE_GLOBAL(name, type, attrs) \
- attrs XMLPUBFUN type *__##name(void);
- #define XML_GLOBAL_MACRO(name) (*__##name())
- #else
- #define XML_DECLARE_GLOBAL(name, type, attrs) \
- attrs XMLPUBVAR type name;
- #endif
- /*
- * Originally declared in xmlversion.h which is generated
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
- XMLPUBFUN void xmlCheckVersion(int version);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __XML_EXPORTS_H__ */
|