Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

Qt4 on Mavericks (CLOSED) #23793

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 61 additions & 3 deletions Library/Formula/qt.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what to use for the version number here since the file doesn't have one, otherwise it fails audit..

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is ok for resources to fail audit for now.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah ok great, I'll remove the version number then as it's meaningless.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@adamv while I've got your attention, any ideas how I might tackle item 5 in the PR description?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@adamv Stuff failing audit stops bottles being built.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MikeMcQuaid then seeing as this is a temporary measure while we wait for an official upstream patch, perhaps I should leave it as-is?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW because I do need to build a bottle (to save myself from having to rebuild Qt when I need it!) I've left the whacky version number in. It'll get removed later anyway because libWebKitSystemInterfaceMavericks.a will be incorporated into the Qt source.

end if MacOS.version >= :mavericks
end

option :universal
option 'with-qt3support', 'Build with deprecated Qt3Support module support'
Expand All @@ -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',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's remove the :snow_leopard here instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooh, ok.

# 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?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't ideal but if we have to do it we have to do it, I guess.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hopefully not for too long..


ENV.universal_binary if build.universal?
ENV.append "CXXFLAGS", "-fvisibility=hidden"

Expand All @@ -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'

Expand Down Expand Up @@ -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
Expand Down