diff --git a/cabal-install/src/Distribution/Client/ProjectPlanning.hs b/cabal-install/src/Distribution/Client/ProjectPlanning.hs index 8c471649c16..06669fb5643 100644 --- a/cabal-install/src/Distribution/Client/ProjectPlanning.hs +++ b/cabal-install/src/Distribution/Client/ProjectPlanning.hs @@ -326,9 +326,17 @@ rebuildProjectConfig verbosity } cliConfig = do + progsearchpath <- liftIO $ getSystemSearchPath + + let fileMonitorProjectConfig = newFileMonitor (distProjectCacheFile "config") + fileMonitorProjectConfigKey <- do configPath <- getConfigFilePath projectConfigConfigFile - return (configPath, distProjectFile "") + return (configPath, distProjectFile "", + (projectConfigHcFlavor, projectConfigHcPath, projectConfigHcPkg), + progsearchpath, + packageConfigProgramPaths, + packageConfigProgramPathExtra) (projectConfig, localPackages) <- runRebuild distProjectRootDirectory @@ -359,18 +367,11 @@ rebuildProjectConfig verbosity where - ProjectConfigShared { projectConfigConfigFile } = - projectConfigShared cliConfig - - ProjectConfigShared { projectConfigIgnoreProject } = + ProjectConfigShared { projectConfigHcFlavor, projectConfigHcPath, projectConfigHcPkg, projectConfigIgnoreProject, projectConfigConfigFile } = projectConfigShared cliConfig - fileMonitorProjectConfig :: - FileMonitor - (FilePath, FilePath) - (ProjectConfig, [PackageSpecifier UnresolvedSourcePackage]) - fileMonitorProjectConfig = - newFileMonitor (distProjectCacheFile "config") + PackageConfig { packageConfigProgramPaths, packageConfigProgramPathExtra } = + projectConfigLocalPackages cliConfig -- Read the cabal.project (or implicit config) and combine it with -- arguments from the command line diff --git a/changelog.d/pr-8819 b/changelog.d/pr-8819 new file mode 100644 index 00000000000..1398a2ca648 --- /dev/null +++ b/changelog.d/pr-8819 @@ -0,0 +1,9 @@ +synopsis: Use compiler flags for caching project config +packages: cabal-install +prs: #8819 + +description: { + +This ensures that cached project configs with conditionals re-execute the conditional logic when the compiler changes. + +}