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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/b5895075daf068832576082b0f96d4f053c301eb

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

commit b5895075daf068832576082b0f96d4f053c301eb
Author: Duncan Coutts <[email protected]>
Date:   Tue Dec 16 23:50:32 2008 +0000

    Implement cabal install --constraint=
    Connect up the existing user interface with the new dep resolver api.

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

 cabal-install/Distribution/Client/Install.hs |   28 ++++++++++++++++---------
 1 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/cabal-install/Distribution/Client/Install.hs 
b/cabal-install/Distribution/Client/Install.hs
index ac0210e..0437a49 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -130,16 +130,16 @@ install verbosity packageDB repos comp conf configFlags 
installFlags deps =
     planner :: Planner
     planner | null deps = planLocalPackage verbosity comp configFlags
             | otherwise = planRepoPackages PreferLatestForSelected
-                            comp installFlags deps
+                            comp configFlags installFlags deps
 
 upgrade verbosity packageDB repos comp conf configFlags installFlags deps =
   installWithPlanner planner
         verbosity packageDB repos comp conf configFlags installFlags
   where
     planner :: Planner
-    planner | null deps = planUpgradePackages comp
+    planner | null deps = planUpgradePackages comp configFlags
             | otherwise = planRepoPackages PreferAllLatest
-                            comp installFlags deps
+                            comp configFlags installFlags deps
 
 type Planner = Maybe (PackageIndex InstalledPackageInfo)
             -> AvailablePackageDb
@@ -285,6 +285,8 @@ planLocalPackage verbosity comp configFlags installed
                        (ThisVersion (packageVersion pkg))
                     ,PackageFlagsConstraint   (packageName pkg)
                        (Cabal.configConfigurationsFlags configFlags)]
+                 ++ [ PackageVersionConstraint name ver
+                    | Dependency name ver <- Cabal.configConstraints 
configFlags ]
 
   return $ resolveDependenciesWithProgress buildPlatform (compilerId comp)
              installed' available'
@@ -293,27 +295,31 @@ planLocalPackage verbosity comp configFlags installed
 
 -- | Make an 'InstallPlan' for the given dependencies.
 --
-planRepoPackages :: PackagesInstalledPreference -> Compiler -> InstallFlags
+planRepoPackages :: PackagesInstalledPreference -> Compiler
+                 -> Cabal.ConfigFlags -> InstallFlags
                  -> [UnresolvedDependency] -> Planner
-planRepoPackages installedPref comp installFlags deps installed
+planRepoPackages installedPref comp configFlags installFlags deps installed
   (AvailablePackageDb available versionPrefs) = do
   deps' <- IndexUtils.disambiguateDependencies available deps
   let installed'
         | Cabal.fromFlagOrDefault False (installReinstall installFlags)
                     = fmap (hideGivenDeps deps') installed
         | otherwise = installed
+      targets     = dependencyTargets deps'
+      constraints = dependencyConstraints deps'
+                 ++ [ PackageVersionConstraint name ver
+                    | Dependency name ver <- Cabal.configConstraints 
configFlags ]
   return $ resolveDependenciesWithProgress buildPlatform (compilerId comp)
              installed' available
              (packagesPreference installedPref versionPrefs)
-             (dependencyConstraints deps')
-             (dependencyTargets deps')
+             constraints targets
   where
     hideGivenDeps pkgs index =
       foldr PackageIndex.deletePackageName index
         [ name | UnresolvedDependency (Dependency name _) _ <- pkgs ]
 
-planUpgradePackages :: Compiler -> Planner
-planUpgradePackages comp (Just installed)
+planUpgradePackages :: Compiler -> Cabal.ConfigFlags -> Planner
+planUpgradePackages comp configFlags (Just installed)
   (AvailablePackageDb available versionPrefs) = return $
   resolveDependenciesWithProgress buildPlatform (compilerId comp)
     (Just installed) available
@@ -323,9 +329,11 @@ planUpgradePackages comp (Just installed)
     deps        = upgradableDependencies installed available
     constraints = [ PackageVersionConstraint name ver
                   | Dependency name ver <- deps ]
+               ++ [ PackageVersionConstraint name ver
+                  | Dependency name ver <- Cabal.configConstraints configFlags 
]
     targets     = [ name | Dependency name _ <- deps ]
 
-planUpgradePackages comp _ _ =
+planUpgradePackages comp _ _ _ =
   die $ display (compilerId comp)
      ++ " does not track installed packages so cabal cannot figure out what"
      ++ " packages need to be upgraded."



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

Reply via email to