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);