From bc8dc5eb71d579a3ca86b5f757140e22a9492daf Mon Sep 17 00:00:00 2001 From: Cliff Rowley Date: Thu, 31 Oct 2013 02:45:20 +0000 Subject: [PATCH] Patched Qt4 formula to build on Mavericks and libc++ --- Library/Formula/qt.rb | 64 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/Library/Formula/qt.rb b/Library/Formula/qt.rb index fc1bcf9e6651..d6615c176367 100644 --- a/Library/Formula/qt.rb +++ b/Library/Formula/qt.rb @@ -12,7 +12,15 @@ class Qt < Formula sha1 '401f2362ad9a22245a206729954dba731a1cdb52' => :snow_leopard end - head 'git://gitorious.org/qt/qt.git', :branch => '4.8' + head do + url 'git://gitorious.org/qt/qt.git', :branch => '4.8' + + resource 'libWebKitSystemInterfaceMavericks' do + url 'http://trac.webkit.org/export/157771/trunk/WebKitLibraries/libWebKitSystemInterfaceMavericks.a' + sha1 'fc5ebf85f637f9da9a68692df350e441c8ef5d7e' + version '157771' + end if MacOS.version >= :mavericks + end option :universal option 'with-qt3support', 'Build with deprecated Qt3Support module support' @@ -26,7 +34,45 @@ class Qt < Formula odie 'qt: --with-demos-examples is no longer supported' if build.include? 'with-demos-examples' odie 'qt: --with-debug-and-release is no longer supported' if build.include? 'with-debug-and-release' + def patches + # Patches to fix compilation on Mavericks (http://github.com/mxcl/homebrew/pull/23793) + return unless MacOS.version >= :mavericks + + [ + # Change Change I8fd619af: Added a patch to let the CLucene's FieldCachImpl.cpp compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70437) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/6d2597c4c61cca04ed56472fd1fd793798526ce6/Change_I8fd619af', + # Change Iff4d919d: Added a patch to let the WebKit's QNetworkReplyHandler.cpp compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70438) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/ec13ef2a8b4adc7b9695e6d49876d826f89802ae/Change_Iff4d919d', + # Change Ied51c868: Added a patch to let the WebKit's qgraphicswebview.cpp compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70439) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/8834e194a0f4e0c99ef64064f6a86ddcb617f444/Change_Ied51c868', + # Change Ic6330613: Added a patch to let the WebKit's NotificationPresenterClientQt.cpp compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70440) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/9ee8460814204faa5cf5b1317fba5d1b14a563eb/Change_Ic6330613', + # Change I2ad84441: Added a patch to let the WebKit's .pro file find the lib for Mavericks. This is needed to compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70442) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/f73ea1979f4595fc463b2deb77987b389748e289/Change_I2ad84441', + # Change I4c697a87: Added a patch to let the WebKit's platform/Timer.h compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70443) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/9d5305f6bb01cf445893d09bf399097a53706d6a/Change+I4c697a87', + # Change I31ad9a7a: Added a patch to let the WebKit's platform/Timer.cpp compile at Mac OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70444) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/2f9a348e575f63d435c3d32a9c70c4c2d687542c/Change_I31ad9a7a', + # Change Ieb30c115: Backported fix for WebKit libc++ support on OS X Mavricks + # (https://codereview.qt-project.org/#change,70929) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/ebdc1fbf8d1b9a65e797124fb64b709a7d71107d/Change_Ieb30c115', + # Change Iaedaff7c: Enable building with clang / libc++ on OS X 10.9 Mavericks + # (https://codereview.qt-project.org/#change,70930) + 'https://gist.github.com/jensenb/aafb2c2d1e0fcce2994f/raw/cc0a38d67cb36b650a275af3825731ce1f2ba35c/Change_Iaedaff7c', + ] + end + def install + # Must be built with --HEAD on Mavericks at the moment + raise 'Qt currently requires --HEAD on Mavericks' if MacOS.version == :mavericks and not build.head? + ENV.universal_binary if build.universal? ENV.append "CXXFLAGS", "-fvisibility=hidden" @@ -44,12 +90,20 @@ def install # locations and with Xcode-only. if superenv? args << '-no-3dnow' - args << '-no-ssse3' if MacOS.version <= :snow_leopard + args << '-no-ssse3' end args << "-L#{MacOS::X11.lib}" << "-I#{MacOS::X11.include}" if MacOS::X11.installed? - args << "-platform" << "unsupported/macx-clang" if ENV.compiler == :clang + if ENV.compiler == :clang + args << "-platform" + + if MacOS.version >= :mavericks + args << "unsupported/macx-clang-libc++" + else + args << "unsupported/macx-clang" + end + end args << "-plugin-sql-mysql" if build.with? 'mysql' @@ -81,6 +135,10 @@ def install args << '-developer-build' if build.include? 'developer' + if MacOS.version >= :mavericks + (buildpath/'src/3rdparty/webkit/WebKitLibraries').install resource('libWebKitSystemInterfaceMavericks') + end + system "./configure", *args system "make" ENV.j1