Wx files working

This commit is contained in:
Joey Yakimowich-Payne 2023-02-11 16:21:02 -07:00
commit 30cb0f8f63
No known key found for this signature in database
GPG key ID: 6BFE655FA5ABD1E1
54 changed files with 3157 additions and 5197 deletions

View file

@ -605,7 +605,12 @@ typedef short int WXTYPE;
#if __has_cpp_attribute(deprecated)
/* gcc 5 claims to support this attribute, but actually doesn't */
#if !defined(__GNUC__) || wxCHECK_GCC_VERSION(6, 0)
#define wxHAS_DEPRECATED_ATTR
/* Even later gcc versions only support it when using C++11. */
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define wxHAS_DEPRECATED_ATTR
#endif
#endif
#endif
#endif
#endif
@ -697,6 +702,43 @@ typedef short int WXTYPE;
# define wxDEPRECATED_BUT_USED_INTERNALLY(x) wxDEPRECATED(x)
#endif
/*
Some gcc versions choke on __has_cpp_attribute(gnu::visibility) due to the
presence of the colon, but we only need this macro in C++ code, so just
don't define it when using C.
*/
#ifdef __cplusplus
/*
wxDEPRECATED_EXPORT_CORE is a special macro used for the classes that are
exported and deprecated (but not when building the library itself, as this
would trigger warnings about using this class when implementing it).
It exists because standard [[deprecated]] attribute can't be combined with
legacy __attribute__((visibility)), but we can't use [[visibility]] instead
of the latter because it can't be use in the same place in the declarations
where we use WXDLLIMPEXP_CORE. So we define this special macro which uses
the standard visibility attribute just where we can't do otherwise.
*/
#ifdef WXBUILDING
#define wxDEPRECATED_EXPORT_CORE(msg) WXDLLIMPEXP_CORE
#else /* !WXBUILDING */
#ifdef wxHAS_DEPRECATED_ATTR
#if __has_cpp_attribute(gnu::visibility)
#define wxDEPRECATED_EXPORT_CORE(msg) \
[[deprecated(msg), gnu::visibility("default")]]
#endif
#endif
#ifndef wxDEPRECATED_EXPORT_CORE
/* Fall back when nothing special is needed or available. */
#define wxDEPRECATED_EXPORT_CORE(msg) \
wxDEPRECATED_MSG(msg) WXDLLIMPEXP_CORE
#endif
#endif /* WXBUILDING/!WXBUILDING */
#endif /* __cplusplus */
/*
Macros to suppress and restore gcc warnings, requires g++ >= 4.6 and don't
do anything otherwise.