summaryrefslogtreecommitdiff
path: root/src/lib/evil/evil_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evil/evil_private.h')
-rw-r--r--src/lib/evil/evil_private.h41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/lib/evil/evil_private.h b/src/lib/evil/evil_private.h
index d87ac75423..15402568e9 100644
--- a/src/lib/evil/evil_private.h
+++ b/src/lib/evil/evil_private.h
@@ -26,18 +26,42 @@ extern "C" {
#include <sys/stat.h> /* for mkdir in evil_macro_wrapper */
-#ifdef EAPI
-# undef EAPI
+#ifdef EVIL_API
+#error EVIL_API should not be already defined
#endif
-#ifdef EFL_BUILD
-# ifdef DLL_EXPORT
-# define EAPI __declspec(dllexport)
+#ifdef _WIN32
+# ifndef EVIL_STATIC
+# ifdef EVIL_BUILD
+# define EVIL_API __declspec(dllexport)
+# else
+# define EVIL_API __declspec(dllimport)
+# endif
# else
-# define EAPI
+# define EVIL_API
+# endif
+# define EVIL_API_WEAK
+#elif defined(__GNUC__)
+# if __GNUC__ >= 4
+# define EVIL_API __attribute__ ((visibility("default")))
+# define EVIL_API_WEAK __attribute__ ((weak))
+# else
+# define EVIL_API
+# define EVIL_API_WEAK
# endif
#else
-# define EAPI __declspec(dllimport)
+/**
+ * @def EVIL_API
+ * @brief Used to export functions (by changing visibility).
+ */
+# define EVIL_API
+/**
+ * @def EINA_API_WEAK
+ * @brief Weak symbol, primarily useful in defining library functions which
+ * can be overridden in user code.
+ * Note: Not supported on all platforms.
+ */
+# define EINA_API_WEAK
#endif
#ifndef PATH_MAX
@@ -61,9 +85,6 @@ extern "C" {
#include "evil_macro_wrapper.h"
-#undef EAPI
-#define EAPI
-
#ifdef __cplusplus
}
#endif