Cabal --builddir

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Wed Feb 25 07:59:58 EST 2009


On Wed, 2009-02-25 at 10:58 +0000, Neil Mitchell wrote:
> Hi Duncan,
> 
> >> i.e. cabal accepts the --builddir command, but the setup that cabal
> >> builds doesn't. Why?
> >
> > Hmm. Does your ghc-6.8 have Cabal-1.6.0.2 registered? If you built
> > Cabal-1.6.0.2 and cabal-install with ghc-6.10 but not also for 6.8 then
> > cabal-install will be forced to pick an older Cabal lib when compiling
> > Setup scripts for 6.8.
> 
> Cabal-1.6.0.2 is registered and built with ghc-6.8.3 - I installed it
> with Cabal seconds before running this example.

Did you see from the -v3 output what version it was actually using?

If you compile Setup.hs manually using -package Cabal-1.6.0.2 does the
--builddir= flag work? It should do.

> My cabal.exe comes from the hackage website, the binary you put up
> some time ago. I guess that is probably the issue.

What version is that then?

I'm interested because we've not actually worked out why the problem was
occurring.

> > Really of course we should notice this earlier and complain that we
> > cannot use this new feature while using the older lib version. We should
> > file a ticket about that. In fact the whole issue with what the Setup
> > command line must accept is a tricky issue when it comes to working with
> > custom build systems.
> 
> Meh. Custom build scripts are brittle and evil - in my particular case
> the custom build script was trivial so adding build-type:Simple fixes
> everything. However, I'd like to know (before I push a change) that
> build-type:Simple will work out the box with the Cabal that got
> installed with ghc-6.8.3.

It will.

> So that means figuring out what Cabal ghc-6.8.3 shipped with,

1.2.3.0

> and which Cabal can cope with build-type:Simple - is there any way to
> figure that out in general, and what is the answer in this specific
> case?

If you're lucky, "cabal check" will tell you that you're using features
but not specifying a high enough cabal-version: >=x.y value. Otherwise
you can consult old versions of the user guide or the source.

Duncan



More information about the cabal-devel mailing list