check-pvp
Henning Thielemann
lemming at henning-thielemann.de
Sat Mar 1 15:57:56 UTC 2014
Am 28.02.2014 23:00, schrieb Roman Cheplyaka:
> * Henning Thielemann <lemming at henning-thielemann.de> [2014-02-28 22:48:59+0100]
>> Nice! Is there a recommended way to transfer CPP options from the
>> Cabal file to the CpphsOptions record?
>
> Yes, haskell-packages[2] lets you easily create a cabal-integrated
> "compiler". See the compile method[3] in particular.
>
> For an example of how this all glues together, see [4].
>
> [2]: http://hackage.haskell.org/package/haskell-packages
> [3]: http://hackage.haskell.org/package/haskell-packages-0.2.3.4/docs/Distribution-HaskellSuite-Compiler.html#v:compile
> [4]: https://github.com/haskell-suite/haskell-names/blob/master/hs-gen-iface/src/hs-gen-iface.hs#L70
Treating check-pvp as compiler driven by Cabal sounds reasonable, since
this would do all the preprocessing stuff and would also work on
tarballs etc. However the haskell-name framework seems to expect a
binary executable as compiler. According to
http://documentup.com/haskell-suite/haskell-names
I would have to design the checker as a tool that only reads modules,
not the package description, called maybe 'check-modules-pvp' and then run
$ cabal install --haskell-suite -w check-modules-pvp mypkg
My problem is: The checker needs to read the package description in
order to classify the dependency ranges. The compiler has no access to
the package description. If it tries to load the package description
manually, that will fail on tarballs.
I can also not see how I define my own command line options in the
Compiler interface.
More information about the cabal-devel
mailing list