From: David Waern Date: Sun, 9 Dec 2007 17:39:31 +0000 (+0000) Subject: Add GHC.Prim to exposedModules in the Haddock 0.x hook X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=87a001fd7b68b985e69ba4475fb135453e13428b;p=ghc-base.git Add GHC.Prim to exposedModules in the Haddock 0.x hook Please merge to the stable branch --- diff --git a/Setup.hs b/Setup.hs index 2ad48a4..30d4af1 100644 --- a/Setup.hs +++ b/Setup.hs @@ -11,6 +11,8 @@ import Distribution.PackageDescription import Distribution.Simple import Distribution.Simple.LocalBuildInfo import Distribution.Simple.Utils +import Distribution.Simple.Program +import Distribution.Version import System.Cmd import System.FilePath import System.Exit @@ -24,7 +26,8 @@ main = do let hooks = defaultUserHooks { makefileHook = build_primitive_sources $ makefileHook defaultUserHooks, haddockHook = build_primitive_sources - $ haddockHook defaultUserHooks } + $ add_prim + $ haddockHook defaultUserHooks } defaultMainWithHooks hooks type Hook a = PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO () @@ -48,6 +51,23 @@ build_primitive_sources f pd lbi uhs x maybeUpdateFile primopwrappers_tmp primopwrappers f pd lbi uhs x +add_prim_to_pd pd = pd { library = Just lib' } + where + lib' = case library pd of + Just lib -> lib { exposedModules = "GHC.Prim" : exposedModules lib } + Nothing -> error "Expected a library" + +add_prim :: Hook a -> Hook a +add_prim f pd lbi uhs x = do + let mbHaddockProg = lookupProgram haddockProgram (withPrograms lbi) + case mbHaddockProg of + Nothing -> f pd lbi uhs x + Just haddockProg -> do + let + Just version = programVersion haddockProg + pd' = if version < Version [2,0] [] then add_prim_to_pd pd else pd + f pd' lbi uhs x + -- Replace a file only if the new version is different from the old. -- This prevents make from doing unnecessary work after we run 'setup makefile' maybeUpdateFile :: FilePath -> FilePath -> IO ()