BuildStage

This commit is contained in:
Michael Snoyman 2013-01-29 20:11:01 +02:00
parent e479c6473c
commit 3ac3d0607b
4 changed files with 12 additions and 14 deletions

View File

@ -21,7 +21,7 @@ defaultBuildSettings :: BuildSettings
defaultBuildSettings = BuildSettings
{ sandboxRoot = "sandbox"
, expectedFailuresBuild = defaultExpectedFailures
, extraArgs = ["-fnetwork23"]
, extraArgs = const ["-fnetwork23"]
, testWorkerThreads = 4
}
@ -47,15 +47,12 @@ build settings' bp = do
let installBuildTool tool = do
putStrLn $ "Installing build tool: " ++ tool
ec <- withBinaryFile "build-tools.log" WriteMode $ \handle -> do
let args = addCabalArgs settings
let args = addCabalArgs settings BSBuild
$ "install"
: ("--cabal-lib-version=" ++ libVersion)
: "--build-log=logs-tools/$pkg.log"
: "-j"
: concat
[ extraArgs settings
, [tool]
]
: [tool]
hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
ph <- runCabal args handle
waitForProcess ph
@ -71,14 +68,13 @@ build settings' bp = do
putStrLn "Beginning Stackage build"
ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
let args = addCabalArgs settings
let args = addCabalArgs settings BSBuild
$ "install"
: ("--cabal-lib-version=" ++ libVersion)
: "--build-log=logs/$pkg.log"
: "-j"
: concat
[ extraArgs settings
, bpPackageList bp
[ bpPackageList bp
]
hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
runCabal args handle

View File

@ -96,7 +96,7 @@ runTestSuite settings testdir (packageName, SelectedPackageInfo {..}) = do
passed <- handle (\TestException -> return False) $ do
getHandle WriteMode $ run "cabal" ["unpack", package] testdir
getHandle AppendMode $ run "cabal" (addCabalArgs settings ["configure", "--enable-tests"]) dir
getHandle AppendMode $ run "cabal" (addCabalArgs settings BSTest ["configure", "--enable-tests"]) dir
when spiHasTests $ do
getHandle AppendMode $ run "cabal" ["build"] dir
getHandle AppendMode $ runGhcPackagePath "cabal" ["test"] dir

View File

@ -110,9 +110,11 @@ data SelectSettings = SelectSettings
, stablePackages :: Map PackageName (VersionRange, Maintainer)
}
data BuildStage = BSBuild | BSTest
data BuildSettings = BuildSettings
{ sandboxRoot :: FilePath
, extraArgs :: [String]
, extraArgs :: BuildStage -> [String]
, expectedFailuresBuild :: Set PackageName
, testWorkerThreads :: Int
-- ^ How many threads to spawn for running test suites.

View File

@ -102,15 +102,15 @@ addCabalArgsOnlyGlobal rest
: "--package-db=global"
: rest
addCabalArgs :: BuildSettings -> [String] -> [String]
addCabalArgs settings rest
addCabalArgs :: BuildSettings -> BuildStage -> [String] -> [String]
addCabalArgs settings bs rest
= addCabalArgsOnlyGlobal
$ ("--package-db=" ++ packageDir settings)
: ("--libdir=" ++ libDir settings)
: ("--bindir=" ++ binDir settings)
: ("--datadir=" ++ dataDir settings)
: ("--docdir=" ++ docDir settings)
: extraArgs settings ++ rest
: extraArgs settings bs ++ rest
-- | Modified environment that adds our sandboxed bin folder to PATH.
getModifiedEnv :: BuildSettings -> IO [(String, String)]