diff --git a/src/Stack/Build.hs b/src/Stack/Build.hs index 0f17d8a4d9..1a8d733212 100644 --- a/src/Stack/Build.hs +++ b/src/Stack/Build.hs @@ -46,6 +46,7 @@ import Stack.Package import Stack.PackageLocation (parseSingleCabalFileIndex) import Stack.Types.Build import Stack.Types.BuildPlan +import Stack.Types.Compiler (compilerVersionText) import Stack.Types.Config import Stack.Types.FlagName import Stack.Types.NamedComponent @@ -55,7 +56,7 @@ import Stack.Types.PackageName import Stack.Types.Version #ifdef WINDOWS -import Stack.Types.Compiler +import Stack.Types.Compiler (getGhcVersion) #endif import System.FileLock (FileLock, unlockFile) @@ -370,8 +371,16 @@ queryBuildInfo selectors0 = rawBuildInfo :: HasEnvConfig env => RIO env Value rawBuildInfo = do (locals, _sourceMap) <- loadSourceMap NeedTargets defaultBuildOptsCLI + wantedCompiler <- view $ wantedCompilerVersionL.to compilerVersionText + actualCompiler <- view $ actualCompilerVersionL.to compilerVersionText + globalHints <- view globalHintsL return $ object [ "locals" .= Object (HM.fromList $ map localToPair locals) + , "compiler" .= object + [ "wanted" .= wantedCompiler + , "actual" .= actualCompiler + ] + , "global-hints" .= globalHints ] where localToPair lp = diff --git a/src/Stack/Types/Config.hs b/src/Stack/Types/Config.hs index ab24c19f0a..2e3f3d46f3 100644 --- a/src/Stack/Types/Config.hs +++ b/src/Stack/Types/Config.hs @@ -161,6 +161,7 @@ module Stack.Types.Config ,whichCompilerL ,envOverrideSettingsL ,loadedSnapshotL + ,globalHintsL ,shouldForceGhcColorFlag ,appropriateGhcColorFlag -- * Lens reexport @@ -2006,6 +2007,9 @@ envOverrideSettingsL = configL.lens configEnvOverrideSettings (\x y -> x { configEnvOverrideSettings = y }) +globalHintsL :: HasBuildConfig s => Getting r s (Map PackageName (Maybe Version)) +globalHintsL = snapshotDefL.to sdGlobalHints + shouldForceGhcColorFlag :: (HasRunner env, HasEnvConfig env) => RIO env Bool shouldForceGhcColorFlag = do