Sven Tennie pushed to branch wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL at Glasgow Haskell Compiler / GHC

Commits:

1 changed file:

Changes:

  • hadrian/src/Rules/Documentation.hs
    ... ... @@ -26,6 +26,7 @@ import Utilities
    26 26
     import qualified Data.Set    as Set
    
    27 27
     import qualified Text.Parsec as Parsec
    
    28 28
     import Oracles.Flavour
    
    29
    +import BindistConfig
    
    29 30
     
    
    30 31
     docRoot :: FilePath
    
    31 32
     docRoot = "doc"
    
    ... ... @@ -242,10 +243,16 @@ buildLibraryDocumentation = do
    242 243
             need neededDocs
    
    243 244
             build $ target docContext (Haddock BuildIndex) libDocs [file]
    
    244 245
     
    
    246
    +-- | The stage whose libraries are documented. For cross builds this is
    
    247
    +-- Stage2 (the wasm32/cross-target libraries); for native builds Stage1.
    
    248
    +pkgDocStage :: Action Stage
    
    249
    +pkgDocStage = library_stage <$> implicitBindistConfig
    
    250
    +
    
    245 251
     allHaddocks :: Action [FilePath]
    
    246 252
     allHaddocks = do
    
    247
    -    pkgs <- stagePackages Stage1
    
    248
    -    sequence [ pkgHaddockFile $ vanillaContext Stage1 pkg
    
    253
    +    docStage <- pkgDocStage
    
    254
    +    pkgs <- stagePackages docStage
    
    255
    +    sequence [ pkgHaddockFile $ vanillaContext docStage pkg
    
    249 256
                  | pkg <- pkgs, isLibrary pkg, pkgName pkg `notElem` haddockExclude ]
    
    250 257
     
    
    251 258
     -- Note: this build rule creates plenty of files, not just the .haddock one.
    
    ... ... @@ -257,14 +264,14 @@ buildPackageDocumentation = do
    257 264
     
    
    258 265
         -- Per-package haddocks
    
    259 266
         root -/- htmlRoot -/- "libraries/*/haddock-prologue.txt" %> \file -> do
    
    260
    -        ctx <- pkgDocContext <$> getPkgDocTarget root file
    
    267
    +        ctx <- pkgDocContext =<< getPkgDocTarget root file
    
    261 268
             syn  <- pkgSynopsis    (Context.package ctx)
    
    262 269
             desc <- pkgDescription (Context.package ctx)
    
    263 270
             let prologue = if null desc then syn else desc
    
    264 271
             liftIO $ writeFile file prologue
    
    265 272
     
    
    266 273
         root -/- htmlRoot -/- "libraries/*/*.haddock" %> \file -> do
    
    267
    -        context <- pkgDocContext <$> getPkgDocTarget root file
    
    274
    +        context <- pkgDocContext =<< getPkgDocTarget root file
    
    268 275
             need [ takeDirectory file  -/- "haddock-prologue.txt"]
    
    269 276
             haddocks <- haddockDependencies context
    
    270 277
     
    
    ... ... @@ -290,8 +297,10 @@ buildPackageDocumentation = do
    290 297
     data PkgDocTarget = DotHaddock PackageName | HaddockPrologue PackageName
    
    291 298
       deriving (Eq, Show)
    
    292 299
     
    
    293
    -pkgDocContext :: PkgDocTarget -> Context
    
    294
    -pkgDocContext target = Context Stage1 (unsafeFindPackageByName name) vanilla Final
    
    300
    +pkgDocContext :: PkgDocTarget -> Action Context
    
    301
    +pkgDocContext target = do
    
    302
    +    docStage <- pkgDocStage
    
    303
    +    return $ Context docStage (unsafeFindPackageByName name) vanilla Final
    
    295 304
       where
    
    296 305
         name = case target of DotHaddock n      -> n
    
    297 306
                               HaddockPrologue n -> n
    
    ... ... @@ -417,5 +426,5 @@ buildManPage = do
    417 426
     haddockDependencies :: Context -> Action [(Package, FilePath)]
    
    418 427
     haddockDependencies context = do
    
    419 428
         depNames <- interpretInContext context (getContextData depNames)
    
    420
    -    sequence [ (,) <$> pure depPkg <*> (pkgHaddockFile $ vanillaContext Stage1 depPkg)
    
    429
    +    sequence [ (,) <$> pure depPkg <*> (pkgHaddockFile $ vanillaContext (stage context) depPkg)
    
    421 430
                  | Just depPkg <- map findPackageByName depNames, (pkgName depPkg) `notElem` haddockExclude ]