@@ -3,6 +3,7 @@ import Data.Set (fromList)
3import Stackage.Build (build, defaultBuildSettings)
3import Stackage.Build (build, defaultBuildSettings)
4import Stackage.BuildPlan (readBuildPlan, writeBuildPlan)
4import Stackage.BuildPlan (readBuildPlan, writeBuildPlan)
5import Stackage.CheckPlan (checkPlan)
5import Stackage.CheckPlan (checkPlan)
6+import Stackage.GhcPkg (getGhcVersion)
6import Stackage.Init (stackageInit)
7import Stackage.Init (stackageInit)
7import Stackage.Select (defaultSelectSettings, select)
8import Stackage.Select (defaultSelectSettings, select)
8import Stackage.Tarballs (makeTarballs)
9import Stackage.Tarballs (makeTarballs)
@@ -49,10 +50,10 @@ data BuildArgs = BuildArgs
49 , noDocs :: Bool
50 , noDocs :: Bool
52−parseBuildArgs :: [String] -> IO BuildArgs
53+parseBuildArgs :: GhcMajorVersion -> [String] -> IO BuildArgs
53−parseBuildArgs =
54+parseBuildArgs version =
54 loop BuildArgs
55 loop BuildArgs
55− { sandbox = sandboxRoot defaultBuildSettings
56+ { sandbox = sandboxRoot $ defaultBuildSettings version
56 , buildPlanSrc = defaultBuildPlan
57 , buildPlanSrc = defaultBuildPlan
57 , extraArgs' = id
58 , extraArgs' = id
58 , noDocs = False
59 , noDocs = False
@@ -70,11 +71,12 @@ defaultBuildPlan = "build-plan.txt"
71withBuildSettings :: [String] -> (BuildSettings -> BuildPlan -> IO a) -> IO a
72withBuildSettings :: [String] -> (BuildSettings -> BuildPlan -> IO a) -> IO a
72withBuildSettings args f = do
73withBuildSettings args f = do
74+ version <- getGhcVersion
73− BuildArgs {..} <- parseBuildArgs args
75+ BuildArgs {..} <- parseBuildArgs version args
74 bp <- readBuildPlan buildPlanSrc
76 bp <- readBuildPlan buildPlanSrc
75− let settings = defaultBuildSettings
77+ let settings = (defaultBuildSettings version)
76 { sandboxRoot = sandbox
78 { sandboxRoot = sandbox
77− , extraArgs = extraArgs' . extraArgs defaultBuildSettings
79+ , extraArgs = extraArgs' . extraArgs (defaultBuildSettings version)
78 , buildDocs = not noDocs
80 , buildDocs = not noDocs
80 f settings bp
82 f settings bp
@@ -86,8 +88,9 @@ main = do
86 ["uploads"] -> checkUploads "allowed.txt" "new-allowed.txt"
88 ["uploads"] -> checkUploads "allowed.txt" "new-allowed.txt"
87 "select":rest -> do
89 "select":rest -> do
88 SelectArgs {..} <- parseSelectArgs rest
90 SelectArgs {..} <- parseSelectArgs rest
91+ ghcVersion <- getGhcVersion
89 bp <- select
92 bp <- select
90− defaultSelectSettings
93+ (defaultSelectSettings ghcVersion)
91 { excludedPackages = fromList $ map PackageName excluded
94 { excludedPackages = fromList $ map PackageName excluded
92 , requireHaskellPlatform = not noPlatform
95 , requireHaskellPlatform = not noPlatform
93 , allowedPackage =
96 , allowedPackage =