diff options
author | John Ericson <git@JohnEricson.me> | 2019-04-07 10:24:03 -0400 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-05-14 16:41:19 -0400 |
commit | 015a21b8990a7fcf0d9d31a951af3ae8b06076c4 (patch) | |
tree | 7664efc7a603743deb851c735b3c2d9100006e8d | |
parent | 357be128fc1b545c182a9c6167437616636a300b (diff) | |
download | haskell-015a21b8990a7fcf0d9d31a951af3ae8b06076c4.tar.gz |
hadrian: Make settings stage specific
-rw-r--r-- | hadrian/src/Rules/Generate.hs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/hadrian/src/Rules/Generate.hs b/hadrian/src/Rules/Generate.hs index b2a3c16587..0787978938 100644 --- a/hadrian/src/Rules/Generate.hs +++ b/hadrian/src/Rules/Generate.hs @@ -162,7 +162,6 @@ copyRules = do prefix -/- "llvm-targets" <~ return "." prefix -/- "llvm-passes" <~ return "." prefix -/- "platformConstants" <~ (buildRoot <&> (-/- generatedDir)) - prefix -/- "settings" <~ (buildRoot <&> (-/- generatedDir)) prefix -/- "template-hsc.h" <~ return (pkgPath hsc2hs) prefix -/- "html//*" <~ return "utils/haddock/haddock-api/resources" @@ -178,7 +177,10 @@ generateRules = do priority 2.0 $ (root -/- generatedDir -/- "ghcautoconf.h") <~ generateGhcAutoconfH priority 2.0 $ (root -/- generatedDir -/- "ghcplatform.h") <~ generateGhcPlatformH priority 2.0 $ (root -/- generatedDir -/- "ghcversion.h") <~ generateGhcVersionH - priority 2.0 $ (root -/- generatedDir -/- "settings") <~ generateSettings + forM_ [Stage0 ..] $ \stage -> do + let prefix = root -/- stageString stage -/- "lib" + go gen file = generate file (semiEmptyTarget stage) gen + priority 2.0 $ (prefix -/- "settings") %> go generateSettings -- TODO: simplify, get rid of fake rts context root -/- generatedDir ++ "//*" %> \file -> do @@ -190,6 +192,10 @@ generateRules = do -- TODO: Use the Types, Luke! (drop partial function) -- We sometimes need to evaluate expressions that do not require knowing all -- information about the context. In this case, we don't want to know anything. +semiEmptyTarget :: Stage -> Context +semiEmptyTarget stage = vanillaContext stage + (error "Rules.Generate.emptyTarget: unknown package") + emptyTarget :: Context emptyTarget = vanillaContext (error "Rules.Generate.emptyTarget: unknown stage") (error "Rules.Generate.emptyTarget: unknown package") |