diff options
author | Paolo Capriotti <p.capriotti@gmail.com> | 2012-05-07 17:45:00 +0100 |
---|---|---|
committer | Paolo Capriotti <p.capriotti@gmail.com> | 2012-05-07 23:24:58 +0100 |
commit | 4614cf66198681734b0598668f84fb7cbcaf7fa9 (patch) | |
tree | 063cbfa93d6cdc9ac08f080e72a32d2de0e88010 /utils | |
parent | fdc19e6413a85e5d58a14c0a6d31701b9c902fb6 (diff) | |
download | haskell-4614cf66198681734b0598668f84fb7cbcaf7fa9.tar.gz |
Adapt to changes in Cabal.
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ghc-cabal/Main.hs | 44 | ||||
-rw-r--r-- | utils/ghctags/Main.hs | 12 |
2 files changed, 22 insertions, 34 deletions
diff --git a/utils/ghc-cabal/Main.hs b/utils/ghc-cabal/Main.hs index 75d1faf9bf..c24f127422 100644 --- a/utils/ghc-cabal/Main.hs +++ b/utils/ghc-cabal/Main.hs @@ -19,6 +19,7 @@ import Distribution.Verbosity import qualified Distribution.InstalledPackageInfo as Installed import qualified Distribution.Simple.PackageIndex as PackageIndex +import Control.Monad import Data.List import Data.Maybe import System.IO @@ -184,36 +185,20 @@ doInstall ghc ghcpkg strip topdir directory distDir htmldir = toPathTemplate "$docdir" } progs = withPrograms lbi - ghcProg = ConfiguredProgram { - programId = programName ghcProgram, - programVersion = Nothing, - programDefaultArgs = ["-B" ++ topdir], - programOverrideArgs = [], - programLocation = UserSpecified ghc - } ghcpkgconf = topdir </> "package.conf.d" - ghcPkgProg = ConfiguredProgram { - programId = programName ghcPkgProgram, - programVersion = Nothing, - programDefaultArgs = ["--global-conf", - ghcpkgconf] - ++ if not (null myDestDir) - then ["--force"] - else [], - programOverrideArgs = [], - programLocation = UserSpecified ghcpkg - } - stripProg = ConfiguredProgram { - programId = programName stripProgram, - programVersion = Nothing, - programDefaultArgs = [], - programOverrideArgs = [], - programLocation = UserSpecified strip - } - progs' = updateProgram ghcProg - $ updateProgram ghcPkgProg - $ updateProgram stripProg - progs + ghcProgram' = ghcProgram { + programPostConf = \_ _ -> return ["-B" ++ topdir], + programFindLocation = \_ -> return (Just ghc) } + ghcPkgProgram' = ghcPkgProgram { + programPostConf = \_ _ -> return $ ["--global-conf", ghcpkgconf] + ++ ["--force" | not (null myDestDir) ], + programFindLocation = \_ -> return (Just ghcpkg) } + stripProgram' = stripProgram { + programFindLocation = \_ -> return (Just strip) } + configurePrograms ps conf = foldM (flip (configureProgram verbosity)) conf ps + + progs' <- configurePrograms [ghcProgram', ghcPkgProgram', stripProgram'] progs + let Just ghcPkgProg = lookupProgram ghcPkgProgram' progs' instInfos <- dump verbosity ghcPkgProg GlobalPackageDB let installedPkgs' = PackageIndex.fromList instInfos let mlc = libraryConfig lbi @@ -404,4 +389,3 @@ generate config_args distdir directory | otherwise = return ("\'" ++ s ++ "\'") boolToYesNo True = "YES" boolToYesNo False = "NO" - diff --git a/utils/ghctags/Main.hs b/utils/ghctags/Main.hs index ea3300c66a..f63e039f39 100644 --- a/utils/ghctags/Main.hs +++ b/utils/ghctags/Main.hs @@ -19,10 +19,13 @@ import MonadUtils ( liftIO ) import SrcLoc -- Every GHC comes with Cabal anyways, so this is not a bad new dependency -import Distribution.Simple.GHC ( ghcOptions ) +import Distribution.Simple.GHC ( componentGhcOptions ) import Distribution.Simple.Configure ( getPersistBuildConfig ) +import Distribution.Simple.Compiler ( compilerVersion ) +import Distribution.Simple.Program.GHC ( renderGhcOptions ) import Distribution.PackageDescription ( library, libBuildInfo ) -import Distribution.Simple.LocalBuildInfo ( localPkgDescr, buildDir, libraryConfig ) +import Distribution.Simple.LocalBuildInfo ( localPkgDescr, buildDir, libraryConfig, compiler ) +import qualified Distribution.Verbosity as V import Control.Monad hiding (mapM) import System.Environment @@ -184,8 +187,9 @@ flagsFromCabal distPref = do (Just lib, Just clbi) -> let bi = libBuildInfo lib odir = buildDir lbi - opts = ghcOptions lbi bi clbi odir - in return opts + opts = componentGhcOptions V.normal lbi bi clbi odir + version = compilerVersion (compiler lbi) + in return $ renderGhcOptions version opts _ -> error "no library" ---------------------------------------------------------------- |