Gtk2Hs

From HaskellWiki
Revision as of 17:22, 17 December 2008 by BrettGiles (talk | contribs) (→‎Mac OS X: Add recent experience)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

What is it?

Gtk2Hs is a Haskell binding to Gtk+ 2.x. Using it, one can write Gtk+ based applications with GHC.

Homepage

http://haskell.org/gtk2hs/

Status

It currently works with Gtk+ 2.0 through to 2.8 on Unix, Win32 and MacOS X. The widget function coverage is almost complete, only a few minor bits and pieces are missing.

It currently builds with ghc 5.04.3 through to 6.8.2

Installation Notes

Mac OS X

Article as of Mid 2008

Installing Gtk2Hs on Mac requires some finesse, at least until Haskell Libary Platform is built or ghc-6.8.3 is available in macports. (These are planned for late 2008.)

sudo port instll glade3 libglade2 gstreamer gst-plugins-base gtksourceview cairo librsvg gtkglext firefox
  • Update PKG_CONFIG_PATH (for libraries)
export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig:/opt/local/lib/pkgconfig
  • Update ghc to use macports libs: Edit your main ghc driver program and change the last line to:
exec $GHCBIN $TOPDIROPT ${1+"$@"} -L/opt/local/lib -I/opt/local/include
./configure --enable-docs --enable-profiling

...

**************************************************
* Configuration completed successfully.           
*                                                 
* The following packages will be built:           
*                                                 
* glib          : yes                             
* gtk           : yes                             
* glade         : yes              
* cairo         : yes                 
* svgcairo      : yes              
* gtkglext      : yes              
* gconf         : yes                 
* sourceview    : yes            
* mozembed      : yes              
* soegtk        : yes                             
* gnomevfs      : yes              
* gstreamer     : yes             
* documentation : yes                    
*                                                 
* Now do "(g)make" followed by "(g)make install"
**************************************************
  • Build and Install:
make 
sudo make install

Recent experiences

I successfully installed the latest version on Mac OS 10.5 by:

  • Installing Macports.
  • sudo port install ghc
  • sudo port install gtk2hs - which does not complete successfully. It does however, install the appropriate dependencies. Note that there are so many, you may need to install a couple of times due to time outs etc.. The build of Gtk2HS will fail, but that is ok - continue as below.
  • Remove the build directory under /opt/.../build/gtk2hs
  • Download Gtk2Hs via darcs as per the gtk2hs download instructions
  • do a sudo port install automake
  • do a sudo port install alex
  • do a sudo port install happy (Note this also fails and must be built from source. See the Happy page for details.)
  • Follow the build instructions on the the gtk2hs download page. I would suggest using ./configure --prefix=/opt/local to get it in the same place as ports - personal preference though.

Good luck - as usual, your mileage may vary.

Demos

OpenGL and Gtk2Hs

Gtk2Hs/Demos/GtkGLext/hello.hs

Gtk2Hs/Demos/GtkGLext/terrain.hs requires Gtk2Hs/Demos/GtkGLext/terrain.xpm

FAQs

These are links to FAQS on the main site.