diff --git a/src/lib/ector/Ector.h b/src/lib/ector/Ector.h index 9a7a7d3706..ba93fbddae 100644 --- a/src/lib/ector/Ector.h +++ b/src/lib/ector/Ector.h @@ -6,31 +6,8 @@ #ifdef EFL_BETA_API_SUPPORT #include #endif -#ifdef EAPI -# undef EAPI -#endif -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EAPI __attribute__ ((visibility("default"))) -# else -# define EAPI -# endif -# else -# define EAPI -# endif -#endif +#include #ifdef __cplusplus extern "C" { @@ -133,7 +110,7 @@ typedef enum _Ector_Update_Type * * @see ector_shutfown() */ -EAPI int ector_init(void); +ECTOR_API int ector_init(void); /** * @brief Shutdown the ector subsystem @@ -141,7 +118,7 @@ EAPI int ector_init(void); * * @see ector_init() */ -EAPI int ector_shutdown(void); +ECTOR_API int ector_shutdown(void); /** * @brief Registers OpenGL API calls with the internal Ector_GL_API. @@ -156,7 +133,7 @@ EAPI int ector_shutdown(void); * * @see dlsym() */ -EAPI Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib); +ECTOR_API Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib); /* Avoid redefinition of types */ #define _ECTOR_SURFACE_EO_CLASS_TYPE @@ -177,7 +154,4 @@ EAPI Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), void } #endif -#undef EAPI -#define EAPI - #endif diff --git a/src/lib/ector/ector_api.h b/src/lib/ector/ector_api.h new file mode 100644 index 0000000000..af92dc05f2 --- /dev/null +++ b/src/lib/ector/ector_api.h @@ -0,0 +1,34 @@ +#ifndef _EFL_ECTOR_API_H +#define _EFL_ECTOR_API_H + +#ifdef ECTOR_API +#error ECTOR_API should not be already defined +#endif + +#ifdef _WIN32 +# ifndef ECTOR_STATIC +# ifdef ECTOR_BUILD +# define ECTOR_API __declspec(dllexport) +# else +# define ECTOR_API __declspec(dllimport) +# endif +# else +# define ECTOR_API +# endif +# define ECTOR_API_WEAK +#else +# ifdef __GNUC__ +# if __GNUC__ >= 4 +# define ECTOR_API __attribute__ ((visibility("default"))) +# define ECTOR_API_WEAK __attribute__ ((weak)) +# else +# define ECTOR_API +# define ECTOR_API_WEAK +# endif +# else +# define ECTOR_API +# define ECTOR_API_WEAK +# endif +#endif + +#endif diff --git a/src/lib/ector/ector_main.c b/src/lib/ector/ector_main.c index db65c44ea4..5a8dcc25fa 100644 --- a/src/lib/ector/ector_main.c +++ b/src/lib/ector/ector_main.c @@ -27,7 +27,7 @@ int _ector_log_dom_global = 0; static int _ector_main_count = 0; -EAPI int +ECTOR_API int ector_init(void) { if (EINA_LIKELY(_ector_main_count > 0)) @@ -62,7 +62,7 @@ donothing(void) { } -EAPI Eina_Bool +ECTOR_API Eina_Bool ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib) { Eina_Bool r = EINA_TRUE; @@ -221,7 +221,7 @@ ector_glsym_set(void *(*glsym)(void *lib, const char *name), void *lib) return r; } -EAPI int +ECTOR_API int ector_shutdown(void) { if (_ector_main_count <= 0) diff --git a/src/lib/ector/gl/Ector_GL.h b/src/lib/ector/gl/Ector_GL.h index 88b6c6bae1..6a9efe27de 100644 --- a/src/lib/ector/gl/Ector_GL.h +++ b/src/lib/ector/gl/Ector_GL.h @@ -3,31 +3,7 @@ #include -#ifdef EAPI -# undef EAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EAPI __attribute__ ((visibility("default"))) -# else -# define EAPI -# endif -# else -# define EAPI -# endif -#endif +#include "ector_api.h" #ifdef EFL_BETA_API_SUPPORT @@ -48,7 +24,4 @@ typedef short GLshort; #endif -#undef EAPI -#define EAPI - #endif diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build index 4bb792c3a7..3837f0ece8 100644 --- a/src/lib/ector/gl/meson.build +++ b/src/lib/ector/gl/meson.build @@ -31,6 +31,7 @@ foreach eo_file : pub_eo_files '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), + '-e', 'ECTOR_API', '-gchd', '@INPUT@']) endforeach diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build index 0d044b5404..9a9545fee8 100644 --- a/src/lib/ector/meson.build +++ b/src/lib/ector/meson.build @@ -46,6 +46,7 @@ foreach eo_file : pub_eo_files '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), + '-e', 'ECTOR_API', '-gchd', '@INPUT@']) endforeach @@ -76,6 +77,7 @@ foreach eo_file : pub_eo_types_files command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories, '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), + '-e', 'ECTOR_API', '-ghd', '@INPUT@']) endforeach @@ -89,7 +91,7 @@ ector_ext_deps += ector_opt_lib_dep ector_lib = library('ector', ector_src, pub_eo_file_target, - c_args : package_c_args, + c_args : [package_c_args, '-DECTOR_BUILD'], dependencies: ector_pub_deps + ector_ext_deps + ector_deps, include_directories : config_dir, install: true, diff --git a/src/lib/ector/software/Ector_Software.h b/src/lib/ector/software/Ector_Software.h index 85529e6f21..249e8a638a 100644 --- a/src/lib/ector/software/Ector_Software.h +++ b/src/lib/ector/software/Ector_Software.h @@ -3,31 +3,7 @@ #include -#ifdef EAPI -# undef EAPI -#endif - -#ifdef _WIN32 -# ifdef EFL_BUILD -# ifdef DLL_EXPORT -# define EAPI __declspec(dllexport) -# else -# define EAPI -# endif -# else -# define EAPI __declspec(dllimport) -# endif -#else -# ifdef __GNUC__ -# if __GNUC__ >= 4 -# define EAPI __attribute__ ((visibility("default"))) -# else -# define EAPI -# endif -# else -# define EAPI -# endif -#endif +#include "ector_api.h" #ifdef EFL_BETA_API_SUPPORT @@ -42,7 +18,4 @@ #endif -#undef EAPI -#define EAPI - #endif diff --git a/src/lib/ector/software/meson.build b/src/lib/ector/software/meson.build index 75d217142a..a87f66efa5 100644 --- a/src/lib/ector/software/meson.build +++ b/src/lib/ector/software/meson.build @@ -33,6 +33,7 @@ foreach eo_file : pub_eo_files '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'), + '-e', 'ECTOR_API', '-gchd', '@INPUT@']) endforeach