homebrew-core/Formula/pyqt.rb
samueljohn bd52b679da sip & pyqt: Now use lib/pythonX.Y/site-packages
Benefit: For brewed Python, adding stuff to the PYTHONPATH is no longer needed.
For other Pythons nothing changes but the X.Y part in the path. Oh, and you
only need to edit your PYTHONPATH once.

- Added a method to get the major.minor version number from the current python
- Updated the caveats to reflect the new path

Fixes Homebrew/homebrew#8182.
Closes Homebrew/homebrew#10051.

Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
2012-02-16 00:03:07 -08:00

76 lines
2 KiB
Ruby

require 'formula'
# Note: this project doesn't save old releases, so it breaks often as
# downloads disappear.
class Pyqt < Formula
url 'http://www.riverbankcomputing.co.uk/static/Downloads/PyQt4/PyQt-mac-gpl-4.9.1.tar.gz'
homepage 'http://www.riverbankcomputing.co.uk/software/pyqt'
sha1 '6c0dbf0edb9a0f07fb3ed95f6c3b4b5d0458dbe7'
depends_on 'sip'
depends_on 'qt'
def install
ENV.prepend 'PYTHONPATH', "#{HOMEBREW_PREFIX}/lib/python", ':'
system "python", "./configure.py", "--confirm-license",
"--bindir=#{bin}",
"--destdir=#{lib}/#{which_python}/site-packages",
"--sipdir=#{share}/sip"
system "make"
system "make install"
end
def caveats; <<-EOS.undent
For non-homebrew Python, you need to amend your PYTHONPATH like so:
export PYTHONPATH=#{HOMEBREW_PREFIX}/lib/#{which_python}/site-packages:$PYTHONPATH
EOS
end
def which_python
"python" + `python -c 'import sys;print(sys.version[:3])'`.strip
end
def test
test_program = <<-EOS
#!/usr/bin/env python
# Taken from: http://zetcode.com/tutorials/pyqt4/firstprograms/
import sys
from PyQt4 import QtGui, QtCore
class QuitButton(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Quit button')
quit = QtGui.QPushButton('Close', self)
quit.setGeometry(10, 10, 60, 35)
self.connect(quit, QtCore.SIGNAL('clicked()'),
QtGui.qApp, QtCore.SLOT('quit()'))
app = QtGui.QApplication(sys.argv)
qb = QuitButton()
qb.show()
app.exec_()
sys.exit(0)
EOS
ohai "Writing test script 'test_pyqt.py'."
open("test_pyqt.py", "w+") do |file|
file.write test_program
end
ENV['PYTHONPATH'] = "#{HOMEBREW_PREFIX}/lib/python"
system "python test_pyqt.py"
ohai "Removing test script 'test_pyqt.py'."
rm "test_pyqt.py"
end
end