@@ -57,6 +57,7 @@ module Distribution.Client.ProjectConfig
5757 , BuildTimeSettings (.. )
5858 , resolveBuildTimeSettings
5959 , resolveNumJobsSetting
60+ , resolveProgramDb
6061
6162 -- * Checking configuration
6263 , checkBadPerPackageCompilerPaths
@@ -175,6 +176,9 @@ import Distribution.Simple.InstallDirs
175176 )
176177import Distribution.Simple.Program
177178 ( ConfiguredProgram (.. )
179+ , ProgramDb
180+ , defaultProgramDb
181+ , userSpecifyPaths
178182 )
179183import Distribution.Simple.Setup
180184 ( Flag (Flag )
@@ -245,6 +249,7 @@ import System.IO
245249 )
246250
247251import Distribution.Deprecated.ProjectParseUtils (ProjectParseError (.. ), ProjectParseWarning )
252+ import Distribution.Simple.Program.Db (prependProgramSearchPath )
248253import Distribution.Solver.Types.ProjectConfigPath
249254
250255----------------------------------------
@@ -554,6 +559,12 @@ resolveNumJobsSetting projectConfigUseSemaphore projectConfigNumJobs =
554559 1 -> Serial
555560 n -> NumJobs (Just n)
556561
562+ resolveProgramDb :: Verbosity -> PackageConfig -> IO ProgramDb
563+ resolveProgramDb verbosity pkgconf = do
564+ let extraPath = fromNubList (packageConfigProgramPathExtra pkgconf)
565+ progdb <- prependProgramSearchPath verbosity extraPath [] defaultProgramDb
566+ return $ userSpecifyPaths (Map. toList (getMapLast (packageConfigProgramPaths pkgconf))) progdb
567+
557568---------------------------------------------
558569-- Reading and writing project config files
559570--
0 commit comments