Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/6e93fe64e61c1f18ba5a08baccd3495dd54078b4

>---------------------------------------------------------------

commit 6e93fe64e61c1f18ba5a08baccd3495dd54078b4
Author: Johan Tibell <[email protected]>
Date:   Wed Oct 12 21:00:35 2011 +0000

    Install phase pulls in benchmark dependencies when necessary

>---------------------------------------------------------------

 cabal-install/Distribution/Client/Install.hs |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/cabal-install/Distribution/Client/Install.hs 
b/cabal-install/Distribution/Client/Install.hs
index f678ee9..626089c 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -100,7 +100,8 @@ import Distribution.Package
          , Dependency(..), thisPackageVersion )
 import qualified Distribution.PackageDescription as PackageDescription
 import Distribution.PackageDescription
-         ( PackageDescription, GenericPackageDescription(..), TestSuite(..) )
+         ( Benchmark(..), PackageDescription, GenericPackageDescription(..)
+         , TestSuite(..) )
 import Distribution.PackageDescription.Configuration
          ( finalizePackageDescription, mapTreeData )
 import Distribution.Version
@@ -249,11 +250,11 @@ planPackages comp configFlags configExFlags installFlags
           [ PackageConstraintFlags (pkgSpecifierTarget pkgSpecifier) flags
           | let flags = configConfigurationsFlags configFlags
           , not (null flags)
-          , pkgSpecifier <- pkgSpecifiers' ]
+          , pkgSpecifier <- pkgSpecifiers'' ]
 
       . (if reinstall then reinstallTargets else id)
 
-      $ standardInstallPolicy installedPkgIndex sourcePkgDb pkgSpecifiers'
+      $ standardInstallPolicy installedPkgIndex sourcePkgDb pkgSpecifiers''
 
     -- Mark test suites as enabled if invoked with '--enable-tests'. This
     -- ensures that test suite dependencies are included.
@@ -267,6 +268,18 @@ planPackages comp configFlags configExFlags installFlags
             { condTestSuites = map (\(n, t) -> (n, enable t)) suites } }
     enableTests x = x
 
+    -- Mark benchmarks as enabled if invoked with
+    -- '--enable-benchmarks'. This ensures that benchmark dependencies
+    -- are included.
+    pkgSpecifiers'' = map enableBenchmarks pkgSpecifiers'
+    benchmarksEnabled = fromFlagOrDefault False $ configBenchmarks configFlags
+    enableBenchmarks (SpecificSourcePackage pkg) =
+        let pkgDescr = Source.packageDescription pkg
+            bms = condBenchmarks pkgDescr
+            enable = mapTreeData (\t -> t { benchmarkEnabled = 
benchmarksEnabled })
+        in SpecificSourcePackage $ pkg { Source.packageDescription = pkgDescr
+            { condBenchmarks = map (\(n, t) -> (n, enable t)) bms } }
+    enableBenchmarks x = x
 
     --TODO: this is a general feature and should be moved to D.C.Dependency
     -- Also, the InstallPlan.remove should return info more precise to the



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to