/*****************************************************************************
* Shared library Export macros
*****************************************************************************/
-#if defined(WIN32) && defined(DLL_EXPORT)
-# define VLC_PUBLIC_API extern __declspec(dllexport)
-#else
-# define VLC_PUBLIC_API extern __attribute__((visibility("default")))
+#ifndef VLC_PUBLIC_API
+# define VLC_PUBLIC_API extern
#endif
/*****************************************************************************
#if defined (WIN32) && defined (DLL_EXPORT)
# ifdef __cplusplus
+# define VLC_PUBLIC_API __declspec(dllexport)
# define VLC_EXPORT( type, name, args ) extern "C" __declspec(dllexport) type name args
# define VLC_INTERNAL( type, name, args ) extern "C" type name args
# else
+# define VLC_PUBLIC_API extern __declspec(dllexport)
# define VLC_EXPORT( type, name, args ) __declspec(dllexport) type name args
# define VLC_INTERNAL( type, name, args ) type name args
# endif
# if !defined (__PLUGIN__) || defined (HAVE_SHARED_LIBVLC)
# ifdef __cplusplus
# if HAVE_ATTRIBUTE_VISIBILITY
+# define VLC_PUBLIC_API __attribute__((visibility("default")))
# define VLC_EXPORT( type, name, args ) extern "C" __attribute__((visibility("default"))) type name args
# define VLC_INTERNAL( type, name, args ) extern "C" __attribute__((visibility("hidden"))) type name args
# else
+# define VLC_PUBLIC_API
# define VLC_EXPORT( type, name, args ) extern "C" type name args
# define VLC_INTERNAL( type, name, args ) extern "C" type name args
# endif
# else
# if HAVE_ATTRIBUTE_VISIBILITY
+# define VLC_PUBLIC_API extern __attribute__((visibility("default")))
# define VLC_EXPORT( type, name, args ) __attribute__((visibility("default"))) type name args
# define VLC_INTERNAL( type, name, args ) __attribute__((visibility("hidden"))) type name args
# else
+# define VLC_PUBLIC_API extern
# define VLC_EXPORT( type, name, args ) type name args
# define VLC_INTERNAL( type, name, args ) type name args
# endif
# endif
# else
+# define VLC_PUBLIC_API
# define VLC_EXPORT( type, name, args ) struct _u_n_u_s_e_d_
# define VLC_INTERNAL( type, name, args ) struct _u_n_u_s_e_d_
extern module_symbols_t* p_symbols;