Difference between revisions of "WxHaskell/0.90"

From HaskellWiki
Jump to navigation Jump to search
(Building strict fails with UTF error - workaround)
(Added 'obsolete' message)
Line 1: Line 1:
  +
'''This page is obsolete'''
  +
  +
See [[WxHaskell#Documentation]] for up to date instructions
  +
  +
 
=== Building wxHaskell ===
 
=== Building wxHaskell ===
   

Revision as of 09:57, 20 June 2013

This page is obsolete

See WxHaskell#Documentation for up to date instructions


Building wxHaskell

For all platforms installation is straightforward, provided that:

  1. wx-config is somewhere in the path
  2. The WXWIN environment variable points to the root of your wxWidgets installation
  3. WINDOWS PLATFORMS ONLY: You may also need to set WXCFG=gcc_dll\mswu

You can then install wxhaskell as follows (in a Windows cmd.exe shell, not an MSys shell):

> cabal update
> cabal install wx

Note that on Windows 7 machines, your command window must be running as Administrator, or you must use the '--user' flag to install to a local directory.

Note that on Unix systems, you may prefer something like

> sudo cabal install --global wx

Windows developers who don't update environment variables can do something like this in an MS-DOS shell:

> Set CPLUS_INCLUDE_PATH=C:\MinGW\include\c++\3.4.5;C:\MinGW\include\c++\3.4.5\mingw32\
> Set WXWIN=C:\path\to\wxWidgets-2.9.3
> Set WXCFG=gcc_dll\mswu
> cabal install wx

The Windows installation is global by default.

Out of memory errors

There have been reports of out of memory errors when compiling wxcore on some machines, notably 64 bit Linux hosts. Wxcore contains some very large auto-generated source files, and increasing the memory available to the GHC runtime can help.

Try something like:

> export GHCRTS='-M512m'

to allocate 512 MB to the GHC RTS. This has been reported to be sufficient.

Failure to build Strict

There have been reports of the following error when building wxHaskell on Windows (as of 24/4/2012):

C:\>cabal install wxdirect
Resolving dependencies...
Configuring strict-0.3.2...
Preprocessing library strict-0.3.2...
Building strict-0.3.2...
<interno>:0:5: lexical error (UTF-8 decoding error)
cabal: Error: some packages failed to install:
strict-0.3.2 failed during the building phase. The exception was:
ExitFailure 1
wxdirect-0.90.0.1 depends on strict-0.3.2 which failed to install.

The suggested fix is:

set LANG=C

on the command line before you build. This appears to be a UTF error in the strict library. Configuring this will not stop you from configuring working Unicode support for wxHaskell, as wxDirect is only used for parsing C language header files.

Source Release

You can obtain a source release of wxHaskell from the darcs repository. Darcs creates a wxHaskell directory for you; we assume in the following example that your $wxHaskell directory will be ~/dev/wxhaskell.

> cd ~/dev
> darcs get --lazy --set-scripts-executable http://code.haskell.org/wxhaskell/

If you are building on Windows, you will need the version of wx-config which is included in the wx-config-win directory. You should put this somewhere in your path.

You then build each of the key components in order:

> cd ~/dev/wxhaskell/wxdirect
> cabal install --user
> cd ../wxc
> cabal install --user
> cd ../wxcore
> cabal install --user
> cd ../wx
> cabal install --user

Test wxHaskell

If everything succeeded, you should be able to run a test program.

> cd samples/wx
> ghc -package wx -o helloworld HelloWorld.hs
> ./helloworld

Notes:

macosx: wxHaskell programs need to be turned into application bundles before they can be run. Look at the Mac OS X notes for more information. You can also run the examples from GHCi – a great development environment!

> ghci -package wx BouncingBalls.hs
> main

Notes:

wxHaskell programs can be run from GHCi. There are reports that this is now working correctly, at least for Windows and OSX platforms.

gtk: Unfortunately, one can only start a wxWidgets program once with GHCi on GTK (rendering it useless). macosx. You need to use a special command to run wxHaskell applications, see the Mac OS X notes from more information. Have fun!