From 2638869fc7c3d084a972d88d999c734c22b13211 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 26 Nov 2016 17:15:54 +0100 Subject: [PATCH 1/3] Move HAVE_ definitions to wx/osx/config_xcode.h They are not needed in wx/osx/cocoa/chkconf.h as they are detected by configure normally, so only define them when using Xcode. --- include/wx/osx/cocoa/chkconf.h | 11 ----------- include/wx/osx/config_xcode.h | 5 +++++ 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/include/wx/osx/cocoa/chkconf.h b/include/wx/osx/cocoa/chkconf.h index 4cb5623b49..66357ab8aa 100644 --- a/include/wx/osx/cocoa/chkconf.h +++ b/include/wx/osx/cocoa/chkconf.h @@ -11,17 +11,6 @@ #ifndef _WX_OSX_COCOA_CHKCONF_H_ #define _WX_OSX_COCOA_CHKCONF_H_ -/* Many wchar functions (and also strnlen(), for some reason) are only - available since 10.7 so don't use them if we want to build the applications - that would run under 10.6 and earlier. */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 -#define HAVE_STRNLEN 1 -#define HAVE_WCSDUP 1 -#define HAVE_WCSNLEN 1 -#define HAVE_WCSCASECMP 1 -#define HAVE_WCSNCASECMP 1 -#endif - /* * native (1) or emulated (0) toolbar */ diff --git a/include/wx/osx/config_xcode.h b/include/wx/osx/config_xcode.h index 0146ec98b1..80b7fe6457 100644 --- a/include/wx/osx/config_xcode.h +++ b/include/wx/osx/config_xcode.h @@ -59,6 +59,7 @@ #define HAVE_UNIX98_PRINTF 1 #define HAVE_STATFS 1 #define HAVE_STATFS_DECL 1 +#define HAVE_STRNLEN 1 #define HAVE_STRPTIME 1 #define HAVE_STRPTIME_DECL 1 #define HAVE_STRTOULL 1 @@ -68,7 +69,11 @@ #define HAVE_VSSCANF 1 #define HAVE_VSSCANF_DECL 1 #define HAVE_USLEEP 1 +#define HAVE_WCSCASECMP 1 +#define HAVE_WCSDUP 1 #define HAVE_WCSLEN 1 +#define HAVE_WCSNCASECMP 1 +#define HAVE_WCSNLEN 1 #define SIZEOF_WCHAR_T 4 #define SIZEOF_SHORT 2 #define SIZEOF_INT 4 From 50190395c6f3510cc32e001c24f7c8b09ad5e0bb Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 26 Nov 2016 17:28:12 +0100 Subject: [PATCH 2/3] Get rid of macOS 10.7 version checks, they're always true We don't support OS X < 10.7 anyhow any more. --- include/wx/osx/cocoa/chkconf.h | 9 +++------ include/wx/osx/config_xcode.h | 2 -- src/osx/core/bitmap.cpp | 3 +-- src/osx/utils_osx.cpp | 7 ------- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/include/wx/osx/cocoa/chkconf.h b/include/wx/osx/cocoa/chkconf.h index 66357ab8aa..be024d346f 100644 --- a/include/wx/osx/cocoa/chkconf.h +++ b/include/wx/osx/cocoa/chkconf.h @@ -41,13 +41,10 @@ /* Use the more efficient FSEvents API instead of kqueue - events for file system watcher, but only on OS X >= 10.7 since - that version introduced a flag that allows watching files as - well as sub directories. + events for file system watcher since that version introduced a flag that + allows watching files as well as sub directories. */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7 - #define wxHAVE_FSEVENTS_FILE_NOTIFICATIONS 1 -#endif +#define wxHAVE_FSEVENTS_FILE_NOTIFICATIONS 1 /* * turning off capabilities that don't work under cocoa yet diff --git a/include/wx/osx/config_xcode.h b/include/wx/osx/config_xcode.h index 80b7fe6457..56aef33402 100644 --- a/include/wx/osx/config_xcode.h +++ b/include/wx/osx/config_xcode.h @@ -24,7 +24,6 @@ #define HAVE_VA_COPY 1 #define HAVE_VARIADIC_MACROS 1 #define HAVE_STD_WSTRING 1 -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 #if __GNUC__ > 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ >= 2 ) #if !defined(__has_include) #define HAVE_TR1_UNORDERED_MAP 1 @@ -33,7 +32,6 @@ #endif #define HAVE_GCC_ATOMIC_BUILTINS 1 #endif -#endif #define HAVE_VISIBILITY 1 #define wxHAVE_PTHREAD_CLEANUP 1 #define CONST_COMPATIBILITY 0 diff --git a/src/osx/core/bitmap.cpp b/src/osx/core/bitmap.cpp index e2d640eebf..c2fa882ced 100644 --- a/src/osx/core/bitmap.cpp +++ b/src/osx/core/bitmap.cpp @@ -495,11 +495,10 @@ IconRef wxBitmapRefData::GetIconRef() switch (sz) { -#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7 case 1024: dataType = kIconServices1024PixelDataARGB; break; -#endif + case 512: dataType = kIconServices512PixelDataARGB; break; diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp index a89b043f01..b51184f701 100644 --- a/src/osx/utils_osx.cpp +++ b/src/osx/utils_osx.cpp @@ -63,13 +63,6 @@ bool wxColourDisplay() #if wxOSX_USE_COCOA_OR_CARBON -#if (MAC_OS_X_VERSION_MAX_ALLOWED >= 1070) && (MAC_OS_X_VERSION_MIN_REQUIRED < 1060) -// bring back declaration so that we can support deployment targets < 10_6 -CG_EXTERN size_t CGDisplayBitsPerPixel(CGDirectDisplayID display) -CG_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, - __IPHONE_NA, __IPHONE_NA); -#endif - // Returns depth of screen int wxDisplayDepth() { From 295576f78f20175990bfe15bee1314c4caf186d7 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 26 Nov 2016 17:29:27 +0100 Subject: [PATCH 3/3] Fix compilation of WebView code in wxOSX with SDK < 10.11 This was broken by 05857e66c0cb2b15e9a6c90dda089c3233c4e865 which introduced dependencies on protocols only declared in 10.11 headers. Fix build by checking if we're using 10.11 SDK and using these protocols only in this case. --- src/html/htmlctrl/webkit/webkit.mm | 12 +++++++++--- src/osx/webview_webkit.mm | 12 +++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/html/htmlctrl/webkit/webkit.mm b/src/html/htmlctrl/webkit/webkit.mm index 7a7b41a55e..bfd0a466e7 100644 --- a/src/html/htmlctrl/webkit/webkit.mm +++ b/src/html/htmlctrl/webkit/webkit.mm @@ -28,6 +28,12 @@ #define DEBUG_WEBKIT_SIZING 0 +#if defined(MAC_OS_X_VERSION_10_11) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_11) + #define wxWEBKIT_PROTOCOL_SINCE_10_11(proto) < proto > +#else + #define wxWEBKIT_PROTOCOL_SINCE_10_11(proto) +#endif + extern WXDLLEXPORT_DATA(const char) wxWebKitCtrlNameStr[] = "webkitctrl"; // ---------------------------------------------------------------------------- @@ -130,7 +136,7 @@ inline int wxNavTypeFromWebNavType(int type){ return wxWEBKIT_NAV_OTHER; } -@interface MyFrameLoadMonitor : NSObject +@interface MyFrameLoadMonitor : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebFrameLoadDelegate) { wxWebKitCtrl* webKitWindow; } @@ -139,7 +145,7 @@ inline int wxNavTypeFromWebNavType(int type){ @end -@interface MyPolicyDelegate : NSObject +@interface MyPolicyDelegate : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebPolicyDelegate) { wxWebKitCtrl* webKitWindow; } @@ -148,7 +154,7 @@ inline int wxNavTypeFromWebNavType(int type){ @end -@interface MyUIDelegate : NSObject +@interface MyUIDelegate : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebUIDelegate) { wxWebKitCtrl* webKitWindow; } diff --git a/src/osx/webview_webkit.mm b/src/osx/webview_webkit.mm index 1c8e4f03f9..5eb143ed84 100644 --- a/src/osx/webview_webkit.mm +++ b/src/osx/webview_webkit.mm @@ -41,6 +41,12 @@ #define DEBUG_WEBKIT_SIZING 0 +#if defined(MAC_OS_X_VERSION_10_11) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_11) + #define wxWEBKIT_PROTOCOL_SINCE_10_11(proto) < proto > +#else + #define wxWEBKIT_PROTOCOL_SINCE_10_11(proto) +#endif + // ---------------------------------------------------------------------------- // macros // ---------------------------------------------------------------------------- @@ -50,7 +56,7 @@ wxIMPLEMENT_DYNAMIC_CLASS(wxWebViewWebKit, wxWebView); wxBEGIN_EVENT_TABLE(wxWebViewWebKit, wxControl) wxEND_EVENT_TABLE() -@interface WebViewLoadDelegate : NSObject +@interface WebViewLoadDelegate : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebFrameLoadDelegate) { wxWebViewWebKit* webKitWindow; } @@ -59,7 +65,7 @@ wxEND_EVENT_TABLE() @end -@interface WebViewPolicyDelegate : NSObject +@interface WebViewPolicyDelegate : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebPolicyDelegate) { wxWebViewWebKit* webKitWindow; } @@ -68,7 +74,7 @@ wxEND_EVENT_TABLE() @end -@interface WebViewUIDelegate : NSObject +@interface WebViewUIDelegate : NSObject wxWEBKIT_PROTOCOL_SINCE_10_11(WebUIDelegate) { wxWebViewWebKit* webKitWindow; }