elm: Fix modules due to a missing EAPI
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 9 Aug 2017 08:01:37 +0000 (17:01 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Wed, 9 Aug 2017 08:08:24 +0000 (17:08 +0900)
I recently added an undef EAPI which wasn't in fact the best idea ever.
The EAPI needs to remain defined as is for elementary modules and
edje_externals.

Ping @vtorri

See ad6e3ce3df422751cb1c4524f1ea0b16ce897410

src/Makefile_Elementary.am
src/lib/elementary/elm_module.c
src/lib/elementary/elm_module_helper.h [new file with mode: 0644]
src/modules/elementary/access_output/mod.c
src/modules/elementary/clock_input_ctxpopup/clock_input_ctxpopup.c
src/modules/elementary/prefs/private.h
src/modules/elementary/test_entry/mod.c
src/modules/elementary/test_map/mod.c
src/modules/elementary/web/none/elm_web_none.c

index fcdc7b4..ea7ef06 100644 (file)
@@ -722,6 +722,7 @@ endif
 EXTRA_DIST2 += \
        lib/elementary/elm_factory.h \
        lib/elementary/elm_factory.c \
+       lib/elementary/elm_module_helper.h \
        $(top_srcdir)/elm_intro.h.in
 
 ### Binary
index 03f70dc..92557b1 100644 (file)
@@ -111,6 +111,7 @@ _elm_module_find_as(const char *as)
 
    if (!_elm_module_load(m))
      {
+        ERR("Failed to load elementary module: '%s': %m", m->as);
         _elm_module_del(m);
         return NULL;
      }
diff --git a/src/lib/elementary/elm_module_helper.h b/src/lib/elementary/elm_module_helper.h
new file mode 100644 (file)
index 0000000..f4e7d22
--- /dev/null
@@ -0,0 +1,34 @@
+/* A small helper header defining EAPI for elementary modules, it should be
+ * included last in the modules C files.
+ */
+
+#ifndef ELM_MODULE_HELPER_H
+#define ELM_MODULE_HELPER_H
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+#ifdef _WIN32
+# ifdef ELEMENTARY_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 */
+
+#endif
index 0dff159..e304c2e 100644 (file)
@@ -3,6 +3,7 @@
 #endif
 
 #include <Elementary.h>
+#include "elm_module_helper.h"
 
 /* to enable this module
 export ELM_MODULES="access_output>access/api"
index 95f1232..b3b90b6 100644 (file)
@@ -5,6 +5,7 @@
 #include <Elementary.h>
 #include "elm_widget.h"
 #include "efl_ui_clock_private.h"
+#include "elm_module_helper.h"
 
 #define CLOCK_FIELD_COUNT       8
 #define FIELD_FORMAT_LEN        3
index f65370b..197162d 100644 (file)
@@ -2,6 +2,7 @@
 # include "elementary_config.h"
 #endif
 #include "Elementary.h"
+#include "elm_module_helper.h"
 
 #undef CRI
 #undef ERR
index 623cb48..621f40a 100644 (file)
@@ -3,6 +3,7 @@
 #endif
 
 #include <Elementary.h>
+#include "elm_module_helper.h"
 
 // module api funcs needed
 EAPI int
index 9dfc352..fd5dcdb 100644 (file)
@@ -5,6 +5,7 @@
 #include "Elementary.h"
 #include "elm_widget_map.h"
 #include <Eina.h>
+#include "elm_module_helper.h"
 
 EAPI Eina_Stringshare *
 map_module_source_name_get(void)
index a371e79..91292e0 100644 (file)
@@ -9,6 +9,7 @@
 #include "elm_priv.h"
 #include "elm_widget_web.h"
 #include "elm_web_none.eo.h"
+#include "elm_module_helper.h"
 
 #define MY_CLASS ELM_WEB_CLASS