Leksah aims to integrate various Haskell development tools to provide a practical and pleasant development environment. The user interface is a mix of GTK+ and WebKit based components.
Documentation can be found on leksah.org.
Leksah requires ghc --version
>=7.10.3 and cabal --version
>=1.24. To get them go to haskell.og/download and choose the Minimal GHC or Haskell Platform.
- Windows latest github version built with AppVeyor
- OS X: official binaries
- Linux: build from source
We have completed a port of Leksah from Gtk2Hs to haskell-gi. Not all of the code is in Hackage yet so to build it you can either use Xobl or follow the instructions below.
sudo dnf install gobject-introspection-devel webkitgtk4-devel gtksourceview3-devel
sudo apt-get install libgirepository1.0-dev libwebkit2gtk-4.0-dev libgtksourceview-3.0-dev
sudo pacman -S gobject-introspection gobject-introspection-runtime gtksourceview3 webkit2gtk
sudo port install gobject-introspection webkit2-gtk gtksourceview3 gtk-osx-application-gtk3 adwaita-icon-theme`
You will also need to build a MacPorts compatible of GHC. First install GHC some other way then unpack the source for the GHC version you want to use and run:
sudo port install libxslt gmp ncurses libiconv llvm-3.5 libffi
./configure --prefix=$HOME/ghc-8.0.1 --with-iconv-includes=/opt/local/include --with-iconv-libraries=/opt/local/lib --with-gmp-includes=/opt/local/include --with-gmp-libraries=/opt/local/lib --with-system-libffi --with-ffi-includes=/opt/local/lib/libffi-3.2.1/include --with-ffi-libraries=/opt/local/lib --with-nm=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm-classic
make
make install
echo 'PATH: '"$PATH"
Make sure the $HOME/ghc-8.0.1/bin
is present in PATH.
It might be possible to build Leksah using Homebrew now we have switched to WebKit 2. If you can figure it out please send us the details or better yet a pull request to update this file. Raise an issue if you try and it does not work.
Install:
Then in Bash shell with administrator privileges execute:
choco install ghc
pacman -S mingw64/mingw-w64-x86_64-pkg-config mingw64/mingw-w64-x86_64-gobject-introspection mingw64/mingw-w64-x86_64-gtksourceview3 mingw64/mingw-w64-x86_64-webkitgtk3
Set the following environment variables:
SET PATH=%APPDATA%\cabal\bin;C:\msys64\mingw64\bin;C:\msys64\usr\bin;C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.0.2\bin;C:\ProgramData\chocolatey\lib\cabal\tools;%PATH%
SET PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig
SET XDG_DATA_DIRS=C:\msys64\mingw64\share
(change C:\ProgramData\chocolatey\lib\ghc\tools\ghc-8.0.2\bin
if a newer version is installed)
git clone --recursive https://github.com/leksah/leksah.git
cd leksah
cabal update
cabal install alex happy
cabal install haskell-gi
echo 'Shell is '"$SHELL"
echo 'With PATH='`"$SHELL" -c 'echo "$PATH"'`
Make sure ~/.cabal/bin
is present in PATH of your $SHELL (Windows: Make sure %APPDATA%\cabal\bin
is present in PATH).
To add cabal path to $SHELL automatically:
# construct conf filename of shell
conf_file=~'/.'`basename "$SHELL"`'rc'
# directory to add
add_dir="$HOME"'/.cabal/bin'
# run "$SHELL" get its "$PATH"
old_PATH=`"$SHELL" -c 'echo "$PATH"'`
# add directory to PATH
new_PATH="$old_PATH"':'"$add_dir"
# make change of value in config file
sed -i 's;'"$old_PATH"';'"$new_PATH"';' "$conf_file"
XDG_DATA_DIRS=/opt/local/share ./leksah.sh
./leksah.sh
stack setup --upgrade-cabal
stack install alex happy
stack install haskell-gi
stack install gtk2hs-buildtools
stack install --stack-yaml stack.osx.yaml
stack exec leksah
stack install
stack exec leksah