Hi,

On 21 April 2014 13:47, Daniel Trstenjak <daniel.trsten...@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.
_______________________________________________
cabal-devel mailing list
cabal-devel@haskell.org
http://www.haskell.org/mailman/listinfo/cabal-devel

Reply via email to