issue with cabal behavior with a custom Setup.hs
Thomas Lippincott
tom.lippincott at gmail.com
Mon Nov 30 00:53:33 UTC 2015
Hmmm, it does appear to aim at a very similar goal, but that branch only
builds with old cabal versions, and even though I've made my code
override the same functions, it still doesn't expose the
dynamically-generated modules on normal import, only on "cabal repl".
But I also noticed that "cabal repl" also exposes all the hidden
modules, so maybe that isn't a good indication...anyways, I'm stumped
for the moment on why modifying the exposed modules list at the confHook
stage doesn't get propagated to the later stages. Like I said, the
modules do get compiled, just not exposed.
-Tom
On 11/28/2015 11:14 AM, Adam Bergmark wrote:
> I believe this does the same thing as what you want:
> https://github.com/hvr/base-noprelude/blob/pre-ghc710/Setup.hs
>
> HTH,
> Adam
>
>
> On Sat, Nov 28, 2015 at 4:23 PM, Thomas Lippincott
> <tom.lippincott at gmail.com <mailto:tom.lippincott at gmail.com>> wrote:
>
> Hello,
>
> I'm seeing what I think is some strange (or at least, non-intuitive)
> behavior in a custom package, and was wondering if someone could
> point me in the right direction. Basically, I need the build
> process to generate some additional exposed modules, i.e. add them
> to the "exposed-modules" variable, and create the corresponding
> source files. It's easy to get the list of modules and produce the
> source files at any point in the build process (I know this is a
> questionable design, trying to do this as part of Cabal, but suffice
> it to say there are good arguments on both sides for our particular
> situation).
>
> I'm *so* close to having it working perfectly: in fact, if I run
> "cabal repl", I get a shell with all the right modules compiled and
> exposed, so, it should work the same way if it's installed and
> imported in ghci, right? Well, when I do that, the auto-generated
> modules are *not* exposed. It's clearly generating the source files
> and compiling them, maybe "cabal install" isn't getting the updated
> module list or something? Here's what I'm doing:
>
> I override "confHook" to call the original configure function, but
> then get the list of auto-generated modules and add them to the
> exposedModules field in the Library structure nested in the
> LocalBuildInfo structure before returning it. The idea is that I've
> intercepted the list of exposed modules as early as possible, and so
> it's as though the Cabal file had the auto-generated modules listed
> from the start. I generate the actual source files by overriding
> "preBuild". Nothing else is modified from the default simpleUserHooks.
>
> This probably isn't the place for "how do I..." questions, so I'll
> frame it as: why would "cabal repl" work, and "cabal install" and
> ghci+import not work? I apologize if this is an inappropriate place
> to ask, but there aren't exactly a ton of Cabal experts floating around!
>
> Thanks for any help,
>
> -Tom
> _______________________________________________
> cabal-devel mailing list
> cabal-devel at haskell.org <mailto:cabal-devel at haskell.org>
> http://mail.haskell.org/cgi-bin/mailman/listinfo/cabal-devel
>
>
More information about the cabal-devel
mailing list