Skip to content

Commit 0b47c06

Browse files
committed
Add stage to SolverPackage, and use stage from elabStage
1 parent 7b27c1a commit 0b47c06

File tree

6 files changed

+37
-33
lines changed

6 files changed

+37
-33
lines changed

cabal-install-solver/src/Distribution/Solver/Modular/ConfiguredConversion.hs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ convCP :: SI.InstalledPackageIndex ->
2929
convCP iidx sidx (CP qpi fa es ds) =
3030
case qpi of
3131
-- Installed
32-
(PI qpn (I {- FIXME -} Host _ (Inst pi))) ->
32+
(PI qpn (I _stage _ (Inst pi))) ->
3333
PreExisting $
3434
InstSolverPackage {
3535
instSolverQPN = qpn,
@@ -38,11 +38,12 @@ convCP iidx sidx (CP qpi fa es ds) =
3838
instSolverPkgExeDeps = fmap snd ds'
3939
}
4040
-- "In repo" i.e. a source package
41-
(PI qpn@(Q _path pn) (I {- FIXME -} Host v InRepo)) ->
41+
(PI qpn@(Q _path pn) (I stage v InRepo)) ->
4242
let pi = PackageIdentifier pn v in
4343
Configured $
4444
SolverPackage {
4545
solverPkgQPN = qpn,
46+
solverPkgStage = stage,
4647
solverPkgSource = fromMaybe (error "convCP: lookupPackageId failed") $ CI.lookupPackageId sidx pi,
4748
solverPkgFlags = fa,
4849
solverPkgStanzas = es,

cabal-install-solver/src/Distribution/Solver/Types/SolverPackage.hs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import Distribution.Solver.Types.OptionalStanza
1313
import Distribution.Solver.Types.PackagePath (QPN)
1414
import Distribution.Solver.Types.SolverId
1515
import Distribution.Solver.Types.SourcePackage
16+
import Distribution.Solver.Types.Stage (Stage (..))
1617

1718
-- | A 'SolverPackage' is a package specified by the dependency solver.
1819
-- It will get elaborated into a 'ConfiguredPackage' or even an
@@ -23,6 +24,7 @@ import Distribution.Solver.Types.SourcePackage
2324
--
2425
data SolverPackage loc = SolverPackage {
2526
solverPkgQPN :: QPN,
27+
solverPkgStage :: Stage,
2628
solverPkgSource :: SourcePackage loc,
2729
solverPkgFlags :: FlagAssignment,
2830
solverPkgStanzas :: OptionalStanzaSet,

cabal-install/src/Distribution/Client/Dependency.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ configuredPackageProblems
10191019
-> [PackageProblem]
10201020
configuredPackageProblems
10211021
toolchains
1022-
(SolverPackage _qpn pkg specifiedFlags stanzas specifiedDeps0 _specifiedExeDeps') =
1022+
(SolverPackage _qpn _stage pkg specifiedFlags stanzas specifiedDeps0 _specifiedExeDeps') =
10231023
[ DuplicateFlag flag
10241024
| flag <- PD.findDuplicateFlagAssignments specifiedFlags
10251025
]

cabal-install/src/Distribution/Client/ProjectBuilding/UnpackedPackage.hs

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ import Distribution.Simple.Command (CommandUI)
8080
import Distribution.Simple.Compiler
8181
( PackageDBStackCWD
8282
, coercePackageDBStack
83+
, showCompilerId
8384
)
85+
import Distribution.Solver.Types.Stage
8486
import qualified Distribution.Simple.InstallDirs as InstallDirs
8587
import Distribution.Simple.LocalBuildInfo
8688
( ComponentName (..)
@@ -178,15 +180,7 @@ buildAndRegisterUnpackedPackage
178180
registerLock
179181
cacheLock
180182
pkgshared@ElaboratedSharedConfig
181-
{ pkgConfigToolchains =
182-
Toolchains
183-
{ buildToolchain =
184-
Toolchain
185-
{ toolchainCompiler = compiler
186-
, toolchainProgramDb = progdb
187-
}
188-
}
189-
}
183+
{ pkgConfigToolchains = toolchains }
190184
plan
191185
rpkg@(ReadyPackage pkg)
192186
srcdir
@@ -260,6 +254,10 @@ buildAndRegisterUnpackedPackage
260254

261255
return ()
262256
where
257+
(compiler, progdb) = case elabStage pkg of
258+
Host -> (toolchainCompiler (hostToolchain toolchains), toolchainProgramDb (hostToolchain toolchains))
259+
Build -> (toolchainCompiler (buildToolchain toolchains), toolchainProgramDb (buildToolchain toolchains))
260+
263261
uid = installedUnitId rpkg
264262

265263
comp_par_strat = case maybe_semaphore of
@@ -458,14 +456,7 @@ buildInplaceUnpackedPackage
458456
registerLock
459457
cacheLock
460458
pkgshared@ElaboratedSharedConfig
461-
{ pkgConfigToolchains =
462-
Toolchains
463-
{ buildToolchain =
464-
Toolchain
465-
{ toolchainPlatform = Platform _ os
466-
}
467-
}
468-
}
459+
{ pkgConfigToolchains = toolchains }
469460
plan
470461
rpkg@(ReadyPackage pkg)
471462
buildStatus
@@ -610,6 +601,10 @@ buildInplaceUnpackedPackage
610601
, buildResultLogFile = Nothing
611602
}
612603
where
604+
Platform _ os = case elabStage pkg of
605+
Host -> toolchainPlatform (hostToolchain toolchains)
606+
Build -> toolchainPlatform (buildToolchain toolchains)
607+
613608
dparams = elabDistDirParams pkgshared pkg
614609

615610
packageFileMonitor = newPackageFileMonitor pkgshared distDirLayout dparams
@@ -671,15 +666,7 @@ buildAndInstallUnpackedPackage
671666
registerLock
672667
cacheLock
673668
pkgshared@ElaboratedSharedConfig
674-
{ pkgConfigToolchains =
675-
Toolchains
676-
{ buildToolchain =
677-
Toolchain
678-
{ toolchainCompiler = compiler
679-
, toolchainPlatform = platform
680-
}
681-
}
682-
}
669+
{ pkgConfigToolchains = toolchains }
683670
plan
684671
rpkg@(ReadyPackage pkg)
685672
srcdir
@@ -826,6 +813,10 @@ buildAndInstallUnpackedPackage
826813
, buildResultLogFile = mlogFile
827814
}
828815
where
816+
(compiler, platform) = case elabStage pkg of
817+
Host -> (toolchainCompiler (hostToolchain toolchains), toolchainPlatform (hostToolchain toolchains))
818+
Build -> (toolchainCompiler (buildToolchain toolchains), toolchainPlatform (buildToolchain toolchains))
819+
829820
uid = installedUnitId rpkg
830821
pkgid = packageId rpkg
831822

@@ -836,13 +827,20 @@ buildAndInstallUnpackedPackage
836827
prettyShow pkgid
837828
++ " (all, legacy fallback: "
838829
++ unwords (map whyNotPerComponent $ NE.toList pkgWhyNotPerComponent)
830+
++ ", "
831+
++ dispcompiler (elabStage pkg)
839832
++ ")"
840833
-- Packages built per component
841834
ElabComponent comp ->
842835
prettyShow pkgid
843836
++ " ("
844837
++ maybe "custom" prettyShow (compComponentName comp)
838+
++ ", "
839+
++ dispcompiler (elabStage pkg)
845840
++ ")"
841+
dispcompiler :: Stage -> String
842+
dispcompiler Host = showCompilerId (toolchainCompiler (hostToolchain toolchains))
843+
dispcompiler Build = showCompilerId (toolchainCompiler (buildToolchain toolchains))
846844

847845
noticeProgress :: ProgressPhase -> IO ()
848846
noticeProgress phase =

cabal-install/src/Distribution/Client/ProjectOrchestration.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1002,6 +1002,7 @@ printPlan
10021002
unwords $
10031003
filter (not . null) $
10041004
[ " -"
1005+
, show (elabStage elab)
10051006
, if verbosity >= deafening
10061007
then prettyShow (installedUnitId elab)
10071008
else prettyShow (packageId elab)

cabal-install/src/Distribution/Client/ProjectPlanning.hs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,7 +1683,7 @@ elaborateInstallPlan
16831683
:: (SolverId -> [ElaboratedPlanPackage])
16841684
-> SolverPackage UnresolvedPkgLoc
16851685
-> LogProgress [ElaboratedConfiguredPackage]
1686-
elaborateSolverToComponents mapDep spkg@(SolverPackage qpn _ _ _ deps0 exe_deps0) =
1686+
elaborateSolverToComponents mapDep spkg@(SolverPackage _qpn _stage _ _ _ deps0 exe_deps0) =
16871687
case mkComponentsGraph (elabEnabledSpec elab0) pd of
16881688
Right g -> do
16891689
let src_comps = componentsGraphToList g
@@ -2072,7 +2072,8 @@ elaborateInstallPlan
20722072
elaborateSolverToPackage
20732073
pkgWhyNotPerComponent
20742074
pkg@( SolverPackage
2075-
qpn
2075+
_qpn
2076+
_stage
20762077
(SourcePackage pkgid _gpd _srcloc _descOverride)
20772078
_flags
20782079
_stanzas
@@ -2176,7 +2177,8 @@ elaborateInstallPlan
21762177
-> ElaboratedConfiguredPackage
21772178
elaborateSolverToCommon
21782179
pkg@( SolverPackage
2179-
qpn
2180+
_qpn
2181+
stage
21802182
(SourcePackage pkgid gdesc srcloc descOverride)
21812183
flags
21822184
stanzas
@@ -2200,7 +2202,7 @@ elaborateInstallPlan
22002202
elabPkgSourceId = pkgid
22012203

22022204
-- TODO: temporarily set everything to build on build
2203-
elabStage = Build
2205+
elabStage = stage
22042206
elabCompiler = toolchainCompiler (toolchainFor elabStage toolchains)
22052207
elabPlatform = toolchainPlatform (toolchainFor elabStage toolchains)
22062208
elabProgramDb = toolchainProgramDb (toolchainFor elabStage toolchains)

0 commit comments

Comments
 (0)