evas: Fix build for Windows without segv

Revert "Revert "evas: Fix build for Windows (hopefully)""
This reverts commit c8ec1cb2af.

The two efl_input_ functions need to be declared as EOAPI inside
the file where they are implemented. Otherwise the symbols aren't
exposed and weak linking means the function call crashes.

Sorry for the first untested patch and subsequent revert. Things
should be in order now.
This commit is contained in:
Jean-Philippe Andre 2017-05-22 17:20:35 +09:00
parent 850498e977
commit 3082dc212e
5 changed files with 7 additions and 32 deletions

View File

@ -28,6 +28,7 @@
#include "ecore_private.h"
#include <Ecore_Input.h>
#include <Ecore_Input_Evas.h>
#include <Evas_Internal.h>
#include "Ecore_Evas.h"
#include "ecore_evas_private.h"

View File

@ -167,36 +167,4 @@ _efl_input_value_mark(Efl_Input_Pointer_Data *pd, Efl_Input_Value key)
#define _efl_input_value_mask(key) (1u << (int) key)
/* Internal EO APIs */
#undef EAPI
#ifdef _WIN32
# ifdef EFL_EFL_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# endif /* ! EFL_EFL_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif /* ! _WIN32 */
EOAPI void *efl_input_legacy_info_get(const Eo *obj);
EOAPI Eo *efl_input_instance_get(const Eo *obj, Efl_Object *owner, void **priv);
#undef EAPI
#define EAPI
#endif

View File

@ -53,6 +53,9 @@ EOAPI void efl_canvas_object_type_set(Eo *obj, const char *type);
EOAPI void efl_canvas_group_add(Eo *obj);
EOAPI void efl_canvas_group_del(Eo *obj);
EOAPI void *efl_input_legacy_info_get(const Eo *obj);
EOAPI Eo *efl_input_instance_get(const Eo *obj, Efl_Object *owner, void **priv);
EWAPI extern const Efl_Event_Description _EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE;
#define EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE (&(_EVAS_CANVAS_EVENT_RENDER_FLUSH_PRE))

View File

@ -5,6 +5,7 @@
#define EFL_INPUT_EVENT_PROTECTED
#include <Evas.h>
#include <Evas_Internal.h>
#define EFL_INTERNAL_UNSTABLE
#include "interfaces/efl_common_internal.h"

View File

@ -6,6 +6,8 @@
#include <Evas.h>
#include <Evas_Internal.h>
#define EFL_INTERNAL_UNSTABLE
#include "interfaces/efl_common_internal.h"