[Hackage] #342: Allow automatic resolving of conditionals on more than just build-depends

Hackage trac at galois.com
Mon Aug 25 08:59:35 EDT 2008


#342: Allow automatic resolving of conditionals on more than just build-depends
-----------------------------+----------------------------------------------
  Reporter:  duncan          |        Owner:       
      Type:  enhancement     |       Status:  new  
  Priority:  normal          |    Milestone:       
 Component:  Cabal library   |      Version:  HEAD 
  Severity:  normal          |     Keywords:       
Difficulty:  hard (< 1 day)  |   Ghcversion:  6.8.2
  Platform:                  |  
-----------------------------+----------------------------------------------
 We have several classes of dependency that we can express in .cabal files.
 The most obvious is other Haskell packages via the `build-depends` field.
 The others are:
  * C libs (`extra-libraries`)
  * C headers (`includes`)
  * other build tools (`build-tools`)
  * pkg-config packages (`pkgconfig-depends`)
  * MacOS X frameworks (`frameworks`)

 And we may end up with more, like Windows assemblies.

 If we know (by domain-specific means) what dependencies are available then
 we should be able to automatically resolve flag conditions that depend on
 them.

 So each one is it's own namespace and they have different representations
 of keys. Most use a name and some a version too.

 Currently `finalizePackageDescription` takes a `Maybe (PackageSet pkg)` as
 a way of testing if deps are available. We should generalise this to a dep
 testing function (which is essentially what `finalizePackageDescription`
 turns it into internally) on a type that has alternatives for each of the
 dependency namespaces. If we only had to generalise it for package
 constraints we might go for `Dependency -> [PackageId]` but how should we
 do it when we have multiple namespaces and some require version
 constraints and others do not.

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


More information about the cabal-devel mailing list