Simon Marlow wrote:
Ok, spurned on by the possibiliy of worse merges to come, I've cleaned
up my current code, merged it up to date, and made it work (where "work"
means "doesn't make anything worse" - i.e. there is no new functionality
exposed to the user yet).
A little bit more about configurations. Here's what you can do with them:
(a) enable some compiler options if --enable-debug is given to 'setup configure'
configuration: debug
ghc-options: -DDEBUG -O0
configuration: !debug
ghc-options: -O2
(b) depend on HUnit if --enable-debug is given:
configuration: debug
build-depends: HUnit-1.0
(c) if the base package is <2.0, depend on fps:
configuration: package(base-any, <2.0)
build-depends: fps>=1.0
ghc-options: -DUSE_FPS
(d) build executable E only if package P is available. Actually I'm not really
sure we want this, the executable could always go in a separate package.
Anyway, if we want it, perhaps something like:
configuration: !package(P)
disable-executable: E
(e) Change dependencies depending on the operating system:
configuration: os(windows)
build-depends: Win32
configuration: !os(windows)
build-depends: unix
The conditional in a "configuration:" field has the following syntax:
cond ::= STRING
| cond || cond
| cond && cond
| !cond
| 'package'(dependency)
| 'package'(dependency, version-range)
| 'os'(STRING)
| 'arch'(STRING)
Cheers,
Simon
_______________________________________________
cabal-devel mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cabal-devel