@@ -57,6 +57,7 @@ module Distribution.Client.ProjectConfig
57
57
, BuildTimeSettings (.. )
58
58
, resolveBuildTimeSettings
59
59
, resolveNumJobsSetting
60
+ , resolveProgramDb
60
61
61
62
-- * Checking configuration
62
63
, checkBadPerPackageCompilerPaths
@@ -175,6 +176,9 @@ import Distribution.Simple.InstallDirs
175
176
)
176
177
import Distribution.Simple.Program
177
178
( ConfiguredProgram (.. )
179
+ , ProgramDb
180
+ , defaultProgramDb
181
+ , userSpecifyPaths
178
182
)
179
183
import Distribution.Simple.Setup
180
184
( Flag (Flag )
@@ -245,6 +249,7 @@ import System.IO
245
249
)
246
250
247
251
import Distribution.Deprecated.ProjectParseUtils (ProjectParseError (.. ), ProjectParseWarning )
252
+ import Distribution.Simple.Program.Db (prependProgramSearchPath )
248
253
import Distribution.Solver.Types.ProjectConfigPath
249
254
250
255
----------------------------------------
@@ -554,6 +559,12 @@ resolveNumJobsSetting projectConfigUseSemaphore projectConfigNumJobs =
554
559
1 -> Serial
555
560
n -> NumJobs (Just n)
556
561
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
+
557
568
---------------------------------------------
558
569
-- Reading and writing project config files
559
570
--
0 commit comments