From 5c513670d3958c704447b64d43f7f41468cb7b33 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 13 Nov 2013 10:26:37 -0800 Subject: [PATCH] add a formula for a qt5 install with no CoreWLAN --- qt5-no-corewlan.rb | 106 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 qt5-no-corewlan.rb diff --git a/qt5-no-corewlan.rb b/qt5-no-corewlan.rb new file mode 100644 index 0000000000..efcc3096bf --- /dev/null +++ b/qt5-no-corewlan.rb @@ -0,0 +1,106 @@ +require 'formula' + +class Qt5 < Formula + homepage 'http://qt-project.org/' + url 'https://dl.dropboxusercontent.com/u/1864924/5.2.0-beta1/qt-everywhere-opensource-nocorewlan-src-5.2.0-beta1.tar.gz' + sha1 'd9f646fd2e9ed6e086350b767ee5da81bca9e16b' + head 'git://gitorious.org/qt/qt5.git', :branch => 'stable' + + bottle do + revision 1 + sha1 '7cf5fec167c1b0d8a8a719fad79756b9892d04dd' => :mountain_lion + sha1 '5d6a4a10362ba66d6471cd45a40b1bcde8137f62' => :lion + sha1 'd1790e3b17b5a0855efa8df68187a62774aad9b9' => :snow_leopard + end + + keg_only "Qt 5 conflicts Qt 4 (which is currently much more widely used)." + + option :universal + option 'with-docs', 'Build documentation' + option 'developer', 'Build and link with developer options' + + depends_on "d-bus" => :optional + depends_on "mysql" => :optional + + odie 'qt5: --with-qtdbus has been renamed to --with-d-bus' if build.include? 'with-qtdbus' + odie 'qt5: --with-demos-examples is no longer supported' if build.include? 'with-demos-examples' + odie 'qt5: --with-debug-and-release is no longer supported' if build.include? 'with-debug-and-release' + + def install + ENV.universal_binary if build.universal? + args = ["-prefix", prefix, + "-system-zlib", + "-confirm-license", "-opensource", + "-nomake", "examples", + "-release"] + + unless MacOS::CLT.installed? + # ... too stupid to find CFNumber.h, so we give a hint: + ENV.append 'CXXFLAGS', "-I#{MacOS.sdk_path}/System/Library/Frameworks/CoreFoundation.framework/Headers" + end + + + args << "-plugin-sql-mysql" if build.with? 'mysql' + + if build.with? 'd-bus' + dbus_opt = Formula.factory('d-bus').opt_prefix + args << "-I#{dbus_opt}/lib/dbus-1.0/include" + args << "-I#{dbus_opt}/include/dbus-1.0" + args << "-L#{dbus_opt}/lib" + args << "-ldbus-1" + end + + if MacOS.prefer_64_bit? or build.universal? + args << '-arch' << 'x86_64' + end + + if !MacOS.prefer_64_bit? or build.universal? + args << '-arch' << 'x86' + end + + args << '-developer-build' if build.include? 'developer' + + system "./configure", *args + system "make" + ENV.j1 + system "make install" + + # Fix https://github.com/mxcl/homebrew/issues/20020 (upstream: https://bugreports.qt-project.org/browse/QTBUG-32417) + system "install_name_tool", "-change", "#{pwd}/qtwebkit/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets", #old + "#{lib}/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets", #new + "#{libexec}/QtWebProcess" # in this lib + system "install_name_tool", "-change", "#{pwd}/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit", + "#{lib}/QtWebKit.framework/Versions/5/QtWebKit", + "#{prefix}/qml/QtWebKit/libqmlwebkitplugin.dylib" + system "install_name_tool", "-change", "#{pwd}/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit", + "#{lib}/QtWebKit.framework/Versions/5/QtWebKit", + "#{lib}/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets" + + # Some config scripts will only find Qt in a "Frameworks" folder + cd prefix do + ln_s lib, frameworks + end + + # The pkg-config files installed suggest that headers can be found in the + # `include` directory. Make this so by creating symlinks from `include` to + # the Frameworks' Headers folders. + Pathname.glob(lib + '*.framework/Headers').each do |path| + framework_name = File.basename(File.dirname(path), '.framework') + ln_s path.realpath, include+framework_name + end + + Pathname.glob(bin + '*.app').each do |path| + mv path, prefix + end + end + + test do + system "#{bin}/qmake", "-project" + end + + def caveats; <<-EOS.undent + We agreed to the Qt opensource license for you. + If this is unacceptable you should uninstall. + EOS + end +end \ No newline at end of file