17 #ifndef QGLIB_GLOBAL_H
18 #define QGLIB_GLOBAL_H
21 #if defined(Q_MOC_RUN) && !defined(BOOST_TT_HAS_OPERATOR_HPP_INCLUDED)
22 #define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
25 #include <QtCore/QtGlobal>
26 #include <boost/config.hpp>
29 #if defined(QtGLib_EXPORTS)
30 # define QTGLIB_EXPORT Q_DECL_EXPORT
32 # define QTGLIB_EXPORT Q_DECL_IMPORT
35 #if !defined(Q_OS_WIN) && !defined(Q_CC_NOKIAX86) && \
36 !defined(Q_CC_RVCT) && defined(QT_VISIBILITY_AVAILABLE)
37 # define QTGLIB_NO_EXPORT __attribute__((visibility("hidden")))
39 # define QTGLIB_NO_EXPORT
42 typedef struct _GValue GValue;
43 typedef struct _GParamSpec GParamSpec;
44 typedef struct _GClosure GClosure;
45 typedef struct _GObject GObject;
46 typedef struct _GError GError;
65 #define QGLIB_WRAPPER_DECLARATION_MACRO(CppClass, CClass, CNamespace, FakeSuperClass) \
67 typedef CNamespace##CClass CType; \
70 CppClass(const CppClass &); \
71 CppClass & operator=(const CppClass &); \
73 friend QGlib::RefCountedObject* FakeSuperClass##_new(void*); \
76 #define QGLIB_WRAPPER(Class) \
77 QGLIB_WRAPPER_DECLARATION_MACRO(Class, Class, G, Class)
79 #define QGLIB_WRAPPER_DIFFERENT_C_CLASS(Class, CClass) \
80 QGLIB_WRAPPER_DECLARATION_MACRO(Class, CClass, G, Class)
83 #if !defined(BOOST_NO_STATIC_ASSERT) //we have c++0x static_assert
84 # define QGLIB_STATIC_ASSERT(expr, message) static_assert(expr, message)
85 # define QGLIB_HAVE_CXX0X_STATIC_ASSERT 1
87 # include <boost/static_assert.hpp>
88 # define QGLIB_STATIC_ASSERT(expr, message) BOOST_STATIC_ASSERT(expr)
92 #if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_NO_RVALUE_REFERENCES)
93 # define QGLIB_HAVE_CXX0X 1
95 # define QGLIB_HAVE_CXX0X 0