diff options
Diffstat (limited to 'hadrian/src')
-rw-r--r-- | hadrian/src/Rules/Documentation.hs | 14 | ||||
-rw-r--r-- | hadrian/src/Rules/Generate.hs | 7 |
2 files changed, 18 insertions, 3 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"] diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs index b156c9dfdf..43f722e697 100644 --- a/hadrian/src/Rules/Generate.hs +++ b/hadrian/src/Rules/Generate.hs @@ -2,7 +2,7 @@ module Rules.Generate ( isGeneratedCmmFile, compilerDependencies, generatePackageCode, generateRules, copyRules, generatedDependencies, ghcPrimDependencies, - templateRules + templateRules, generateTemplateResults ) where import qualified Data.Set as Set @@ -243,7 +243,6 @@ templateResults = , "driver/ghci/ghci-wrapper.cabal" , "ghc/ghc-bin.cabal" , "utils/iserv/iserv.cabal" - , "utils/iserv-proxy/iserv-proxy.cabal" , "utils/remote-iserv/remote-iserv.cabal" , "utils/runghc/runghc.cabal" , "libraries/ghc-boot/ghc-boot.cabal" @@ -256,6 +255,10 @@ templateResults = , "libraries/prologue.txt" ] +-- | Generate all the files we know we have a template for +generateTemplateResults :: Action () +generateTemplateResults = need templateResults + templateRules :: Rules () templateRules = do templateResults |%> \out -> do |