From ff03f4f8b4ac1b9ccd9ef93c294ac835871c349f Mon Sep 17 00:00:00 2001 From: David Waern Date: Fri, 10 Oct 2008 20:33:38 +0000 Subject: Make Haddock build with GHC 6.8.2 --- src/Haddock/GHC.hs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/Haddock/GHC.hs') diff --git a/src/Haddock/GHC.hs b/src/Haddock/GHC.hs index ff1c58e4..c53c3a83 100644 --- a/src/Haddock/GHC.hs +++ b/src/Haddock/GHC.hs @@ -30,16 +30,21 @@ import SrcLoc -- | Start a GHC session with the -haddock flag set. Also turn off -- compilation and linking. +#if __GLASGOW_HASKELL__ >= 609 startGhc :: String -> [String] -> (DynFlags -> Ghc a) -> IO a startGhc libDir flags ghcActs = do -- TODO: handle warnings? -#if __GLASGOW_HASKELL__ >= 609 (restFlags, _) <- parseStaticFlags (map noLoc flags) + runGhc (Just libDir) $ do + dynflags <- getSessionDynFlags #else +startGhc :: String -> [String] -> IO (Session, DynFlags) +startGhc libDir flags = do restFlags <- parseStaticFlags flags + session <- newSession (Just libDir) + dynflags <- getSessionDynFlags session + do #endif - runGhc (Just libDir) $ do - dynflags <- getSessionDynFlags let dynflags' = dopt_set dynflags Opt_Haddock let dynflags'' = dynflags' { hscTarget = HscAsm, @@ -47,8 +52,13 @@ startGhc libDir flags ghcActs = do ghcLink = NoLink } dynflags''' <- parseGhcFlags dynflags'' restFlags flags +#if __GLASGOW_HASKELL__ >= 609 setSessionDynFlags dynflags''' ghcActs dynflags''' +#else + setSessionDynFlags session dynflags''' + return (session, dynflags''') +#endif -- | Expose the list of packages to GHC. Then initialize GHC's package state -- cgit v1.2.3