Personal tools


From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(delete outdated links + update some of the information)
(30 intermediate revisions by 16 users not shown)
Line 7: Line 7:
== Homepage ==
== Homepage ==
== Tutorial ==
== Tutorials and Demos ==
Some demonstration programs can be found at:
== Status ==
== Status ==
It currently works with Gtk+ 2.0 through to 2.8 on Unix, Win32 and MacOS X.
See [[Gtk2Hs/Installation#Supported_Versions]] for details on which systems should be able to build Gtk2Hs and which are known to be able to build Gtk2Hs.
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 ==
== Installation Notes ==
=== Mac OS X ===
==== Using the GTK+ OS X Framework ====
This explains how to install Gtk2Hs on Macs using the native [ GTK+ OS X Framework], a port of GTK+ to the Mac that does '''not''' depend on X11, and hence, is better integrated into the Mac desktop - i.e., menus actually appear in the menu bar, where they belong. It also avoids the often tedious installation of GTK+ via MacPorts. However, it misses support for optional Gtk2Hs packages that are currently not supported by the [ GTK+ OS X Framework], most notably support for Glade. It does include support for Cairo, though.
Here is how to install the library:
# Download and install [ GTK+ OS X Framework] (this uses the standard Mac package installer).
# Install [ pkg-config], either by compiling it from source or via MacPorts.
# Download and unpack the Gtk2Hs tar ball from the [ Gtk2Hs download page] (I tested 0.10.0).
# Configure with (you may want to remove the two backslashes and put everything on one line)
env PKG_CONFIG_PATH=/Library/Frameworks/Cairo.framework/Resources/dev/lib/pkgconfig:\
/Library/Frameworks/Gtk.framework/Resources/dev/lib/pkgconfig ./configure --disable-gio
# Build with
# Install (to <tt>/usr/local/</tt> unless a <tt>--prefix</tt> option was passed to <tt>configure</tt>) with
sudo make install
The library is now registered with the package database of the GHC you used for compiling.
NB: Thanks to Ross Mellgren for his post on the gtk2hs-users list that outlined the use of <tt>PKG_CONFIG_PATH</tt>.
==== 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.)
* Install [ MacPorts]
* Install dependencies:
sudo port install 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 <tt>ghc</tt> driver program and change the last line to:
exec $GHCBIN $TOPDIROPT ${1+"$@"} -L/opt/local/lib -I/opt/local/include
* Download Gtk2Hs following instructions at [ Gtk2Hs Download page]
* Check configuration:
./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:
sudo make install
==== Recent experiences ====
See [[Gtk2Hs/Installation]].
I successfully installed the latest version on Mac OS 10.5 by:
* Installing Macports.
* <tt>sudo port install ghc</tt>
* <tt>sudo port install gtk2hs</tt> - 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. Also note that ghc configure will give up if your perl5.8 is not new enough, if so deactivate it and try again.
* Remove the build directory under <tt>/opt/.../build/gtk2hs</tt>
* Download Gtk2Hs via darcs as per [ the gtk2hs download instructions]
* do a <tt>sudo port install automake</tt>
* do a <tt>sudo port install alex</tt>
* do a <tt>sudo port install happy</tt> (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 <tt>./configure --prefix=/opt/local</tt> to get it in the same place as ports - personal preference though.
Good luck - as usual, your mileage may vary.
== Demos ==
== Demos ==
Line 98: Line 34:
These are links to FAQS on the main site.
These are links to FAQS on the main site.
*[ Hiding the console on windows]
*[ Hiding the console on windows]
*[ Writing multi-threaded GUIs]
*[ Building on Windows]
*[ Checkout instructions]. Also see [[Darcs]]
*[ Checkout instructions]. Also see [[Darcs]]

Latest revision as of 20:16, 1 December 2012


[edit] 1 What is it?

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

[edit] 2 Homepage

[edit] 3 Tutorials and Demos

Some demonstration programs can be found at:

[edit] 4 Status

See Gtk2Hs/Installation#Supported_Versions for details on which systems should be able to build Gtk2Hs and which are known to be able to build Gtk2Hs.

[edit] 5 Installation Notes

See Gtk2Hs/Installation.

[edit] 6 Demos

[edit] 6.1 OpenGL and Gtk2Hs


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

[edit] 7 FAQs

These are links to FAQS on the main site.