X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=libraries%2FinstallPackage.hs;h=01bde4732304f9a8ff222c365f697c33c1671f4f;hb=8fa821cd48cdf0a265df8915e4330d3b6fb9e6a3;hp=451fda1046f77a6d62df2595368040f5e1c6595f;hpb=b18545dd4fc38d2c78d18966d1d9e38474c799e9;p=ghc-hetmet.git diff --git a/libraries/installPackage.hs b/libraries/installPackage.hs index 451fda1..01bde47 100644 --- a/libraries/installPackage.hs +++ b/libraries/installPackage.hs @@ -5,6 +5,7 @@ import Distribution.Simple.Configure import Distribution.Simple.LocalBuildInfo import Distribution.Simple.Program import Distribution.Simple.Setup +import Distribution.Simple.Utils import Distribution.Verbosity import System.Environment @@ -36,12 +37,12 @@ doit destdir pref idatadir idocdir ghcpkg ghcpkgconf verbosity = copyVerbose = verbosity } registerFlags = emptyRegisterFlags { - regUser = MaybeUserGlobal, + regPackageDB = Just GlobalPackageDB, regVerbose = verbosity, regGenScript = False, regInPlace = False } - lbi <- getPersistBuildConfig + lbi <- getConfig verbosity let pd = localPkgDescr lbi i = installDirTemplates lbi -- XXX This is an almighty hack, shadowing the base @@ -84,3 +85,15 @@ doit destdir pref idatadir idocdir ghcpkg ghcpkgconf verbosity = (regHook simpleUserHooks) pd_reg lbi_reg userHooks registerFlags return () +-- Get the build info, merging the setup-config and buildinfo files. +getConfig :: Verbosity -> IO LocalBuildInfo +getConfig verbosity = do + lbi <- getPersistBuildConfig + maybe_infoFile <- defaultHookedPackageDesc + case maybe_infoFile of + Nothing -> return lbi + Just infoFile -> do + hbi <- readHookedBuildInfo verbosity infoFile + return lbi { localPkgDescr = updatePackageDescription hbi (localPkgDescr lbi)} + +