cabal: question on compiling build prerequisites
Peter Selinger
selinger at mathstat.dal.ca
Sat Dec 7 03:31:51 UTC 2013
This may be a silly question, but I can't seem to find the answer in
the documentation.
I would like to create a Cabal package where some of the source files
use a custom pre-processor. The pre-processor is itself a Haskell
program, let's say MyPreProc.hs in the package's root directory.
I figured out how to activate the preprocessor, for example,
cabal build --ghc-options="-F -pgmF ./MyPreProc"
I also figured out how to achieve the same effect using hooks.
However, there is one problem: how can I tell cabal to actually
compile MyPreProc.hs before any of the commands using the preprocessor
are run? The package's Setup.hs file is automatically compiled during
"cabal configure". I would like MyPreProc.hs to be compiled at the
same time as well - or at least some time before the proprocessor
needs to be used.
The .cabal file contains all kinds of related variables, such as
"build-depends" (but only packages can be listed here, not programs to
be compiled), "other-modules" (but these modules would already require
the pre-processor, so the pre-processor should be compiled first),
"build-tools" (but this only refers to external programs).
My current solution is to make the pre-processor a shell script,
rather than a Haskell program. But this is ugly and not portable
(won't work in Windows, for example).
To clarify: my custom preprocessor is local to this package. It has no
independent value, so it would not make sense to publish it as a
separate package just so that I can add it to build-depends.
Is there a known solution to this problem?
Thanks, -- Peter
More information about the Libraries
mailing list