WxHaskell/Windows: Difference between revisions
→DLLs: Added "or copy cygcheck.exe to some location in the search path" |
|||
Line 16: | Line 16: | ||
Environment variables: | Environment variables: | ||
* CABAL_DIR: C:\Users\XXX\AppData\Roaming\cabal (Windows XP: C:\Documents and Settings\XXX\Application Data\cabal, or | * CABAL_DIR: C:\Users\XXX\AppData\Roaming\cabal (Windows XP: C:\Documents and Settings\XXX\Application Data\cabal, or: %APPDATA%\cabal) | ||
* GHC_VERSION: 7.0.3 (for our convenience) | * GHC_VERSION: 7.0.3 (for our convenience) | ||
* WXC_VERSION: 0.90.0.2 | * WXC_VERSION: 0.90.0.2 |
Revision as of 21:15, 1 April 2013
wxWidgets 2.9 and wxHaskell 0.90.x
Windows | Haskell Platform | wxWidgets |
---|---|---|
7 | 2011.2.0.1 | 2.9.3 |
Prerequisites:
- MinGW 5.1.6 and MSYS 1.0.11 (these are the latest versions at the time of writing). You must select the C++ compiler option when installing MinGW.
Environment variables:
- CABAL_DIR: C:\Users\XXX\AppData\Roaming\cabal (Windows XP: C:\Documents and Settings\XXX\Application Data\cabal, or: %APPDATA%\cabal)
- GHC_VERSION: 7.0.3 (for our convenience)
- WXC_VERSION: 0.90.0.2
- WXWIN: C:\wxWidgets-2.9.3
- WXCFG: gcc_dll\mswu
- PATH: (add these) %WXWIN%\lib\gcc_dll;%WXWIN%;%CABAL_DIR%\wxc-%WXC_VERSION%\%GHC_VERSION%
Steps:
- Download wxWidgets 2.9.3 source
- Extract to C:\wxWidgets-2.9.3
- Build wxWidgets-2.9.3
I (who?) compiled it as follows: edit wxwidgets-src-dir\build\msw\config.gcc so that the following values are set:SHARED ?= 1 BUILD ?= release
Then (in cmd.exe, not bash):
cd wxwidgets-src-dir\build\msw mingw32-make -f makefile.gcc
- Download wx-config.exe (a new version for wxWidgets > 2.9) and copy it somewhere into your path, for instance via
cp wx-config.exe %CABAL_DIR%\bin
- Install the wxHaskell libraries
cabal install wxdirect cabal install wxc cabal install wxcore cabal install wx
DLLs
In order to run a wxHaskell application, the following wxWidgets DLLs must be in the search path:
(If you built wxWidgets in directory wxWidgets-2.9.3, the following files can be found in wxWidgets-2.9.3\lib\gcc_dll\ (change revision as needed))
- wxbase293u_gcc_custom.dll
- wxbase293u_net_gcc_custom.dll
- wxbase293u_xml_gcc_custom.dll
- wxmsw293u_adv_gcc_custom.dll
- wxmsw293u_aui_gcc_custom.dll
- wxmsw293u_core_gcc_custom.dll
- wxmsw293u_gl_gcc_custom.dll
- wxmsw293u_html_gcc_custom.dll
- wxmsw293u_propgrid_gcc_custom.dll
- wxmsw293u_ribbon_gcc_custom.dll
- wxmsw293u_richtext_gcc_custom.dll
- wxmsw293u_stc_gcc_custom.dll
- wxmsw293u_xrc_gcc_custom.dll
The following file can be found in directory wxc\dist\build\, after building package wxc in directory wxc:
- wxc.dll (be sure to recompile and copy this one when you compile your application with a new compiler)
Furthermore, the following DLLs need to be in the search path (these can be found in directory "Haskell Platform\2012.2.0.0\mingw\bin\", or in ghc-7.4.2\mingw\bin\ if you installed the compiler only (change revision as needed)):
- libgcc_s_dw2-1.dll
- libstdc++-6.dll
- mingwm10.dll
Some wxHaskell applications also require the following DLLs:
- uuid.dll
- perl510.dll
- libapr-1.dll
- libapriconv-1.dll
- libaprutil-1.dll
These DLLs can be obtained by installing XAMPP; the DLLs are in the directories:
- xampp\perl\site\lib\auto\APR\UUID
- xampp\perl\bin
- xampp\apache\bin
If there are still DLLs missing, you can find out which, using cygcheck from the Cygwin project. Note, that you will get problems if you have both MinGW and Cygwin in your search path; it is best to specify the full path to cygcheck.exe, or copy cygcheck.exe to some location in the search path.
wxWidgets 2.8 and wxHaskell 0.13.x
Follow SkyTreeBird's guide. It which walks you through the basic steps
- wx-config
- wxPack
- setting up environment variables
cabal install wx
Note that the best way to refer to WxWidgets in your PATH is probably to use the WXWIN variable that you set, eg. %WXWIN%/lib/gcc_dll
The guide has been tested with the following configurations. Others may work too:
Windows | Haskell Platform | wxWidgets |
---|---|---|
XP | 2010.2.0.0 | 2.8.10 |
7 | 2011.2.0.1 | 2.8.12 |
DLLs
In order to run a wxHaskell application, the following DLLs must be in the search path:
- mingwm10.dll; this can be found in directory "Haskell Platform\2012.2.0.0\mingw\bin\", or in ghc-7.4.2\mingw\bin\ if you installed just the compiler (change revision as needed)
- wxmsw28u_gcc_custom.dll
Troubleshooting installation with cabal
These remarks refer to wx-0.13.2 and Haskell Platform 2011.4.0.0 on Windows 7.
Cabal package wx depends on wxcore which depends on wxdirect. By default cabal installs on a per user base, thus wxdirect.exe will be installed to c:\Users\<YOUR NAME>\AppData\Roaming\cabal\bin\
. This folder must be in your PATH
for cabal install wxcore
to succeed.
Package wxcore-0.13.2 does not work well with wx-config revision 21 2006-10-19 (downloaded from here on Feb 2nd 2012). If cabal install wxcore
fails with an output containing "Usage: wx-config [options]" try this:
cabal unpack wxcore
cd wxcore-0.13.2
- edit
Setup.hs
and comment out/remove the line containing"wx-config" ["--version"]
runhaskell.exe Setup.hs configure --user
runhaskell.exe Setup.hs build
runhaskell.exe Setup.hs install
Finally call cabal install wx
.