cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c512bb68e7ce8887750da8bb2758cf7a464898a7

commit c512bb68e7ce8887750da8bb2758cf7a464898a7
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Thu Jun 23 10:53:46 2016 -0700

    ecore: fix Windows build by properly defining EAPI in all case for internal 
API user.
---
 src/Makefile_Ecore.am             |  3 ++-
 src/lib/ecore/ecore_internal.h    | 36 ++++++++++++++++++++++++++++++++++++
 src/lib/ecore/ecore_private.h     |  3 ++-
 src/lib/elementary/elm_main.c     |  4 +---
 src/tests/ecore/ecore_test_args.c |  3 +--
 5 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am
index 612f7e2..ebc113d 100644
--- a/src/Makefile_Ecore.am
+++ b/src/Makefile_Ecore.am
@@ -70,7 +70,8 @@ lib/ecore/ecore_thread_promise.c \
 lib/ecore/ecore_throttle.c \
 lib/ecore/ecore_exe.c \
 lib/ecore/ecore_exe_private.h \
-lib/ecore/ecore_private.h
+lib/ecore/ecore_private.h \
+lib/ecore/ecore_internal.h
 
 if HAVE_WIN32
 lib_ecore_libecore_la_SOURCES += lib/ecore/ecore_exe_win32.c
diff --git a/src/lib/ecore/ecore_internal.h b/src/lib/ecore/ecore_internal.h
new file mode 100644
index 0000000..3b60063
--- /dev/null
+++ b/src/lib/ecore/ecore_internal.h
@@ -0,0 +1,36 @@
+// Internal header are to be used only inside efl itself.
+#ifndef _ECORE_INTERNAL_H
+#define _ECORE_INTERNAL_H
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef _WIN32
+# ifdef EFL_ECORE_BUILD
+#  ifdef DLL_EXPORT
+#   define EAPI __declspec(dllexport)
+#  else
+#   define EAPI
+#  endif /* ! DLL_EXPORT */
+# else
+#  define EAPI __declspec(dllimport)
+# endif /* ! EFL_ECORE_BUILD */
+#else
+# ifdef __GNUC__
+#  if __GNUC__ >= 4
+#   define EAPI __attribute__ ((visibility("default")))
+#  else
+#   define EAPI
+#  endif
+# else
+#  define EAPI
+# endif
+#endif /* ! _WIN32 */
+
+EAPI void ecore_loop_arguments_send(int argc, const char **argv);
+
+#undef EAPI
+#define EAPI
+
+#endif
diff --git a/src/lib/ecore/ecore_private.h b/src/lib/ecore/ecore_private.h
index 0578627..781846c 100644
--- a/src/lib/ecore/ecore_private.h
+++ b/src/lib/ecore/ecore_private.h
@@ -3,6 +3,8 @@
 
 #include <assert.h>
 
+#include "ecore_internal.h"
+
 #ifdef EAPI
 # undef EAPI
 #endif
@@ -149,7 +151,6 @@ EAPI void _ecore_magic_fail(const void *d,
                             Ecore_Magic m,
                             Ecore_Magic req_m,
                             const char *fname);
-EAPI void ecore_loop_arguments_send(int argc, const char **argv);
 
 void         _ecore_time_init(void);
 
diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c
index 31c2334..9c94541 100644
--- a/src/lib/elementary/elm_main.c
+++ b/src/lib/elementary/elm_main.c
@@ -18,6 +18,7 @@
 
 #include <Elementary.h>
 #include "elm_priv.h"
+#include "ecore_internal.h"
 
 #define SEMI_BROKEN_QUICKLAUNCH 1
 
@@ -322,9 +323,6 @@ _sys_lang_changed(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event EINA
    return ECORE_CALLBACK_PASS_ON;
 }
 
-// To be used here only, do not copy that anywhere else for now.
-EAPI void ecore_loop_arguments_send(int argc, const char **argv);
-
 EAPI int
 elm_init(int argc, char **argv)
 {
diff --git a/src/tests/ecore/ecore_test_args.c 
b/src/tests/ecore/ecore_test_args.c
index 367640c..e94ab60 100644
--- a/src/tests/ecore/ecore_test_args.c
+++ b/src/tests/ecore/ecore_test_args.c
@@ -4,8 +4,7 @@
 
 #include <Ecore.h>
 #include "ecore_suite.h"
-
-EAPI void ecore_loop_arguments_send(int argc, const char **argv);
+#include "ecore_private.h"
 
 static const char *args[] = {
   "a", "b", "c", "d", "e", "f", "g", "h"

-- 


Reply via email to