diff options
Diffstat (limited to 'hadrian/src/Rules/Clean.hs')
-rw-r--r-- | hadrian/src/Rules/Clean.hs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/hadrian/src/Rules/Clean.hs b/hadrian/src/Rules/Clean.hs new file mode 100644 index 0000000000..d11cbf5e53 --- /dev/null +++ b/hadrian/src/Rules/Clean.hs @@ -0,0 +1,23 @@ +module Rules.Clean (clean, cleanSourceTree, cleanRules) where + +import Base + +clean :: Action () +clean = do + cleanSourceTree + putBuild "| Remove Hadrian files..." + path <- buildRoot + removeDirectory $ path -/- generatedDir + removeFilesAfter path ["//*"] + putSuccess "| Done. " + +cleanSourceTree :: Action () +cleanSourceTree = do + path <- buildRoot + forM_ [Stage0 ..] $ removeDirectory . (path -/-) . stageString + removeDirectory inplaceBinPath + removeDirectory inplaceLibPath + removeDirectory "sdistprep" + +cleanRules :: Rules () +cleanRules = "clean" ~> clean |