Skip to content

Commit 9b66d2c

Browse files
committed
refactor: introduce resolveProgramDb
1 parent c44c4a9 commit 9b66d2c

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

cabal-install/src/Distribution/Client/ProjectConfig.hs

+11
Original file line numberDiff line numberDiff line change
@@ -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
)
176177
import Distribution.Simple.Program
177178
( ConfiguredProgram (..)
179+
, ProgramDb
180+
, defaultProgramDb
181+
, userSpecifyPaths
178182
)
179183
import Distribution.Simple.Setup
180184
( Flag (Flag)
@@ -245,6 +249,7 @@ import System.IO
245249
)
246250

247251
import Distribution.Deprecated.ProjectParseUtils (ProjectParseError (..), ProjectParseWarning)
252+
import Distribution.Simple.Program.Db (prependProgramSearchPath)
248253
import 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
--

cabal-install/src/Distribution/Client/ProjectPlanning.hs

+3-5
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ configureCompiler
476476
, projectConfigHcPkg
477477
}
478478
, projectConfigLocalPackages =
479-
PackageConfig
479+
projectConfigLocalPackages@PackageConfig
480480
{ packageConfigProgramPaths
481481
, packageConfigProgramPathExtra
482482
}
@@ -497,16 +497,14 @@ configureCompiler
497497
)
498498
$ do
499499
liftIO $ info verbosity "Compiler settings changed, reconfiguring..."
500-
let extraPath = fromNubList packageConfigProgramPathExtra
501-
progdb <- liftIO $ prependProgramSearchPath verbosity extraPath [] defaultProgramDb
502-
let progdb' = userSpecifyPaths (Map.toList (getMapLast packageConfigProgramPaths)) progdb
500+
progdb <- liftIO $ resolveProgramDb verbosity projectConfigLocalPackages
503501
result@(_, _, progdb'') <-
504502
liftIO $
505503
Cabal.configCompilerEx
506504
hcFlavor
507505
hcPath
508506
hcPkg
509-
progdb'
507+
progdb
510508
verbosity
511509

512510
-- Note that we added the user-supplied program locations and args

0 commit comments

Comments
 (0)