[Haskell-cafe] Custom Setup.hs and Paths module

Erik de Castro Lopo mle+hs at mega-nerd.com
Wed Jul 3 03:39:03 CEST 2013

Daniel Díaz Casanueva wrote:

> Hi everyone.
> I am writing a package where I am using the Paths module that cabal
> generates automatically. After adding the Paths module to the
> "other-modules" section in my cabal file everything worked just fine, until
> I wanted to write a custom Setup.hs. This Setup.hs just writes a couple of
> files in the system and then calls "defaultMain". The thing is that now
> "cabal install" does not find the Paths module, so the package is broken.

I ran into the same problem. I ended up fixing it by *not* using the auto
generated Paths module and instead parsing the cabal file in Setup.hs.

This is not has horrible as it sounds as I used the Cabal insfrastructure
to do it. Basically something like this:

    import Distribution.Simple
    import Distribution.PackageDescription
    import Distribution.PackageDescription.Parse (readPackageDescription)
    import Distribution.Verbosity (silent)

    version <- fmap (showVersion . pkgVersion . package . packageDescription)
                    $ readPackageDescription silent "my-package.cabal"

and then used that version String to write a trivial 5 line file Version.hs.

Erik de Castro Lopo

More information about the Haskell-Cafe mailing list