homebrew-core/Formula/wxmac.rb
2014-09-24 13:22:45 -05:00

208 lines
5.9 KiB
Ruby

require 'formula'
class Wxmac < Formula
homepage "http://www.wxwidgets.org"
url "https://downloads.sourceforge.net/project/wxwindows/3.0.1/wxWidgets-3.0.1.tar.bz2"
mirror "https://mirrors.kernel.org/debian/pool/main/w/wxwidgets3.0/wxwidgets3.0_3.0.1.orig.tar.bz2"
sha1 "73e58521d6871c9f4d1e7974c6e3a81629fddcf8"
bottle do
revision 7
sha1 "188faff841569f5b7577b52f2d84a1c41b60f809" => :mavericks
sha1 "ace4fa60cee99c3ad52a27ed8396f2952592169c" => :mountain_lion
sha1 "3ee27c97ba20c3888ede745c2b2799406191889e" => :lion
end
depends_on "jpeg"
depends_on "libpng"
depends_on "libtiff"
# Patches for 3.0.1 source release to reference the correct dispatch types
# regardless of whether built for OS X 10.10 or 10.9 (and earlier...)
#
# Patch derived from ticket comments and final changesets below:
#
# http://trac.wxwidgets.org/ticket/16329
# http://trac.wxwidgets.org/changeset/76744
# http://trac.wxwidgets.org/changeset/76743
#
# NOTE: Revisit with next upstream release; changes already in upstream trunk
# Patch Changeset 76744
# http://trac.wxwidgets.org/changeset/76744
patch :p3 do
url "http://trac.wxwidgets.org/changeset/76744?format=diff&new=7674"
sha1 "5cd1536d2494ef0b4d21f03799b0ac024572ae31"
end
# Patch Changeset 76743
#
# This is embedded because all but the last file is patchable with the changeset
# checked into the upstream trunk (webview_webkit.mm). The version of that file
# in trunk had changed enough that the patch cannot match any of the hunks to
# their corresponding line numbers in the 3.0.2 release train source distribution.
patch :DATA
def install
# need to set with-macosx-version-min to avoid configure defaulting to 10.5
# need to enable universal binary build in order to build all x86_64
# FIXME I don't believe this is the whole story, surely this can be fixed
# without building universal for users who don't need it. - Jack
# headers need to specify x86_64 and i386 or will try to build for ppc arch
# and fail on newer OSes
# https://trac.macports.org/browser/trunk/dports/graphics/wxWidgets30/Portfile#L80
ENV.universal_binary
args = [
"--disable-debug",
"--prefix=#{prefix}",
"--enable-shared",
"--enable-unicode",
"--enable-std_string",
"--enable-display",
"--with-opengl",
"--with-osx_cocoa",
"--with-libjpeg",
"--with-libtiff",
# Otherwise, even in superenv, the internal libtiff can pick
# up on a nonuniversal xz and fail
# https://github.com/Homebrew/homebrew/issues/22732
"--without-liblzma",
"--with-libpng",
"--with-zlib",
"--enable-dnd",
"--enable-clipboard",
"--enable-webkit",
"--enable-svg",
"--enable-mediactrl",
"--enable-graphics_ctx",
"--enable-controls",
"--enable-dataviewctrl",
"--with-expat",
"--with-macosx-version-min=#{MacOS.version}",
"--enable-universal_binary=#{Hardware::CPU.universal_archs.join(',')}",
"--disable-precomp-headers",
# This is the default option, but be explicit
"--disable-monolithic"
]
system "./configure", *args
system "make install"
end
end
__END__
diff -ur a/include/wx/defs.h b/include/wx/defs.h
--- a/include/wx/defs.h
+++ b/include/wx/defs.h
@@ -3169,13 +3169,20 @@
DECLARE_WXCOCOA_OBJC_CLASS(UIEvent);
DECLARE_WXCOCOA_OBJC_CLASS(NSSet);
DECLARE_WXCOCOA_OBJC_CLASS(EAGLContext);
+DECLARE_WXCOCOA_OBJC_CLASS(UIWebView);
typedef WX_UIWindow WXWindow;
typedef WX_UIView WXWidget;
typedef WX_EAGLContext WXGLContext;
typedef WX_NSString* WXGLPixelFormat;
+typedef WX_UIWebView OSXWebViewPtr;
-#endif
+#endif
+
+#if wxOSX_USE_COCOA_OR_CARBON
+DECLARE_WXCOCOA_OBJC_CLASS(WebView);
+typedef WX_WebView OSXWebViewPtr;
+#endif
#endif /* __WXMAC__ */
diff -ur a/include/wx/html/webkit.h b/include/wx/html/webkit.h
--- a/include/wx/html/webkit.h
+++ b/include/wx/html/webkit.h
@@ -18,7 +18,6 @@
#endif
#include "wx/control.h"
-DECLARE_WXCOCOA_OBJC_CLASS(WebView);
// ----------------------------------------------------------------------------
// Web Kit Control
@@ -107,7 +106,7 @@
wxString m_currentURL;
wxString m_pageTitle;
- WX_WebView m_webView;
+ OSXWebViewPtr m_webView;
// we may use this later to setup our own mouse events,
// so leave it in for now.
diff -ur a/include/wx/osx/webview_webkit.h b/include/wx/osx/webview_webkit.h
--- a/include/wx/osx/webview_webkit.h
+++ b/include/wx/osx/webview_webkit.h
@@ -158,7 +158,7 @@
wxWindowID m_windowID;
wxString m_pageTitle;
- wxObjCID m_webView;
+ OSXWebViewPtr m_webView;
// we may use this later to setup our own mouse events,
// so leave it in for now.
diff -ur a/src/osx/webview_webkit.mm b/src/osx/webview_webkit.mm
--- a/src/osx/webview_webkit.mm
+++ b/src/osx/webview_webkit.mm
@@ -442,7 +442,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView goBack];
+ [m_webView goBack];
}
void wxWebViewWebKit::GoForward()
@@ -450,7 +450,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView goForward];
+ [m_webView goForward];
}
void wxWebViewWebKit::Reload(wxWebViewReloadFlags flags)
@@ -849,7 +849,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView cut:m_webView];
+ [m_webView cut:m_webView];
}
void wxWebViewWebKit::Copy()
@@ -857,7 +857,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView copy:m_webView];
+ [m_webView copy:m_webView];
}
void wxWebViewWebKit::Paste()
@@ -865,7 +865,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView paste:m_webView];
+ [m_webView paste:m_webView];
}
void wxWebViewWebKit::DeleteSelection()
@@ -873,7 +873,7 @@
if ( !m_webView )
return;
- [(WebView*)m_webView deleteSelection];
+ [m_webView deleteSelection];
}
bool wxWebViewWebKit::HasSelection() const