@@ -2245,6 +2245,11 @@ elaborateInstallPlan
22452245 } =
22462246 elaboratedPackage
22472247 where
2248+ compilers = fmap toolchainCompiler toolchains
2249+ platforms = fmap toolchainPlatform toolchains
2250+ programDbs = fmap toolchainProgramDb toolchains
2251+ packageDbs = fmap toolchainPackageDBs toolchains
2252+
22482253 elaboratedPackage = ElaboratedConfiguredPackage {.. }
22492254
22502255 -- These get filled in later
@@ -2258,9 +2263,9 @@ elaborateInstallPlan
22582263 elabPkgSourceId = srcpkgPackageId
22592264
22602265 elabStage = solverPkgStage
2261- elabCompiler = toolchainCompiler ( getStage toolchains solverPkgStage)
2262- elabPlatform = toolchainPlatform ( getStage toolchains solverPkgStage)
2263- elabProgramDb = toolchainProgramDb ( getStage toolchains solverPkgStage)
2266+ elabCompiler = getStage compilers elabStage
2267+ elabPlatform = getStage platforms elabStage
2268+ elabProgramDb = getStage programDbs elabStage
22642269
22652270 elabPkgDescription = case PD. finalizePD
22662271 solverPkgFlags
@@ -2330,9 +2335,9 @@ elaborateInstallPlan
23302335 then BuildInplaceOnly OnDisk
23312336 else BuildAndInstall
23322337
2333- elabPackageDbs = Cabal. interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig))
2334- elabBuildPackageDBStack = buildAndRegisterDbs
2335- elabRegisterPackageDBStack = buildAndRegisterDbs
2338+ elabPackageDbs = getStage packageDbs elabStage
2339+ elabBuildPackageDBStack = buildAndRegisterDbs elabStage
2340+ elabRegisterPackageDBStack = buildAndRegisterDbs elabStage
23362341
23372342 elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
23382343 elabSetupScriptCliVersion =
@@ -2341,19 +2346,21 @@ elaborateInstallPlan
23412346 elabPkgDescription
23422347 libDepGraph
23432348 solverPkgLibDeps
2344- elabSetupPackageDBStack = buildAndRegisterDbs
2345-
2346- inplacePackageDbs = corePackageDbs ++ [distPackageDB (compilerId elabCompiler)]
2349+ elabSetupPackageDBStack = buildAndRegisterDbs (prevStage elabStage)
23472350
2348- corePackageDbs = Cabal. interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig)) ++ [storePackageDB storeDirLayout elabCompiler]
2351+ -- Same as corePackageDbs but with the addition of the in-place packagedb.
2352+ inplacePackageDbs stage = corePackageDbs stage ++ [SpecificPackageDB (distDirectory </> " packagedb" </> prettyShow stage </> prettyShow (compilerId (getStage compilers stage)))]
23492353
2350- elabInplaceBuildPackageDBStack = inplacePackageDbs
2351- elabInplaceRegisterPackageDBStack = inplacePackageDbs
2352- elabInplaceSetupPackageDBStack = inplacePackageDbs
2354+ -- The project packagedbs (typically the global packagedb but others can be added) followed by the store.
2355+ corePackageDbs stage = getStage packageDbs stage ++ [storePackageDB storeDirLayout (getStage compilers stage)]
2356+
2357+ elabInplaceBuildPackageDBStack = inplacePackageDbs elabStage
2358+ elabInplaceRegisterPackageDBStack = inplacePackageDbs elabStage
2359+ elabInplaceSetupPackageDBStack = inplacePackageDbs (prevStage elabStage)
23532360
2354- buildAndRegisterDbs
2355- | shouldBuildInplaceOnly pkg = inplacePackageDbs
2356- | otherwise = corePackageDbs
2361+ buildAndRegisterDbs stage
2362+ | shouldBuildInplaceOnly pkg = inplacePackageDbs stage
2363+ | otherwise = corePackageDbs stage
23572364
23582365 elabPkgDescriptionOverride = srcpkgDescrOverride
23592366
0 commit comments