GenericPackageDescription and 'build-depends' field
Mikhail Glushenkov
the.dead.shall.rise at gmail.com
Thu Apr 24 14:27:34 UTC 2014
Hi,
On 21 April 2014 13:47, Daniel Trstenjak <daniel.trstenjak at gmail.com> wrote:
>
> On Thu, Apr 10, 2014 at 03:10:32AM +0200, Mikhail Glushenkov wrote:
>> IIRC it's what condtrees get simplified to after finalizePackageDescription.
>
> What's the reason for this?
Condtrees represent conditional blocks in the .cabal file. Example:
if impl(ghc):
build-depends: a, b, c
...
If we know the flag assignment, we can simplify them. This is what
finalizePackageDescription does.
> Because it makes it a bit awkward to handle the different sections
> (library/executable/testsuite/benchmark) respectively their BuildInfos
> in a generic way.
If your function needs to work on GenericPackageDescriptions, you'll
have to traverse condtrees, like I do here:
https://github.com/haskell/cabal/blob/master/cabal-install/Distribution/Client/Dependency.hs#L346
If you only work with finalized PackageDescriptions, you can get away
with looking only at buildInfos.
More information about the cabal-devel
mailing list