X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c846884b3801ce9881ed270f79b52811af11cf9e..6154212e512945487e19c393fa3b9119c45bd801:/include/wx/dlimpexp.h diff --git a/include/wx/dlimpexp.h b/include/wx/dlimpexp.h index fd823a5144..3df4f4e603 100644 --- a/include/wx/dlimpexp.h +++ b/include/wx/dlimpexp.h @@ -16,7 +16,10 @@ #ifndef _WX_DLIMPEXP_H_ #define _WX_DLIMPEXP_H_ -#if defined(__WXMSW__) +#if defined(HAVE_VISIBILITY) +# define WXEXPORT __attribute__ ((visibility("default"))) +# define WXIMPORT __attribute__ ((visibility("default"))) +#elif defined(__WINDOWS__) /* __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well as VC++ and gcc @@ -48,6 +51,9 @@ # define WXEXPORT __declspec(export) # define WXIMPORT __declspec(import) # endif +#elif defined(__CYGWIN__) +# define WXEXPORT __declspec(dllexport) +# define WXIMPORT __declspec(dllimport) #endif /* for other platforms/compilers we don't anything */ @@ -74,11 +80,17 @@ # define WXMAKINGDLL_NET # define WXMAKINGDLL_CORE # define WXMAKINGDLL_ADV +# define WXMAKINGDLL_QA # define WXMAKINGDLL_ODBC # define WXMAKINGDLL_DBGRID # define WXMAKINGDLL_HTML +# define WXMAKINGDLL_GL # define WXMAKINGDLL_XML # define WXMAKINGDLL_XRC +# define WXMAKINGDLL_AUI +# define WXMAKINGDLL_RICHTEXT +# define WXMAKINGDLL_MEDIA +# define WXMAKINGDLL_STC #endif /* WXMAKINGDLL */ /* @@ -140,6 +152,17 @@ # define WXDLLIMPEXP_DATA_ODBC(type) type #endif +#ifdef WXMAKINGDLL_QA +# define WXDLLIMPEXP_QA WXEXPORT +# define WXDLLIMPEXP_DATA_QA(type) WXEXPORT type +#elif defined(WXUSINGDLL) +# define WXDLLIMPEXP_QA WXIMPORT +# define WXDLLIMPEXP_DATA_QA(type) WXIMPORT type +#else /* not making nor using DLL */ +# define WXDLLIMPEXP_QA +# define WXDLLIMPEXP_DATA_QA(type) type +#endif + #ifdef WXMAKINGDLL_DBGRID # define WXDLLIMPEXP_DBGRID WXEXPORT # define WXDLLIMPEXP_DATA_DBGRID(type) WXEXPORT type @@ -186,6 +209,74 @@ # define WXDLLIMPEXP_XRC #endif +#ifdef WXMAKINGDLL_AUI +# define WXDLLIMPEXP_AUI WXEXPORT +#elif defined(WXUSINGDLL) +# define WXDLLIMPEXP_AUI WXIMPORT +#else /* not making nor using DLL */ +# define WXDLLIMPEXP_AUI +#endif + +#ifdef WXMAKINGDLL_RICHTEXT +# define WXDLLIMPEXP_RICHTEXT WXEXPORT +#elif defined(WXUSINGDLL) +# define WXDLLIMPEXP_RICHTEXT WXIMPORT +#else /* not making nor using DLL */ +# define WXDLLIMPEXP_RICHTEXT +#endif + +#ifdef WXMAKINGDLL_MEDIA +# define WXDLLIMPEXP_MEDIA WXEXPORT +#elif defined(WXUSINGDLL) +# define WXDLLIMPEXP_MEDIA WXIMPORT +#else /* not making nor using DLL */ +# define WXDLLIMPEXP_MEDIA +#endif + +#ifdef WXMAKINGDLL_STC + #define WXDLLIMPEXP_STC WXEXPORT +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_STC WXIMPORT +#else /* not making nor using DLL */ + #define WXDLLIMPEXP_STC +#endif + +/* GCC warns about using __attribute__ on forward declarations, so we need + another set of macros for them: */ +#if defined(HAVE_VISIBILITY) + #define WXDLLIMPEXP_FWD_BASE + #define WXDLLIMPEXP_FWD_NET + #define WXDLLIMPEXP_FWD_CORE + #define WXDLLIMPEXP_FWD_ADV + #define WXDLLIMPEXP_FWD_QA + #define WXDLLIMPEXP_FWD_ODBC + #define WXDLLIMPEXP_FWD_DBGRID + #define WXDLLIMPEXP_FWD_HTML + #define WXDLLIMPEXP_FWD_GL + #define WXDLLIMPEXP_FWD_XML + #define WXDLLIMPEXP_FWD_XRC + #define WXDLLIMPEXP_FWD_AUI + #define WXDLLIMPEXP_FWD_RICHTEXT + #define WXDLLIMPEXP_FWD_MEDIA + #define WXDLLIMPEXP_FWD_STC +#else + #define WXDLLIMPEXP_FWD_BASE WXDLLIMPEXP_BASE + #define WXDLLIMPEXP_FWD_NET WXDLLIMPEXP_NET + #define WXDLLIMPEXP_FWD_CORE WXDLLIMPEXP_CORE + #define WXDLLIMPEXP_FWD_ADV WXDLLIMPEXP_ADV + #define WXDLLIMPEXP_FWD_QA WXDLLIMPEXP_QA + #define WXDLLIMPEXP_FWD_ODBC WXDLLIMPEXP_ODBC + #define WXDLLIMPEXP_FWD_DBGRID WXDLLIMPEXP_DBGRID + #define WXDLLIMPEXP_FWD_HTML WXDLLIMPEXP_HTML + #define WXDLLIMPEXP_FWD_GL WXDLLIMPEXP_GL + #define WXDLLIMPEXP_FWD_XML WXDLLIMPEXP_XML + #define WXDLLIMPEXP_FWD_XRC WXDLLIMPEXP_XRC + #define WXDLLIMPEXP_FWD_AUI WXDLLIMPEXP_AUI + #define WXDLLIMPEXP_FWD_RICHTEXT WXDLLIMPEXP_RICHTEXT + #define WXDLLIMPEXP_FWD_MEDIA WXDLLIMPEXP_MEDIA + #define WXDLLIMPEXP_FWD_STC WXDLLIMPEXP_STC +#endif + /* for backwards compatibility, define suffix-less versions too */ #define WXDLLEXPORT WXDLLIMPEXP_CORE #define WXDLLEXPORT_DATA WXDLLIMPEXP_DATA_CORE