Skip to content

Commit 08c582c

Browse files
committed
refactor: introduce resolveProgramDb
1 parent e2cb8a7 commit 08c582c

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

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

Lines changed: 9 additions & 1 deletion
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
@@ -174,7 +175,7 @@ import Distribution.Simple.InstallDirs
174175
, toPathTemplate
175176
)
176177
import Distribution.Simple.Program
177-
( ConfiguredProgram (..)
178+
( ConfiguredProgram (..), defaultProgramDb, userSpecifyPaths, ProgramDb
178179
)
179180
import Distribution.Simple.Setup
180181
( Flag (Flag)
@@ -246,6 +247,7 @@ import System.IO
246247

247248
import Distribution.Deprecated.ProjectParseUtils (ProjectParseError (..), ProjectParseWarning)
248249
import Distribution.Solver.Types.ProjectConfigPath
250+
import Distribution.Simple.Program.Db (prependProgramSearchPath)
249251

250252
----------------------------------------
251253
-- Resolving configuration to settings
@@ -554,6 +556,12 @@ resolveNumJobsSetting projectConfigUseSemaphore projectConfigNumJobs =
554556
1 -> Serial
555557
n -> NumJobs (Just n)
556558

559+
resolveProgramDb :: Verbosity -> PackageConfig -> IO ProgramDb
560+
resolveProgramDb verbosity pkgconf = do
561+
let extraPath = fromNubList (packageConfigProgramPathExtra pkgconf)
562+
progdb <- prependProgramSearchPath verbosity extraPath [] defaultProgramDb
563+
return $ userSpecifyPaths (Map.toList (getMapLast (packageConfigProgramPaths pkgconf))) progdb
564+
557565
---------------------------------------------
558566
-- Reading and writing project config files
559567
--

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

Lines changed: 3 additions & 5 deletions
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)