Skip to content

Commit

Permalink
PyQt5: PyQt5 for Qt5.
Browse files Browse the repository at this point in the history
  • Loading branch information
samueljohn committed Jul 19, 2013
1 parent f9085c2 commit 15f2516
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions Library/Formula/pyqt5.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
require 'formula'

class Pyqt5 < Formula
homepage 'http:https://www.riverbankcomputing.co.uk/software/pyqt/download5'
url 'http:https://downloads.sf.net/project/pyqt/PyQt5/PyQt-5.0/PyQt-gpl-5.0.tar.gz'
sha1 'ad143f8c1287e80f37db23618c9560b00f89bc60'

option 'enable-debug', "Build with debug symbols"

depends_on :python3 => :recommended
depends_on :python2 => :optional

depends_on 'qt5'

if build.with? 'python3'
depends_on 'sip' => 'with-python3'
else
depends_on 'sip'
end

def install
python do
args = [ "--confirm-license",
"--bindir=#{bin}",
"--destdir=#{lib}/#{python.xy}/site-packages",
# To avoid conflicst with PyQt (for Qt4):
"--sipdir=#{share}/sip#{python.if3then3}/Qt5/",
# sip.h could not be found automatically
"--sip-incdir=#{Formula.factory('sip').opt_prefix}/include" ]
args << '--debug' if build.include? 'enable-debug'

system python, "./configure.py", *args
system "make"
system "make", "install"
system "make", "clean" # because this python block may be run twice

# For PyQt5 we default to put 3.x bindings in bin, unless --without-python3
if build.with? 'python3' and build.with? 'python'
['pyuic5', 'pyrcc5', 'pylupdate5'].each { |f| mv(bin/f, bin/"#{f}-py2")}
end
end
end

def caveats
python.standard_caveats if python
end

test do
python do
(testpath/'test.py').write <<-EOS.undent
import sys
from PyQt5 import QtGui, QtCore, QtWidgets
class Test(QtWidgets.QWidget):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 400, 150)
self.setWindowTitle('Homebrew')
QtWidgets.QLabel("Python #{python.version} working with PyQt5. Quitting now...", self).move(50, 50)
QtCore.QTimer.singleShot(2500, QtWidgets.qApp.quit)
app = QtWidgets.QApplication([])
window = Test()
window.show()
sys.exit(app.exec_())
EOS

system "python#{python.if3then3}", "test.py"
rm testpath/'test.py'
end
end
end

0 comments on commit 15f2516

Please sign in to comment.