[Haskell-cafe] Cabal and Strings and CPP
Duncan Coutts
duncan.coutts at worc.ox.ac.uk
Mon Jul 28 18:54:38 EDT 2008
On Mon, 2008-07-28 at 15:02 -0700, Philip Weaver wrote:
> However, passing the same CPP definition via cabal does not work.
>
> runhaskell Setup.hs build --ghc-options=-DFOO="\"hello world\""
>
> runhaskell Setup.hs build --ghc-options=-DFOO='"hello world"'
>
> With either of these commands, I get the same error message as above.
> This is understandable, since cabal has to evaluate the string before
> sending it to GHC, so I lose my escaped quotes.
Cabal has both --prog-option= and --prog-options=. The latter tokenises
the options and passes them as separate flags (like what the shell
does), the former passes the whole arg as one option.
So you want to use:
cabal build --ghc-option=-DFOO="\"hello world\""
When you want to put this in the .cabal file, use cpp-options (not
ghc-options) and you can use Haskell String syntax for options that
contain spaces.
Duncan
More information about the Haskell-Cafe
mailing list