* Re-add EAPI. These macros must be defined specifically for each EFL
authorcaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Mar 2009 06:43:44 +0000 (06:43 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Mar 2009 06:43:44 +0000 (06:43 +0000)
   for Windows (XP and CE).
 * include Eina.h before EAPI so that this latter is defined correctly for Evas

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/evas@39599 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Evas.h

index 19499a9..94bf767 100644 (file)
@@ -1,6 +1,35 @@
 #ifndef _EVAS_H
 #define _EVAS_H
 
+#include <Eina.h>
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef _WIN32
+# ifdef EFL_EVAS_BUILD
+#  ifdef DLL_EXPORT
+#   define EAPI __declspec(dllexport)
+#  else
+#   define EAPI
+#  endif /* ! DLL_EXPORT */
+# else
+#  define EAPI __declspec(dllimport)
+# endif /* ! EFL_EVAS_BUILD */
+#else
+# ifdef __GNUC__
+#  if __GNUC__ >= 4
+#   define EAPI __attribute__ ((visibility("default")))
+#  else
+#   define EAPI
+#  endif
+# else
+#  define EAPI
+# endif
+#endif /* ! _WIN32 */
+
+
 /**
  * @file
  * @brief These routines are used for Evas library interaction.
@@ -10,7 +39,6 @@
  * @todo finish api documentation
  */
 
-#include <Eina.h>
 #include <Evas_Data.h>
 
 typedef enum _Evas_Callback_Type