Refactor builder path manipulation
[hadrian.git] / src / Settings / Builders / GhcCabal.hs
index 00a01b2..7a0669a 100644 (file)
@@ -1,18 +1,11 @@
 module Settings.Builders.GhcCabal (
-    ghcCabalBuilderArgs, ghcCabalHsColourBuilderArgs, bootPackageDatabaseArgs, buildDll0
+    ghcCabalBuilderArgs, ghcCabalHsColourBuilderArgs, buildDll0
     ) where
 
-import Base
 import Context
 import Flavour
-import GHC
-import Oracles.Config.Flag
-import Oracles.Config.Setting
-import Oracles.WindowsPath
-import Predicate
-import Settings
+import Rules.Actions
 import Settings.Builders.Common
-import Settings.Paths
 
 ghcCabalBuilderArgs :: Args
 ghcCabalBuilderArgs = builder GhcCabal ? do
@@ -84,15 +77,6 @@ configureArgs = do
         , crossCompiling ? (conf "--host" $ argSetting TargetPlatformFull)
         , conf "--with-cc" $ argStagedBuilderPath (Cc CompileC) ]
 
-bootPackageDatabaseArgs :: Args
-bootPackageDatabaseArgs = do
-    stage <- getStage
-    lift $ need [packageDbStamp stage]
-    stage0 ? do
-        path   <- getTopDirectory
-        prefix <- ifM (builder Ghc) (return "-package-db ") (return "--package-db=")
-        arg $ prefix ++ path -/- packageDbDirectory Stage0
-
 packageConstraints :: Args
 packageConstraints = stage0 ? do
     constraints <- lift . readFileLines $ bootPackageConstraints
@@ -115,7 +99,7 @@ withBuilderKey b = case b of
 
 -- Expression 'with Alex' appends "--with-alex=/path/to/alex" and needs Alex.
 with :: Builder -> Args
-with b = specified b ? do
+with b = isSpecified b ? do
     top  <- getTopDirectory
     path <- getBuilderPath b
     lift $ needBuilder b