[Hackage] #326: Cabal should support Cabal-version-dependent Setup.hs

Hackage trac at galois.com
Mon Aug 18 14:08:34 EDT 2008


#326: Cabal should support Cabal-version-dependent Setup.hs
----------------------------+-----------------------------------------------
  Reporter:  claus          |        Owner:         
      Type:  enhancement    |       Status:  new    
  Priority:  normal         |    Milestone:         
 Component:  Cabal library  |      Version:  1.2.3.0
  Severity:  normal         |   Resolution:         
  Keywords:                 |   Difficulty:  normal 
Ghcversion:  6.8.2          |     Platform:         
----------------------------+-----------------------------------------------
Comment (by claus):

 Ah, I see - the macros are only temporarily available while building. I
 had assumed that Cabal would generate them permanently for each package,
 so that not only cabal-install could profit from them.

 A CABAL_VERSION macro could just as well be part of the cabal package,
 without auto-generation, but if cabal doesn't have an include directory
 yet, I certainly don't insist on a CPP-based solution, as long as we can
 find something else.

 What about the other suggestion? Standardise a format for including the
 Cabal-version in the `Setup` file name, and make cabal-install select the
 right one (that is something even users might manage to do manually, but
 it'd be nice if automated scripts could handle it as well).

 One could even code that up in Haskell, at the expense of interpreting
 `Setup-<version>`. However, Cabal should provide that code, and check that
 the required versions exist, just as it ought to provide a default `Setup`
 for build-type `Simple`.

 {{{
 -- sketch of Cabal-version-dependent Setup:
 -- get Cabal version
 -- execute Setup-<version>
 }}}

 No CPP, and it can be started without changing Cabal, just standardizing
 the file name format. Since it is unlikely that the code for getting the
 Cabal version or for executing processes is going to be stable for long,
 such a `Setup.hs` file should really come with Cabal, for a build-type
 Setup-select or something, hiding the implementation details.

-- 
Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/326#comment:6>
Hackage <http://haskell.org/cabal/>
Hackage: Cabal and related projects


More information about the cabal-devel mailing list