Giter Club home page Giter Club logo

leksah's Introduction

Leksah, an Integrated Development Environment for Haskell

Build Status Hackage

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.

Getting Leksah

Leksah requires you have ghc >= 7.10.3 and cabal-install >= 1.24 installed

Alternatively, you can build Leksah from source

Installing from Hackage

Building on Linux

Install the GtkSourceView and WebKitGtk development packages for your distribution:

sudo apt-get install libgtksourceview-3.0-dev libwebkitgtk-3.0-dev

Make sure $HOME/.cabal/bin is in your PATH then:

cabal update
cabal install Cabal cabal-install
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building on OS X

Install MacPorts.

Make sure /opt/local/bin and $HOME/Libraries/Haskell/bin are in your PATH.

To avoid a dependency on X11 add the following to /opt/local/etc/macports/variants.conf:

-x11 +no_x11 +quartz +gtk3

Use MacPorts to install python27 and rsync (sometimes it stops to ask for these to be activated so if you do them first it might help):

sudo port install python27 rsync

Use MacPorts to install GHC and the C libraries needed by Leksah (this will take a long time):

sudo port install ghc gtk3 webkit-gtk3 gtksourceview3 gtk-osx-application-gtk3 adwaita-icon-theme

Update Cabal and cabal-install

cabal update
cabal install Cabal cabal-install

Make sure the right cabal made it into your PATH.

cabal --version

Check that the versions match the ones you just installed (if not check the symbolic links in $HOME/Libraries/Haskell/bin).

Install gtk2hs-buildtools and leksah:

cabal install regex-tdfa-text --ghc-options=-XFlexibleContexts
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building on Windows

Install GHC.

Update MinGW if necessary. The GHC installers currently come with old versions of MinGW and you will probably need to replace it with one that comes with gcc 4.8.1. The current 64bit GHC installer seems to be happy to work with newer MinGW. It may not be possible to use the current 32bit GHC installers at all. Make sure you replace MinGW so that GHC will find the new one (just adding it to the PATH will not work). The MinGW used by GHC is typically in a location like C:\Program Files\MinGHC-7.10.1\ghc-7.10.1\mingw. Move it out of the way and put a newer one in its place.

MinGW version used to build the Leksah binaries

Install the C libraries needed by Leksah. The easiest way to do this is to install Leksah using the MSI files. They include pkg-config and all the C libraries needed.

Make sure C:\Leksah\bin and %APPDATA%\cabal\bin are in your PATH and build:

cabal update
cabal install Cabal
cabal install alex happy
cabal install gtk2hs-buildtools
cabal install leksah
leksah

Building from source

Requirements: ghc >= 7.10.3, cabal-install >= 1.24

We have just 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.

Step 1. Install the following C libraries (for Windows and OS X, see the Hackage build instructions)

Fedora Ubuntu
gobject-introspection-devel libgirepository1.0-dev
webkitgtk3-devel libwebkitgtk-3.0-dev
gtksourceview3-devel libgtksourceview-3.0-dev

Step 2: Install tools

cabal install alex happy haskell-gi

(make sure ~/.cabal/bin is in PATH)

Step 3: Clone the repo

git clone https://github.com/leksah/leksah.git
cd leksah
git submodule update --init

Step 4: Install Leksah

cabal new-build

Step 5: Run leksah

leksah_datadir=`pwd` dist-newstyle/build/leksah-0.16.0.0/build/leksah/leksah

(the Cabal library has to be installed seperately because of a cabal bug

On OS X using MacPorts you may need to set XDG_DATA_DIRS like this:

XDG_DATA_DIRS=/opt/local/share cabal install ./ ./vendor/gi-gtk-hs ./vendor/ltk ./vendor/leksah-server ./vendor/haskellVCSGUI/vcsgui

Using stack build instead of cabal new-build

** NOTE : This is currently not working. If you can make it work let us know. **

Do Step 1 and Step 2 as above, then

Step 4: Install Leksah

cabal install gtk2hs-buildtools
cabal install ./vendor/haskell-gi ./vendor/haskell-gi-base
stack build

Step 5: Run leksah

**TODO add path to path to leksah executable**

Building Leksah for Windows using Docker

It may seem crazy, but this is currently the best way to bootstrap Leksah for Windows from source. This is mostly because Fedora and SUSE have a much more complete set of MinGW packages than any thing else (including Windows).

Get the leksah source:

git clone https://github.com/leksah/leksah
cd leksah
git submodule update --init

Get the Fedora 23 docker image and load it:

wget https://download.fedoraproject.org/pub/fedora/linux/releases/23/Docker/x86_64/Fedora-Docker-Base-23-20151030.x86_64.tar.xz
sudo docker load -i Fedora-Docker-Base-23-20151030.x86_64.tar.xz

Build Leksah using the Dockerfile:

sudo docker build -t leksah/build .

Copy the resulting msi file out of the container (version number in the file name will match the one in the leksah.cabal file):

sudo docker run --rm --volume $HOME/output:/output leksah/build cp /leksah/win32/leksah-0.16.0.0-ghc-7.10.3.msi /output

leksah's People

Contributors

hamishmack avatar jutaro avatar jaccokrijnen avatar haja avatar sannysanoff avatar frsoares avatar jpmoresmau avatar lakshminaras2002 avatar 573 avatar juhp avatar threestrikes avatar philipperlacher avatar cocreature avatar snoyberg avatar markwright avatar wuzixiao avatar kostmo avatar julianleviston avatar nightra avatar ianbollinger avatar hostilefork avatar dtrebbien avatar chrislane avatar beerendlauwers avatar

Watchers

James Cloos avatar abtz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.