[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