on master help sign in
Don't let build tools dependencies seep into environments
commit18df8d13d172cc8b98f6afd4f907a8546e19382c authorMichael Snoyman <michael@snoyman.com> dateThu 22 Aug 2013, 07:15 (13 years ago) parent8b3eb7b
3 files changed+18−5
Stackage/Build.hs+9−1 Stackage/Types.hs+1−1 Stackage/Util.hs+8−3
Stackage/Build.hs+9−1
@@ -48,11 +48,18 @@ build settings' bp = do
4848
4949 -- First install build tools so they can be used below.
5050 let installBuildTool tool = do
51+ let toolsDir = packageDir settings ++ "-tools"
52+ rm_r toolsDir
53+ ecInit <- rawSystem "ghc-pkg" ["init", toolsDir]
54+ unless (ecInit == ExitSuccess) $ do
55+ putStrLn "Unable to create package database via ghc-pkg init"
56+ exitWith ecInit
57+
5158 putStrLn $ "Installing build tool: " ++ tool
5259 ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do
5360 hSetBuffering handle NoBuffering
5461
55− let args = addCabalArgs settings BSBuild
62+ let args = addCabalArgs settings BSTools
5663 $ "install"
5764 : ("--cabal-lib-version=" ++ libVersion)
5865 : "--build-log=logs-tools/$pkg.log"
@@ -69,6 +76,7 @@ build settings' bp = do
6976 ]
7077 exitWith ec
7178 putStrLn $ tool ++ " built"
79+ rm_r toolsDir
7280 mapM_ installBuildTool $ bpTools bp
7381
7482 putStrLn "Beginning Stackage build"
Stackage/Types.hs+1−1
@@ -122,7 +122,7 @@ data SelectSettings = SelectSettings
122122 , selectGhcVersion :: GhcMajorVersion
123123 }
124124
125−data BuildStage = BSBuild | BSTest
125+data BuildStage = BSTools | BSBuild | BSTest
126126
127127data BuildSettings = BuildSettings
128128 { sandboxRoot :: FilePath
Stackage/Util.hs+8−3
@@ -115,12 +115,17 @@ addCabalArgsOnlyGlobal rest
115115addCabalArgs :: BuildSettings -> BuildStage -> [String] -> [String]
116116addCabalArgs settings bs rest
117117 = addCabalArgsOnlyGlobal
118− $ ("--package-db=" ++ packageDir settings)
119− : ("--libdir=" ++ libDir settings)
118+ $ ("--package-db=" ++ packageDir settings ++ toolsSuffix)
119+ : ("--libdir=" ++ libDir settings ++ toolsSuffix)
120120 : ("--bindir=" ++ binDir settings)
121121 : ("--datadir=" ++ dataDir settings)
122− : ("--docdir=" ++ docDir settings)
122+ : ("--docdir=" ++ docDir settings ++ toolsSuffix)
123123 : extraArgs settings bs ++ rest
124+ where
125+ toolsSuffix =
126+ case bs of
127+ BSTools -> "-tools"
128+ _ -> ""
124129
125130-- | Modified environment that adds our sandboxed bin folder to PATH.
126131getModifiedEnv :: BuildSettings -> IO [(String, String)]