/Library/Formula/pygtk.rb
Ruby | 79 lines | 65 code | 13 blank | 1 comment | 3 complexity | eceff6af66c2e730371de2f71725c77a MD5 | raw file
- require 'formula'
- class Pygtk < Formula
- url 'http://ftp.acc.umu.se/pub/GNOME/sources/pygtk/2.24/pygtk-2.24.0.tar.bz2'
- homepage 'http://www.pygtk.org/'
- md5 'a1051d5794fd7696d3c1af6422d17a49'
- depends_on :x11
- depends_on 'glib'
- depends_on 'gtk+'
- depends_on 'pygobject'
- depends_on 'py2cairo'
- def options
- [["--universal", "Builds a universal binary"]]
- end
- def install
- ENV.append 'CFLAGS', '-ObjC'
- ENV.universal_binary if ARGV.build_universal?
- system "./configure", "--disable-dependency-tracking",
- "--prefix=#{prefix}"
- 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
- mktemp do
- (Pathname.pwd+'test.py').write <<-EOS.undent
- #!/usr/bin/env python
- import pygtk
- pygtk.require('2.0')
- import gtk
- class HelloWorld(object):
- def hello(self, widget, data=None):
- print "Hello World"
- def delete_event(self, widget, event, data=None):
- print "delete event occurred"
- return False
- def destroy(self, widget, data=None):
- print "destroy signal occurred"
- gtk.main_quit()
- def __init__(self):
- self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
- self.window.connect("delete_event", self.delete_event)
- self.window.connect("destroy", self.destroy)
- self.window.set_border_width(10)
- self.button = gtk.Button("Hello World")
- self.button.connect("clicked", self.hello, None)
- self.button.connect_object("clicked", gtk.Widget.destroy, self.window)
- self.window.add(self.button)
- self.button.show()
- self.window.show()
- def main(self):
- gtk.main()
- if __name__ == "__main__":
- hello = HelloWorld()
- hello.main()
- EOS
- system "chmod +x test.py"
- system "./test.py"
- end
- end
- end