Mac: Patch wxWidgets 3.1.0 to fix BOINC Manager crash on OS 10.6.

This commit is contained in:
Charlie Fenton 2018-06-08 02:37:58 -07:00
parent f6033b0902
commit 1c5631c97a
1 changed files with 51 additions and 2 deletions

View File

@ -2,7 +2,7 @@
# This file is part of BOINC.
# http://boinc.berkeley.edu
# Copyright (C) 2017 University of California
# Copyright (C) 2018 University of California
#
# BOINC is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License
@ -36,6 +36,7 @@
# Update for wxCocoa 3.1.0 10/25/17
# Build only 64-bit library 1/25/18
# Fix wxWidgets 3.1.0 bug when wxStaticBox has no label 3/20/18
# Fix wxWidgets 3.1.0 to not use backingScaleFactor API on OS 10.6 6/8/18
#
## This script requires OS 10.6 or later
##
@ -133,7 +134,7 @@ else
echo "build/osx/setup/cocoa/include/wx/setup.h already patched"
fi
# Patch src/osx/window_osx.cpp window_osx_patched.cpp > window_osx_cpp_diff
# Patch src/osx/window_osx.cpp
if [ ! -f src/osx/window_osx.cpp.orig ]; then
cat >> /tmp/window_osx_cpp_diff << ENDOFFILE
--- window_osx.cpp 2016-02-28 13:33:37.000000000 -0800
@ -155,6 +156,54 @@ else
echo "src/osx/window_osx.cpp already patched"
fi
# Patch src/osx/carbon/utilscocoa.mm
if [ ! -f src/osx/carbon/utilscocoa.mm.orig ]; then
cat >> /tmp/utilscocoa_mm_diff << ENDOFFILE
--- utilscocoa.mm 2016-02-28 13:33:37.000000000 -0800
+++ utilscocoa-patched.mm 2018-06-03 01:31:43.000000000 -0700
@@ -476,7 +476,10 @@
double wxOSXGetMainScreenContentScaleFactor()
{
- return [[NSScreen mainScreen] backingScaleFactor];
+ if ([[NSScreen mainScreen] respondsToSelector:@selector(backingScaleFactor)])
+ return [[NSScreen mainScreen] backingScaleFactor];
+ else
+ return 1.0;
}
CGImageRef wxOSXCreateCGImageFromNSImage( WX_NSImage nsimage, double *scaleptr )
ENDOFFILE
patch -bfi /tmp/utilscocoa_mm_diff src/osx/carbon/utilscocoa.mm
rm -f /tmp/utilscocoa_mm_diff
else
echo "src/osx/carbon/utilscocoa.mm already patched"
fi
# Patch src/osx/cocoa/window.mm
if [ ! -f src/osx/cocoa/window.mm.orig ]; then
cat >> /tmp/window_mm_diff << ENDOFFILE
--- window.mm 2016-02-28 13:33:37.000000000 -0800
+++ window-patched.mm 2018-06-08 01:28:01.000000000 -0700
@@ -1869,7 +1869,10 @@
double wxWidgetCocoaImpl::GetContentScaleFactor() const
{
NSWindow* tlw = [m_osxView window];
- return [tlw backingScaleFactor];
+ if ([tlw respondsToSelector:@selector(backingScaleFactor)])
+ return [tlw backingScaleFactor];
+ else
+ return 1.0;
}
// ----------------------------------------------------------------------------
ENDOFFILE
patch -bfi /tmp/window_mm_diff src/osx/cocoa/window.mm
rm -f /tmp/window_mm_diff
else
echo "src/osx/cocoa/window.mm already patched"
fi
echo ""