123456789101112131415161718192021222324252627282930313233343536 |
- #ifndef Py_EXPORTS_H
- #define Py_EXPORTS_H
- #if defined(_WIN32) || defined(__CYGWIN__)
- #if defined(Py_ENABLE_SHARED)
- #define Py_IMPORTED_SYMBOL __declspec(dllimport)
- #define Py_EXPORTED_SYMBOL __declspec(dllexport)
- #define Py_LOCAL_SYMBOL
- #else
- #define Py_IMPORTED_SYMBOL
- #define Py_EXPORTED_SYMBOL
- #define Py_LOCAL_SYMBOL
- #endif
- #else
- /*
- * If we only ever used gcc >= 5, we could use __has_attribute(visibility)
- * as a cross-platform way to determine if visibility is supported. However,
- * we may still need to support gcc >= 4, as some Ubuntu LTS and Centos versions
- * have 4 < gcc < 5.
- */
- #ifndef __has_attribute
- #define __has_attribute(x) 0 // Compatibility with non-clang compilers.
- #endif
- #if (defined(__GNUC__) && (__GNUC__ >= 4)) ||\
- (defined(__clang__) && __has_attribute(visibility))
- #define Py_IMPORTED_SYMBOL __attribute__ ((visibility ("default")))
- #define Py_EXPORTED_SYMBOL __attribute__ ((visibility ("default")))
- #define Py_LOCAL_SYMBOL __attribute__ ((visibility ("hidden")))
- #else
- #define Py_IMPORTED_SYMBOL
- #define Py_EXPORTED_SYMBOL
- #define Py_LOCAL_SYMBOL
- #endif
- #endif
- #endif /* Py_EXPORTS_H */
|