WxHaskell/Mac: Difference between revisions
(→Using wxHaskell on MacOS X platforms: some seemingly HP-obsoleted comments) |
(→Using wxHaskell on MacOS X platforms: clean up a bit) |
||
Line 33: | Line 33: | ||
<ul> | <ul> | ||
< | <li>Graphical applications generated with GHC do not work if executed directly ; they need to be upgraded into MacOS X ''applications''. See [https://github.com/gimbo/cabal-macosx cabal-macosx] to automate this. It can be integrated with Cabal and/or used as a standalone `macosx-app` script. | ||
</li> | </li> | ||
<li><p>Due to complicated MacOS X restrictions, graphical wxHaskell applications do not work directly when used from GHCi. Fortunately, Wolfgang Thaller has kindly provided an ingenious [http://wxhaskell.sourceforge.net/download/EnableGUI.hs Haskell module] that solves this problem. Just import the (compiled) module [http://wxhaskell.sourceforge.net/download/EnableGUI.hs <tt>EnableGUI</tt>] in your program and issue the following command to run <tt>main</tt> from your GHCi prompt:</p> | <li><p>Due to complicated MacOS X restrictions, graphical wxHaskell applications do not work directly when used from GHCi. Fortunately, Wolfgang Thaller has kindly provided an ingenious [http://wxhaskell.sourceforge.net/download/EnableGUI.hs Haskell module] that solves this problem. Just import the (compiled) module [http://wxhaskell.sourceforge.net/download/EnableGUI.hs <tt>EnableGUI</tt>] in your program and issue the following command to run <tt>main</tt> from your GHCi prompt:</p> |
Revision as of 10:38, 14 April 2012
Installing on MacOS X
- Install the Developer Tools
- Install wxWidgets 2.9 by hand (HomeBrew makes this easy:
brew install wxmac
) - Check your path to make sure you are using your wxWidgets and not the default Mac one
cabal install wx
Known working configurations
Date | Arch | OS/XCode | wxWidgets | wxHaskell | GHC | Haskell Platform |
---|---|---|---|---|---|---|
2012-04 | Intel 64-bit | Lion (10.7.3), Xcode 4.3 | 2.9.3 (HomeBrew) | 0.90 | 7.0.4 | 2011.3.0.0 |
Using wxHaskell on MacOS X platforms
Even though graphical applications on MacOS X look great, it is a still a developers nightmare to get them working :-). Furthermore, the MacOS X port of wxWidgets is the least mature and still has some quirks. This page describes how to circumvent some of the pitfalls.
- Graphical applications generated with GHC do not work if executed directly ; they need to be upgraded into MacOS X applications. See cabal-macosx to automate this. It can be integrated with Cabal and/or used as a standalone `macosx-app` script.
Due to complicated MacOS X restrictions, graphical wxHaskell applications do not work directly when used from GHCi. Fortunately, Wolfgang Thaller has kindly provided an ingenious Haskell module that solves this problem. Just import the (compiled) module EnableGUI in your program and issue the following command to run main from your GHCi prompt:
> enableGUI >> main
Compiling and using enableGUI needs some command line flags:
> ghc -XForeignFunctionInterface -c EnableGUI.hs > ghci -framework Carbon HelloWorld.hs GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Loading object (framework) Carbon ... done final link ... done [2 of 2] Compiling Main ( Main.hs, interpreted ) Ok, modules loaded: Main, EnableGUI. *Main> enableGUI *Main> main
The dynamic link libraries used by wxHaskell can not always be found. If your application seems to start (the icon bounces) but terminates mysteriously, you need to set the dynamic link library search path to the wxHaskell library directory. For example:
> setenv DYLD_LIBRARY_PATH /usr/local/wxhaskell/lib
or
> setenv DYLD_LIBRARY_PATH $HOME/.cabal/local/lib/wxhaskell-0.11.0/lib
Troubleshooting
See WxHaskell/Troubleshooting for help getting your wxhaskell applications running
- Why do I have to
macosx-app
my binaries?- 2009-04-01: we don't know for sure yet.
macosx-app
is just a shell script that runsRez
and also creates an application bundle. If you are a MacOS developer, especially a wxWidgets one, we would love some help answering this question. - 2009-11-24: Please see also Andy Gimblett's cabal-macosx project
- 2009-04-01: we don't know for sure yet.