Mercurial > projects > qtd
diff include/qtd_core.h @ 384:d2f48c4cb3e3
Same behavior of shared libs on linux and windows. Minor build script fixes.
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Fri, 16 Jul 2010 20:04:29 +0300 |
parents | 7341c47790d4 |
children |
line wrap: on
line diff
--- a/include/qtd_core.h Mon Jul 12 22:50:58 2010 +0300 +++ b/include/qtd_core.h Fri Jul 16 20:04:29 2010 +0300 @@ -9,85 +9,77 @@ #include <QAbstractItemModel> #define QTD_EXTERN extern "C" + QTD_EXTERN typedef void (*VoidFunc)(); #ifdef WIN32 - - #define QTD_DLL_EXPORT __declspec(dllexport) - #define QTD_DLL_IMPORT __declspec(dllimport) - - #ifdef CPP_SHARED - - #define QTD_EXPORT_DECL(MODULE, TYPE, NAME, ARGS) \ - QTD_EXTERN typedef TYPE (*qtd_##NAME##_t)ARGS; \ - QTD_EXTERN { extern QTD_##MODULE##_DLL_PUBLIC qtd_##NAME##_t qtd_##NAME; } - - #define QTD_EXPORT(MODULE, NAME) \ - QTD_EXTERN { QTD_##MODULE##_DLL_PUBLIC qtd_##NAME##_t qtd_##NAME; } \ - QTD_EXTERN QTD_DLL_EXPORT void qtd_set_##NAME(VoidFunc func) { qtd_##NAME = (qtd_##NAME##_t)func; } - - #endif - + #define QTD_EXPORT __declspec(dllexport) + #define QTD_IMPORT __declspec(dllimport) #else - - #define QTD_DLL_EXPORT - #define QTD_DLL_IMPORT - - #define QTD_EXPORT_DECL(MODULE, TYPE, NAME, ARGS) \ - QTD_EXTERN TYPE qtd_##NAME ARGS; - - #define QTD_EXPORT(MODULE, NAME) - + #define QTD_EXPORT + #define QTD_IMPORT #endif -#define QTD_DLL_PUBLIC QTD_DLL_EXPORT +#ifdef CPP_SHARED + #define QTD_FUNC_DECL(MODULE, TYPE, NAME, ARGS) \ + QTD_EXTERN typedef TYPE (*qtd_##NAME##_t)ARGS; \ + QTD_EXTERN { extern QTD_##MODULE##_PUBLIC qtd_##NAME##_t qtd_##NAME; } + #define QTD_FUNC(MODULE, NAME) \ + QTD_EXTERN { QTD_##MODULE##_PUBLIC qtd_##NAME##_t qtd_##NAME; } \ + QTD_EXTERN QTD_EXPORT void qtd_set_##NAME(VoidFunc func) { qtd_##NAME = (qtd_##NAME##_t)func; } +#else + #define QTD_FUNC_DECL(MODULE, TYPE, NAME, ARGS) \ + QTD_EXTERN TYPE qtd_##NAME ARGS; + #define QTD_FUNC(MODULE, NAME) +#endif +//TODO: these should be moved to module-specific includes #ifdef QTD_CORE - #define QTD_CORE_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_CORE_PUBLIC QTD_EXPORT #else - #define QTD_CORE_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_CORE_PUBLIC QTD_IMPORT #endif #ifdef QTD_GUI - #define QTD_GUI_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_GUI_PUBLIC QTD_EXPORT #else - #define QTD_GUI_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_GUI_PUBLIC QTD_IMPORT #endif #ifdef QTD_OPENGL - #define QTD_OPENGL_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_OPENGL_PUBLIC QTD_EXPORT #else - #define QTD_OPENGL_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_OPENGL_PUBLIC QTD_IMPORT #endif #ifdef QTD_NETWORK - #define QTD_NETWORK_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_NETWORK_PUBLIC QTD_EXPORT #else - #define QTD_NETWORK_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_NETWORK_PUBLIC QTD_IMPORT #endif #ifdef QTD_SVG - #define QTD_SVG_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_SVG_PUBLIC QTD_EXPORT #else - #define QTD_SVG_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_SVG_PUBLIC QTD_IMPORT #endif #ifdef QTD_XML - #define QTD_XML_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_XML_PUBLIC QTD_EXPORT #else - #define QTD_XML_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_XML_PUBLIC QTD_IMPORT #endif #ifdef QTD_WEBKIT - #define QTD_WEBKIT_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_WEBKIT_PUBLIC QTD_EXPORT #else - #define QTD_WEBKIT_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_WEBKIT_PUBLIC QTD_IMPORT #endif #ifdef QTD_QWT - #define QTD_QWT_DLL_PUBLIC QTD_DLL_EXPORT + #define QTD_QWT_PUBLIC QTD_EXPORT #else - #define QTD_QWT_DLL_PUBLIC QTD_DLL_IMPORT + #define QTD_QWT_PUBLIC QTD_IMPORT #endif //TODO: ditch @@ -103,15 +95,7 @@ void* ptr; }; -enum QtdObjectFlags -{ - qNone, - qNativeOwnership = 0x01, - qDOwnership = 0x02 - //gcManaged = 0x04 -}; - -class QTD_CORE_DLL_PUBLIC QtdObjectLink +class QTD_CORE_PUBLIC QtdObjectLink { public: void* dId; @@ -132,7 +116,7 @@ } }; -class QTD_CORE_DLL_PUBLIC QObjectLink : public QtdObjectLink, public QObjectUserData +class QTD_CORE_PUBLIC QObjectLink : public QtdObjectLink, public QObjectUserData { public: enum Flags @@ -154,8 +138,8 @@ #define Array DArray -QTD_EXPORT_DECL(CORE, void, toUtf8, (const unsigned short* arr, uint size, void* str)) -QTD_EXPORT_DECL(CORE, void, QtdObject_delete, (void* dId)) +QTD_FUNC_DECL(CORE, void, toUtf8, (const unsigned short* arr, uint size, void* str)) +QTD_FUNC_DECL(CORE, void, QtdObject_delete, (void* dId)) QTD_EXTERN QModelIndex qtd_to_QModelIndex(QModelIndexAccessor mia); QTD_EXTERN QModelIndexAccessor qtd_from_QModelIndex(const QModelIndex &index);