* Modified by:
* Created: 16.10.2003 (extracted from wx/defs.h)
* RCS-ID: $Id$
- * Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+ * Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
* Licence: wxWindows licence
*/
#ifndef _WX_DLIMPEXP_H_
#define _WX_DLIMPEXP_H_
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
/*
__declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well
as VC++ and gcc
want that!
*/
# define WXIMPORT
+# elif defined(__EMX__)
+# define WXEXPORT
+# define WXIMPORT
# elif (!(defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 )))
# define WXEXPORT _Export
# define WXIMPORT _Export
# define WXEXPORT __declspec(export)
# define WXIMPORT __declspec(import)
# endif
+#elif defined(__CYGWIN__)
+# define WXEXPORT __declspec(dllexport)
+# define WXIMPORT __declspec(dllimport)
+#elif defined(HAVE_VISIBILITY)
+# define WXEXPORT __attribute__ ((visibility("default")))
+# define WXIMPORT
#endif
/* for other platforms/compilers we don't anything */
#endif
/*
- We support building wxWindows as a set of several libraries but we don't
+ We support building wxWidgets as a set of several libraries but we don't
support arbitrary combinations of libs/DLLs: either we build all of them as
DLLs (in which case WXMAKINGDLL is defined) or none (it isn't).
# 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 */
/*
# 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
# define WXDLLIMPEXP_XML
#endif
+#ifdef WXMAKINGDLL_XRC
+# define WXDLLIMPEXP_XRC WXEXPORT
+#elif defined(WXUSINGDLL)
+# define WXDLLIMPEXP_XRC WXIMPORT
+#else /* not making nor using DLL */
+# 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