@@ -14,6 +14,7 @@ import qualified Distribution.InstalledPackageInfo as IPI
1414import Distribution.Compiler
1515import Distribution.Package -- from Cabal
1616import Distribution.Simple.BuildToolDepends -- from Cabal
17+ import Distribution.Simple.Compiler (compilerInfo )
1718import Distribution.Types.ExeDependency -- from Cabal
1819import Distribution.Types.PkgconfigDependency -- from Cabal
1920import Distribution.Types.ComponentName -- from Cabal
@@ -34,6 +35,7 @@ import Distribution.Solver.Types.PackageConstraint
3435import qualified Distribution.Solver.Types.PackageIndex as CI
3536import Distribution.Solver.Types.Settings
3637import Distribution.Solver.Types.SourcePackage
38+ import Distribution.Solver.Types.Toolchain ( Toolchains (.. ), Toolchain (.. ) )
3739
3840import Distribution.Solver.Modular.Dependency as D
3941import Distribution.Solver.Modular.Flag as F
@@ -53,13 +55,13 @@ import Distribution.Solver.Modular.Version
5355-- resolving these situations. However, the right thing to do is to
5456-- fix the problem there, so for now, shadowing is only activated if
5557-- explicitly requested.
56- convPIs :: OS -> Arch -> CompilerInfo -> Map PN [LabeledPackageConstraint ]
58+ convPIs :: Toolchains -> Map PN [LabeledPackageConstraint ]
5759 -> ShadowPkgs -> StrongFlags -> SolveExecutables
5860 -> SI. InstalledPackageIndex -> CI. PackageIndex (SourcePackage loc )
5961 -> Index
60- convPIs os arch comp constraints sip strfl solveExes iidx sidx =
62+ convPIs toolchains constraints sip strfl solveExes iidx sidx =
6163 mkIndex $
62- convIPI' sip iidx ++ convSPI' os arch comp constraints strfl solveExes sidx
64+ convIPI' sip iidx ++ convSPI' toolchains constraints strfl solveExes sidx
6365
6466-- | Convert a Cabal installed package index to the simpler,
6567-- more uniform index format of the solver.
@@ -153,31 +155,33 @@ convIPId dr comp idx ipid =
153155
154156-- | Convert a cabal-install source package index to the simpler,
155157-- more uniform index format of the solver.
156- convSPI' :: OS -> Arch -> CompilerInfo -> Map PN [LabeledPackageConstraint ]
158+ convSPI' :: Toolchains -> Map PN [LabeledPackageConstraint ]
157159 -> StrongFlags -> SolveExecutables
158160 -> CI. PackageIndex (SourcePackage loc ) -> [(PN , I , PInfo )]
159- convSPI' os arch cinfo constraints strfl solveExes =
160- L. map (convSP os arch cinfo constraints strfl solveExes) . CI. allPackages
161+ convSPI' toolchains constraints strfl solveExes =
162+ L. concatMap (convSP toolchains constraints strfl solveExes) . CI. allPackages
161163
162164-- | Convert a single source package into the solver-specific format.
163- convSP :: OS -> Arch -> CompilerInfo -> Map PN [LabeledPackageConstraint ]
164- -> StrongFlags -> SolveExecutables -> SourcePackage loc -> (PN , I , PInfo )
165- convSP os arch cinfo constraints strfl solveExes (SourcePackage (PackageIdentifier pn pv) gpd _ _pl) =
166- let i = I {- FIXME -} Host pv InRepo
167- pkgConstraints = fromMaybe [] $ M. lookup pn constraints
168- in (pn, i , convGPD os arch cinfo pkgConstraints strfl solveExes pn gpd)
165+ convSP :: Toolchains -> Map PN [LabeledPackageConstraint ]
166+ -> StrongFlags -> SolveExecutables -> SourcePackage loc -> [ (PN , I , PInfo )]
167+ convSP toolchains constraints strfl solveExes (SourcePackage (PackageIdentifier pn pv) gpd _ _pl) =
168+ let pkgConstraints = fromMaybe [] $ M. lookup pn constraints
169+ in [(pn, I Host pv InRepo , convGPD (hostToolchain toolchains) pkgConstraints strfl solveExes pn gpd)
170+ , (pn, I Build pv InRepo , convGPD (buildToolchain toolchains) pkgConstraints strfl solveExes pn gpd)]
169171
170172-- We do not use 'flattenPackageDescription' or 'finalizePD'
171173-- from 'Distribution.PackageDescription.Configuration' here, because we
172174-- want to keep the condition tree, but simplify much of the test.
173175
174176-- | Convert a generic package description to a solver-specific 'PInfo'.
175- convGPD :: OS -> Arch -> CompilerInfo -> [LabeledPackageConstraint ]
177+ convGPD :: Toolchain -> [LabeledPackageConstraint ]
176178 -> StrongFlags -> SolveExecutables -> PN -> GenericPackageDescription
177179 -> PInfo
178- convGPD os arch cinfo constraints strfl solveExes pn
180+ convGPD toolchain constraints strfl solveExes pn
179181 (GenericPackageDescription pkg scannedVersion flags mlib sub_libs flibs exes tests benchs) =
180182 let
183+ cinfo = compilerInfo (toolchainCompiler toolchain)
184+ (Platform arch os) = toolchainPlatform toolchain
181185 fds = flagInfo strfl flags
182186
183187
0 commit comments