| 1 | // Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB). |
| 2 | // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only |
| 3 | |
| 4 | #ifndef QT3DCORE_GLOBAL_H |
| 5 | #define QT3DCORE_GLOBAL_H |
| 6 | |
| 7 | #include <QtCore/qglobal.h> |
| 8 | #include <Qt3DCore/qt3dcore-config.h> |
| 9 | |
| 10 | QT_BEGIN_NAMESPACE |
| 11 | |
| 12 | #if defined(QT_SHARED) || !defined(QT_STATIC) |
| 13 | # if defined(QT_BUILD_3DCORE_LIB) |
| 14 | # define Q_3DCORESHARED_EXPORT Q_DECL_EXPORT |
| 15 | # else |
| 16 | # define Q_3DCORESHARED_EXPORT Q_DECL_IMPORT |
| 17 | # endif |
| 18 | #else |
| 19 | # define Q_3DCORESHARED_EXPORT |
| 20 | #endif |
| 21 | |
| 22 | #define QT3D_DECLARE_TYPEINFO(NS, Class, Flags) \ |
| 23 | } /* NS */ \ |
| 24 | Q_DECLARE_TYPEINFO(NS :: Class, Flags); \ |
| 25 | namespace NS { \ |
| 26 | /*end*/ |
| 27 | |
| 28 | #define QT3D_DECLARE_TYPEINFO_2(OuterNS, InnerNS, Class, Flags) \ |
| 29 | } /* InnerNS */ \ |
| 30 | QT3D_DECLARE_TYPEINFO(OuterNS, InnerNS :: Class, Flags) \ |
| 31 | namespace InnerNS { \ |
| 32 | /*end*/ |
| 33 | |
| 34 | #define QT3D_DECLARE_TYPEINFO_3(OuterNS, InnerNS, InnerMostNS, Class, Flags) \ |
| 35 | } /* InnerMostNS */ \ |
| 36 | QT3D_DECLARE_TYPEINFO_2(OuterNS, InnerNS, InnerMostNS :: Class, Flags) \ |
| 37 | namespace InnerMostNS { \ |
| 38 | /*end*/ |
| 39 | |
| 40 | #define QT3D_DECLARE_SHARED(NS, Class) \ |
| 41 | inline void swap(Class &lhs, Class &rhs) \ |
| 42 | noexcept(noexcept(lhs.swap(rhs))) \ |
| 43 | { lhs.swap(rhs); } \ |
| 44 | QT3D_DECLARE_TYPEINFO(NS, Class, Q_RELOCATABLE_TYPE) \ |
| 45 | /*end*/ |
| 46 | |
| 47 | #define QT3D_DECLARE_SHARED_2(OuterNS, InnerNS, Class) \ |
| 48 | inline void swap(Class &lhs, Class &rhs) \ |
| 49 | noexcept(noexcept(lhs.swap(rhs))) \ |
| 50 | { lhs.swap(rhs); } \ |
| 51 | QT3D_DECLARE_TYPEINFO_2(OuterNS, InnerNS, Class, Q_RELOCATABLE_TYPE) \ |
| 52 | /*end*/ |
| 53 | |
| 54 | #define QT3D_REVISION(major, minor) Q_REVISION(major, minor) |
| 55 | #define QT3D_PROPERTY_REVISION(major, minor) REVISION(major, minor) |
| 56 | |
| 57 | QT_END_NAMESPACE |
| 58 | |
| 59 | #endif // QT3DCORE_GLOBAL_H |
| 60 | |