1 /* A small helper header defining EAPI for elementary modules, it should be
2  * included last in the modules C files.
3  */
4 
5 #ifndef ELM_MODULE_HELPER_H
6 #define ELM_MODULE_HELPER_H
7 
8 #ifdef EAPI
9 # undef EAPI
10 #endif
11 #ifdef EWAPI
12 # undef EWAPI
13 #endif
14 
15 #ifdef _WIN32
16 # ifdef EFL_BUILD
17 #  ifdef DLL_EXPORT
18 #   define EAPI __declspec(dllexport)
19 #  else
20 #   define EAPI
21 #  endif
22 # else
23 #  define EAPI __declspec(dllimport)
24 # endif
25 # define EAPI_WEAK
26 #else
27 # ifdef __GNUC__
28 #  if __GNUC__ >= 4
29 #   define EAPI __attribute__ ((visibility("default")))
30 #   define EAPI_WEAK __attribute__ ((weak))
31 #  else
32 #   define EAPI
33 #   define EAPI_WEAK
34 #  endif
35 # else
36 #  define EAPI
37 #  define EAPI_WEAK
38 # endif
39 #endif
40 
41 #define EWAPI EAPI EAPI_WEAK
42 
43 #endif
44