diff options
Diffstat (limited to 'hadrian/src/Rules/Documentation.hs')
-rw-r--r-- | hadrian/src/Rules/Documentation.hs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/hadrian/src/Rules/Documentation.hs b/hadrian/src/Rules/Documentation.hs index 10a2c2ce57..89c09fb701 100644 --- a/hadrian/src/Rules/Documentation.hs +++ b/hadrian/src/Rules/Documentation.hs @@ -12,7 +12,7 @@ import Hadrian.BuildPath import Hadrian.Haskell.Cabal import Hadrian.Haskell.Cabal.Type -import Rules.Generate (ghcPrimDependencies) +import Rules.Generate (ghcPrimDependencies, generateTemplateResults) import Base import Context import Expression (getContextData, interpretInContext, (?), package) @@ -68,6 +68,12 @@ pathPath "users_guide" = "docs/users_guide" pathPath "Haddock" = "utils/haddock/doc" pathPath _ = "" +-- Generate files required to build the docs (e.g. ghc.cabal) +needDocDeps :: Action () +needDocDeps = do + -- build .cabal files used by the doc engine to list package versions + generateTemplateResults + -- | Build all documentation documentationRules :: Rules () documentationRules = do @@ -188,6 +194,9 @@ buildSphinxHtml :: FilePath -> Rules () buildSphinxHtml path = do root <- buildRootRules root -/- htmlRoot -/- path -/- "index.html" %> \file -> do + + needDocDeps + let dest = takeDirectory file rstFilesDir = pathPath path rstFiles <- getDirectoryFiles rstFilesDir ["**/*.rst"] @@ -301,6 +310,9 @@ buildSphinxPdf :: FilePath -> Rules () buildSphinxPdf path = do root <- buildRootRules root -/- pdfRoot -/- path <.> "pdf" %> \file -> do + + needDocDeps + withTempDir $ \dir -> do let rstFilesDir = pathPath path rstFiles <- getDirectoryFiles rstFilesDir ["**/*.rst"] |