waf-ghc
=======
``waf-ghc`` allows compiling directly with the
`Glasgow Haskell Compiler `_ (GHC)
from the build framework `waf `_,
without having to rely on Cabal. This allows easily integration
with the rest of the toolchain in multi-language projects.
Download
--------
`ghc.py `_
Install
-------
To use, just copy `ghc.py`_ in your project source directory, and make
it accessible to waf.
.. code:: python
def options(opt):
opt.load('ghc', tooldir='share/waf-tools')
You can specify packages to be searched for, in order for their
compiler options to be added to specific use variables.
.. code:: python
def configure(conf):
conf.ghc_pkgs = 'repa'
conf.load('ghc')
Finally, build your objects or program in the familiar way. Make
sure to add the use variables for your Haskell packages, *and*
duplicate that list in the ``packages`` field. The former being used
by the standard linker, the latter by the Haskell compiler to build
the objects.
.. code:: python
def build(bld):
bld.program(source = bld.path.ant_glob('src/*.cc src/*.hs'),
target = myprogram,
ghcflags = ['-rtsopts', '-O2'],
uselib = 'QT5QUICK REPA',
packages = 'repa')
Yeah, that’s three times the same variables inputted everywhere, so
you could enhance it for sure.
Have fun!
News
----
2014-03-19 Initial release under the `simplified BSD license `_.