diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs index 8ce48b0abbaa0c15ea0d0b72456fcbb8134ae6ce..ae73b78b703c3719c4616bbfa019c9fe1244afb8 100644 --- a/cabal-install/Distribution/Client/Sandbox.hs +++ b/cabal-install/Distribution/Client/Sandbox.hs @@ -76,9 +76,9 @@ import Distribution.Simple.Program ( ProgramConfiguration ) import Distribution.Simple.Setup ( Flag(..) , fromFlag, fromFlagOrDefault ) import Distribution.Simple.SrcDist ( prepareTree ) -import Distribution.Simple.Utils ( die, debug, notice, info +import Distribution.Simple.Utils ( die, debug, notice, info, warn , debugNoWrap, defaultPackageDesc - , intercalate + , intercalate, topHandlerWith , createDirectoryIfMissingVerbose ) import Distribution.Package ( Package(..) ) import Distribution.System ( Platform ) @@ -476,7 +476,7 @@ reinstallAddSourceDeps :: Verbosity -> FilePath -> IO WereDepsReinstalled reinstallAddSourceDeps verbosity config configFlags' configExFlags - installFlags globalFlags sandboxDir = do + installFlags globalFlags sandboxDir = topHandler' $ do let configFlags = configFlags' { configDistPref = Flag (sandboxBuildDir sandboxDir) } indexFile <- tryGetIndexFilePath config @@ -531,6 +531,13 @@ reinstallAddSourceDeps verbosity config configFlags' configExFlags readIORef retVal + where + topHandler' = topHandlerWith $ \_ -> do + warn verbosity "Couldn't reinstall some add-source dependencies." + -- Here we can't know whether any deps have been reinstalled, so we have + -- to be conservative. + return ReinstalledSomeDeps + -- | Check if a sandbox is present and call @reinstallAddSourceDeps@ in that -- case. maybeReinstallAddSourceDeps :: Verbosity