@@ -2255,6 +2255,11 @@ elaborateInstallPlan
22552255 } =
22562256 elaboratedPackage
22572257 where
2258+ compilers = fmap toolchainCompiler toolchains
2259+ platforms = fmap toolchainPlatform toolchains
2260+ programDbs = fmap toolchainProgramDb toolchains
2261+ packageDbs = fmap toolchainPackageDBs toolchains
2262+
22582263 elaboratedPackage = ElaboratedConfiguredPackage {.. }
22592264
22602265 -- These get filled in later
@@ -2268,9 +2273,9 @@ elaborateInstallPlan
22682273 elabPkgSourceId = srcpkgPackageId
22692274
22702275 elabStage = solverPkgStage
2271- elabCompiler = toolchainCompiler ( getStage toolchains solverPkgStage)
2272- elabPlatform = toolchainPlatform ( getStage toolchains solverPkgStage)
2273- elabProgramDb = toolchainProgramDb ( getStage toolchains solverPkgStage)
2276+ elabCompiler = getStage compilers elabStage
2277+ elabPlatform = getStage platforms elabStage
2278+ elabProgramDb = getStage programDbs elabStage
22742279
22752280 elabPkgDescription = case PD. finalizePD
22762281 solverPkgFlags
@@ -2339,9 +2344,10 @@ elaborateInstallPlan
23392344 if shouldBuildInplaceOnly pkg
23402345 then BuildInplaceOnly OnDisk
23412346 else BuildAndInstall
2342- elabPackageDbs = Cabal. interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig))
2343- elabBuildPackageDBStack = buildAndRegisterDbs
2344- elabRegisterPackageDBStack = buildAndRegisterDbs
2347+
2348+ elabPackageDbs = getStage packageDbs elabStage
2349+ elabBuildPackageDBStack = buildAndRegisterDbs elabStage
2350+ elabRegisterPackageDBStack = buildAndRegisterDbs elabStage
23452351
23462352 elabSetupScriptStyle = packageSetupScriptStyle elabPkgDescription
23472353 elabSetupScriptCliVersion =
@@ -2350,19 +2356,21 @@ elaborateInstallPlan
23502356 elabPkgDescription
23512357 libDepGraph
23522358 solverPkgLibDeps
2353- elabSetupPackageDBStack = buildAndRegisterDbs
2359+ elabSetupPackageDBStack = buildAndRegisterDbs (prevStage elabStage)
23542360
2355- inplacePackageDbs = corePackageDbs ++ [distPackageDB (compilerId elabCompiler)]
2361+ -- Same as corePackageDbs but with the addition of the in-place packagedb.
2362+ inplacePackageDbs stage = corePackageDbs stage ++ [SpecificPackageDB (distDirectory </> " packagedb" </> prettyShow stage </> prettyShow (compilerId (getStage compilers stage)))]
23562363
2357- corePackageDbs = Cabal. interpretPackageDbFlags False (projectConfigPackageDBs (projectConfigToolchain sharedPackageConfig)) ++ [storePackageDB storeDirLayout elabCompiler]
2364+ -- The project packagedbs (typically the global packagedb but others can be added) followed by the store.
2365+ corePackageDbs stage = getStage packageDbs stage ++ [storePackageDB storeDirLayout (getStage compilers stage)]
23582366
2359- elabInplaceBuildPackageDBStack = inplacePackageDbs
2360- elabInplaceRegisterPackageDBStack = inplacePackageDbs
2361- elabInplaceSetupPackageDBStack = inplacePackageDbs
2367+ elabInplaceBuildPackageDBStack = inplacePackageDbs elabStage
2368+ elabInplaceRegisterPackageDBStack = inplacePackageDbs elabStage
2369+ elabInplaceSetupPackageDBStack = inplacePackageDbs (prevStage elabStage)
23622370
2363- buildAndRegisterDbs
2364- | shouldBuildInplaceOnly pkg = inplacePackageDbs
2365- | otherwise = corePackageDbs
2371+ buildAndRegisterDbs stage
2372+ | shouldBuildInplaceOnly pkg = inplacePackageDbs stage
2373+ | otherwise = corePackageDbs stage
23662374
23672375 elabPkgDescriptionOverride = srcpkgDescrOverride
23682376
0 commit comments