Skip to content

Instantly share code, notes, and snippets.

@brantfaircloth
Forked from kennethreitz/py2app.md
Created March 19, 2011 16:05
Show Gist options
  • Save brantfaircloth/877566 to your computer and use it in GitHub Desktop.
Save brantfaircloth/877566 to your computer and use it in GitHub Desktop.

Proper Setup of Py2App

This assumes you have a proper Framework'd Python installation.

brew install python --framework 

Install Qt v4.7.1

I've patched the Qt v4.7.1 installation process to remove libpng dependencies. Use this:

brew install https://gist.github.com/raw/877566/qt.rb --universal

If you are installing into a virtualenv, activate it now.

Build SIP for x86_64 and i386

curl -O http://www.riverbankcomputing.com/static/Downloads/sip4/sip-4.12.1.tar.gz
tar -xzvf sip-4.12.1.tar.gz && cd sip-4.12.1
python configure.py --arch=x86_64 --arch=i386
make -j
make install

Build PyQT4

curl -O http://www.riverbankcomputing.com/static/Downloads/PyQt4/PyQt-mac-gpl-4.8.3.tar.gz
tar -xzvf PyQt-mac-gpl-4.8.3.tar.gz && cd PyQt-mac-gpl-4.8.3
python configure.py -q /usr/local/Trolltech/Qt-4.7.1/bin/qmake
make -j
make install

Install Module Dependencies pip install modulegraph macholib py2app

require 'formula'
require 'hardware'
class Qt <Formula
url 'http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.1.tar.gz'
md5 '6f88d96507c84e9fea5bf3a71ebeb6d7'
homepage 'http://qt.nokia.com/'
def patches
# To fix http://bugreports.qt.nokia.com/browse/QTBUG-13623. Patch sent upstream.
"http://qt.gitorious.org/+qt-developers/qt/lighthouse/commit/9f18a1ad5ce32dd397642a4c03fa1fcb21fb9456?format=patch"
end
def options
[
['--with-qtdbus', "Enable QtDBus module."],
['--with-qt3support', "Enable deprecated Qt3Support module."],
['--with-demos-examples', "Enable Qt demos and examples."],
['--with-debug-and-release', "Compile Qt in debug and release mode."],
['--universal', "Build both x86_64 and x86 architectures."],
]
end
depends_on "d-bus" if ARGV.include? '--with-qtdbus'
#depends_on 'libpng'
depends_on 'sqlite' if MACOS_VERSION <= 10.5
def install
ENV.x11
ENV.append "CXXFLAGS", "-fvisibility=hidden"
args = ["-prefix", prefix,
"-system-libpng", "-system-zlib",
"-confirm-license", "-opensource",
"-cocoa", "-fast",
"--x-include=/usr/X11/include/",
"--x-lib=/usr/X11/lib/"]
# See: https://github.com/mxcl/homebrew/issues/issue/744
args << "-system-sqlite" if MACOS_VERSION <= 10.5
args << "-plugin-sql-mysql" if (HOMEBREW_CELLAR+"mysql").directory?
if ARGV.include? '--with-qtdbus'
args << "-I#{Formula.factory('d-bus').lib}/dbus-1.0/include"
args << "-I#{Formula.factory('d-bus').include}/dbus-1.0"
args << "-L#{Formula.factory('d-bus').lib}"
args << "-ldbus-1"
args << "-dbus-linked"
end
if ARGV.include? '--with-qt3support'
args << "-qt3support"
else
args << "-no-qt3support"
end
if ARGV.include? '--with-debug-and-release'
args << "-debug-and-release"
else
args << "-release"
end
unless ARGV.include? '--with-demos-examples'
args << "-nomake" << "demos" << "-nomake" << "examples"
end
#args << "-L#{Formula.factory('libpng').lib}"
#args << "-I#{Formula.factory('libpng').include}"
if snow_leopard_64? or ARGV.include? '--universal'
args << '-arch' << 'x86_64'
end
if !snow_leopard_64? or ARGV.include? '--universal'
args << '-arch' << 'x86'
end
system "./configure", *args
system "make"
ENV.j1
system "make install"
# stop crazy disk usage
(prefix+'doc/html').rmtree
(prefix+'doc/src').rmtree
# what are these anyway?
(bin+'pixeltool.app').rmtree
(bin+'qhelpconverter.app').rmtree
# remove porting file for non-humans
(prefix+'q3porting.xml').unlink
# Some config scripts will only find Qt in a "Frameworks" folder
# VirtualBox is an example of where this is needed
# See: https://github.com/mxcl/homebrew/issues/issue/745
cd prefix do
ln_s lib, "Frameworks"
end
end
def caveats
"We agreed to the Qt opensource license for you.\nIf this is unacceptable you should uninstall."
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment