Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/d4f63012bfa09c15f1ca9bc7aba373aeb3dac419 >--------------------------------------------------------------- commit d4f63012bfa09c15f1ca9bc7aba373aeb3dac419 Author: Thomas Tuegel <[email protected]> Date: Mon Apr 18 11:05:29 2011 +0000 Install phase pulls in test suite dependencies when necessary. >--------------------------------------------------------------- cabal-install/Distribution/Client/Install.hs | 21 +++++++++++++++++---- 1 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs index 0e05502..f678ee9 100644 --- a/cabal-install/Distribution/Client/Install.hs +++ b/cabal-install/Distribution/Client/Install.hs @@ -100,9 +100,9 @@ import Distribution.Package , Dependency(..), thisPackageVersion ) import qualified Distribution.PackageDescription as PackageDescription import Distribution.PackageDescription - ( PackageDescription ) + ( PackageDescription, GenericPackageDescription(..), TestSuite(..) ) import Distribution.PackageDescription.Configuration - ( finalizePackageDescription ) + ( finalizePackageDescription, mapTreeData ) import Distribution.Version ( Version, anyVersion, thisVersion ) import Distribution.Simple.Utils as Utils @@ -249,11 +249,24 @@ 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. + pkgSpecifiers' = map enableTests pkgSpecifiers + testsEnabled = fromFlagOrDefault False $ configTests configFlags + enableTests (SpecificSourcePackage pkg) = + let pkgDescr = Source.packageDescription pkg + suites = condTestSuites pkgDescr + enable = mapTreeData (\t -> t { testEnabled = testsEnabled }) + in SpecificSourcePackage $ pkg { Source.packageDescription = pkgDescr + { condTestSuites = map (\(n, t) -> (n, enable t)) suites } } + enableTests 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
