diff --git a/cabal-install/src/Distribution/Client/ProjectPlanning.hs b/cabal-install/src/Distribution/Client/ProjectPlanning.hs
index 16ff6e0d53497e1a64c259b98a04e3801b1a2885..05fbf69909e59db5a095a0c34638dcbe3491a14d 100644
--- a/cabal-install/src/Distribution/Client/ProjectPlanning.hs
+++ b/cabal-install/src/Distribution/Client/ProjectPlanning.hs
@@ -321,9 +321,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
@@ -354,18 +362,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 0000000000000000000000000000000000000000..1398a2ca648139a60503e355db596668f480e2c1
--- /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.
+
+}