Skip to content

Commit e7577e8

Browse files
committed
s/projectConfigHostHc/projectConfigBuildHc
1 parent 547ba5a commit e7577e8

File tree

6 files changed

+62
-73
lines changed

6 files changed

+62
-73
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -573,9 +573,9 @@ instance Semigroup SavedConfig where
573573
combineMonoid savedConfigureExFlags configAllowOlder
574574
, configWriteGhcEnvironmentFilesPolicy =
575575
combine configWriteGhcEnvironmentFilesPolicy
576-
, configHostHcFlavor = combine configHostHcFlavor
577-
, configHostHcPath = combine configHostHcPath
578-
, configHostHcPkg = combine configHostHcPkg
576+
, configBuildHcFlavor = combine configBuildHcFlavor
577+
, configBuildHcPath = combine configBuildHcPath
578+
, configBuildHcPkg = combine configBuildHcPkg
579579
}
580580
where
581581
combine = combine' savedConfigureExFlags

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -741,9 +741,9 @@ convertLegacyAllPackageFlags globalFlags configFlags configExFlags installFlags
741741
, configAllowNewer = projectConfigAllowNewer
742742
, configWriteGhcEnvironmentFilesPolicy =
743743
projectConfigWriteGhcEnvironmentFilesPolicy
744-
, configHostHcFlavor = projectConfigHostHcFlavor
745-
, configHostHcPath = projectConfigHostHcPath
746-
, configHostHcPkg = projectConfigHostHcPkg
744+
, configBuildHcFlavor = projectConfigBuildHcFlavor
745+
, configBuildHcPath = projectConfigBuildHcPath
746+
, configBuildHcPkg = projectConfigBuildHcPkg
747747
} = configExFlags
748748

749749
InstallFlags

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,9 +192,9 @@ data ProjectConfigShared = ProjectConfigShared
192192
, projectConfigHcFlavor :: Flag CompilerFlavor
193193
, projectConfigHcPath :: Flag FilePath
194194
, projectConfigHcPkg :: Flag FilePath
195-
, projectConfigHostHcFlavor :: Flag CompilerFlavor
196-
, projectConfigHostHcPath :: Flag FilePath
197-
, projectConfigHostHcPkg :: Flag FilePath
195+
, projectConfigBuildHcFlavor :: Flag CompilerFlavor
196+
, projectConfigBuildHcPath :: Flag FilePath
197+
, projectConfigBuildHcPkg :: Flag FilePath
198198
, projectConfigHaddockIndex :: Flag PathTemplate
199199
, -- Only makes sense for manual mode, not --local mode
200200
-- too much control!

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

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ import Distribution.Backpack.FullUnitId
117117
import Distribution.Backpack.LinkedComponent
118118
import Distribution.Backpack.ModuleShape
119119
import Distribution.CabalSpecVersion
120+
120121
-- import qualified Distribution.Client.BuildReports.Storage as BuildReports
121122
import Distribution.Client.Compat.Prelude
122123
import Distribution.Client.Config
@@ -362,7 +363,13 @@ rebuildProjectConfig
362363
, distProjectCacheDirectory
363364
, distProjectFile
364365
}
365-
cliConfig = do
366+
cliConfig@ProjectConfig
367+
{ projectConfigShared =
368+
ProjectConfigShared
369+
{ projectConfigIgnoreProject
370+
, projectConfigConfigFile
371+
}
372+
} = do
366373
progsearchpath <- liftIO $ getSystemSearchPath
367374

368375
let fileMonitorProjectConfig = newFileMonitor (distProjectCacheFile "config")
@@ -372,7 +379,7 @@ rebuildProjectConfig
372379
return
373380
( configPath
374381
, distProjectFile ""
375-
, (projectConfigHcFlavor, projectConfigHcPath, projectConfigHcPkg)
382+
, toolchainCacheKey
376383
, progsearchpath
377384
, packageConfigProgramPaths
378385
, packageConfigProgramPathExtra
@@ -392,12 +399,9 @@ rebuildProjectConfig
392399
-- have to create the cache directory before configuring the compiler
393400
liftIO $ createDirectoryIfMissingVerbose verbosity True distProjectCacheDirectory
394401
toolchains <- configureCompiler verbosity distDirLayout (fst (PD.ignoreConditions projectConfigSkeleton) <> cliConfig)
395-
-- FIXME: what compiler to use here?
396-
let Toolchain
397-
{ toolchainCompiler = compiler
398-
, toolchainPlatform = Platform arch os
399-
} = getStage toolchains Host
400-
return (os, arch, compiler)
402+
-- NOTE: project config is always resolved with the host compiler
403+
let Toolchain{toolchainCompiler, toolchainPlatform = Platform arch os} = getStage toolchains Host
404+
return (os, arch, toolchainCompiler)
401405

402406
(projectConfig, _compiler) <- instantiateProjectConfigSkeletonFetchingCompiler fetchCompiler mempty projectConfigSkeleton
403407
when (projectConfigDistDir (projectConfigShared $ projectConfig) /= NoFlag) $
@@ -410,6 +414,7 @@ rebuildProjectConfig
410414
[ text "-" <+> docProjectConfigPath path
411415
| Explicit path <- Set.toList . (if verbosity >= verbose then id else onlyTopLevelProvenance) $ projectConfigProvenance projectConfig
412416
]
417+
413418
unless (null configfiles)
414419
$ notice (verboseStderr verbosity)
415420
. render
@@ -419,8 +424,14 @@ rebuildProjectConfig
419424

420425
return (projectConfig <> cliConfig, localPackages)
421426
where
422-
ProjectConfigShared{projectConfigHcFlavor, projectConfigHcPath, projectConfigHcPkg, projectConfigIgnoreProject, projectConfigConfigFile} =
423-
projectConfigShared cliConfig
427+
toolchainCacheKey =
428+
( projectConfigBuildHcFlavor (projectConfigShared cliConfig)
429+
, projectConfigBuildHcPath (projectConfigShared cliConfig)
430+
, projectConfigBuildHcPkg (projectConfigShared cliConfig)
431+
, projectConfigHcFlavor (projectConfigShared cliConfig)
432+
, projectConfigHcPath (projectConfigShared cliConfig)
433+
, projectConfigHcPkg (projectConfigShared cliConfig)
434+
)
424435

425436
PackageConfig{packageConfigProgramPaths, packageConfigProgramPathExtra} =
426437
projectConfigLocalPackages cliConfig
@@ -475,9 +486,9 @@ configureCompiler
475486
{ projectConfigHcFlavor
476487
, projectConfigHcPath
477488
, projectConfigHcPkg
478-
, projectConfigHostHcFlavor
479-
, projectConfigHostHcPath
480-
, projectConfigHostHcPkg
489+
, projectConfigBuildHcFlavor
490+
, projectConfigBuildHcPath
491+
, projectConfigBuildHcPkg
481492
}
482493
, projectConfigLocalPackages =
483494
projectConfigLocalPackages@PackageConfig
@@ -492,9 +503,7 @@ configureCompiler
492503
rerunIfChanged
493504
verbosity
494505
fileMonitorCompiler
495-
( hcFlavor
496-
, hcPath
497-
, hcPkg
506+
( cacheKey
498507
, progsearchpath
499508
, packageConfigProgramPaths
500509
, packageConfigProgramPathExtra
@@ -506,13 +515,7 @@ configureCompiler
506515

507516
buildToolchain <- do
508517
(toolchainCompiler, toolchainPlatform, toolchainProgramDb) <-
509-
liftIO $
510-
Cabal.configCompilerEx
511-
hcFlavor
512-
hcPath
513-
hcPkg
514-
defdb
515-
verbosity
518+
liftIO $ Cabal.configCompilerEx buildHcFlavor buildHcPath buildHcPkg defdb verbosity
516519

517520
-- Note that we added the user-supplied program locations and args
518521
-- for /all/ programs, not just those for the compiler prog and
@@ -525,13 +528,7 @@ configureCompiler
525528

526529
hostToolchain <- do
527530
(toolchainCompiler, toolchainPlatform, toolchainProgramDb) <-
528-
liftIO $
529-
Cabal.configCompilerEx
530-
hostHcFlavor
531-
hostHcPath
532-
hostHcPkg
533-
defdb
534-
verbosity
531+
liftIO $ Cabal.configCompilerEx hostHcFlavor hostHcPath hostHcPkg defdb verbosity
535532

536533
-- Note that we added the user-supplied program locations and args
537534
-- for /all/ programs, not just those for the compiler prog and
@@ -544,12 +541,15 @@ configureCompiler
544541

545542
return (Stage.index [(Build, buildToolchain), (Host, hostToolchain)])
546543
where
547-
hcFlavor = flagToMaybe projectConfigHcFlavor
548-
hcPath = flagToMaybe projectConfigHcPath
549-
hcPkg = flagToMaybe projectConfigHcPkg
550-
hostHcFlavor = flagToMaybe projectConfigHostHcFlavor <|> flagToMaybe projectConfigHcFlavor
551-
hostHcPath = flagToMaybe projectConfigHostHcPath <|> flagToMaybe projectConfigHcPath
552-
hostHcPkg = flagToMaybe projectConfigHostHcPkg <|> flagToMaybe projectConfigHcPkg
544+
hostHcFlavor = flagToMaybe projectConfigHcFlavor
545+
hostHcPath = flagToMaybe projectConfigHcPath
546+
hostHcPkg = flagToMaybe projectConfigHcPkg
547+
-- Use the host compiler if a separate build compiler is not specified
548+
buildHcFlavor = flagToMaybe projectConfigBuildHcFlavor <|> flagToMaybe projectConfigHcFlavor
549+
buildHcPath = flagToMaybe projectConfigBuildHcPath <|> flagToMaybe projectConfigHcPath
550+
buildHcPkg = flagToMaybe projectConfigBuildHcPkg <|> flagToMaybe projectConfigHcPkg
551+
552+
cacheKey = (hostHcFlavor, hostHcPath, hostHcPkg, buildHcFlavor, buildHcPath, buildHcPkg)
553553

554554
{- Note [Caching the result of configuring the compiler]
555555
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -682,7 +682,7 @@ rebuildInstallPlan
682682
phaseMaintainPlanOutputs elaboratedPlan elaboratedShared
683683
return (elaboratedPlan, elaboratedShared, totalIndexState, activeRepos)
684684

685-
-- | Given the 'InstalledPackageIndex' for a nix-style package store, and an
685+
-- \| Given the 'InstalledPackageIndex' for a nix-style package store, and an
686686
-- 'ElaboratedInstallPlan', replace configured source packages by installed
687687
-- packages from the store whenever they exist.
688688
--

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

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -920,9 +920,9 @@ data ConfigExFlags = ConfigExFlags
920920
, configAllowOlder :: Maybe AllowOlder
921921
, configWriteGhcEnvironmentFilesPolicy
922922
:: Flag WriteGhcEnvironmentFilesPolicy
923-
, configHostHcFlavor :: Flag CompilerFlavor
924-
, configHostHcPath :: Flag FilePath
925-
, configHostHcPkg :: Flag FilePath
923+
, configBuildHcFlavor :: Flag CompilerFlavor
924+
, configBuildHcPath :: Flag FilePath
925+
, configBuildHcPkg :: Flag FilePath
926926
}
927927
deriving (Eq, Show, Generic)
928928

@@ -1050,30 +1050,19 @@ configureExOptions _showOrParseArgs src =
10501050
writeGhcEnvironmentFilesPolicyParser
10511051
writeGhcEnvironmentFilesPolicyPrinter
10521052
)
1053-
, option
1054-
[]
1055-
["host-compiler"]
1056-
"host compiler"
1057-
configHostHcFlavor
1058-
(\v flags -> flags{configHostHcFlavor = v})
1059-
( choiceOpt
1060-
[ (Flag GHC, ("g", ["ghc"]), "compile with GHC")
1061-
, (Flag GHCJS, ([], ["ghcjs"]), "compile with GHCJS")
1062-
]
1063-
)
10641053
, option
10651054
"W"
1066-
["with-host-compiler", "with-host-hc"]
1055+
["with-build-compiler", "with-host-hc"]
10671056
"give the path to the compiler for the host toolchain"
1068-
configHostHcPath
1069-
(\v flags -> flags{configHostHcPath = v})
1057+
configBuildHcPath
1058+
(\v flags -> flags{configBuildHcPath = v})
10701059
(reqArgFlag "PATH")
10711060
, option
10721061
""
1073-
["with-host-hc-pkg"]
1074-
"give the path to the package tool for the host toolchain"
1075-
configHostHcPkg
1076-
(\v flags -> flags{configHostHcPkg = v})
1062+
["with-build-hc-pkg"]
1063+
"give the path to the package tool for the build toolchain"
1064+
configBuildHcPkg
1065+
(\v flags -> flags{configBuildHcPkg = v})
10771066
(reqArgFlag "PATH")
10781067
]
10791068

cabal-install/tests/UnitTests/Distribution/Client/ProjectConfig.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -613,9 +613,9 @@ instance Arbitrary ProjectConfigShared where
613613
projectConfigHcFlavor <- arbitrary
614614
projectConfigHcPath <- arbitraryFlag arbitraryShortToken
615615
projectConfigHcPkg <- arbitraryFlag arbitraryShortToken
616-
projectConfigHostHcFlavor <- arbitrary
617-
projectConfigHostHcPath <- arbitraryFlag arbitraryShortToken
618-
projectConfigHostHcPkg <- arbitraryFlag arbitraryShortToken
616+
projectConfigBuildHcFlavor <- arbitrary
617+
projectConfigBuildHcPath <- arbitraryFlag arbitraryShortToken
618+
projectConfigBuildHcPkg <- arbitraryFlag arbitraryShortToken
619619
projectConfigHaddockIndex <- arbitrary
620620
projectConfigInstallDirs <- fixInstallDirs <$> arbitrary
621621
projectConfigPackageDBs <- shortListOf 2 arbitrary
@@ -663,9 +663,9 @@ instance Arbitrary ProjectConfigShared where
663663
<*> shrinker projectConfigHcFlavor
664664
<*> shrinkerAla (fmap NonEmpty) projectConfigHcPath
665665
<*> shrinkerAla (fmap NonEmpty) projectConfigHcPkg
666-
<*> shrinker projectConfigHostHcFlavor
667-
<*> shrinkerAla (fmap NonEmpty) projectConfigHostHcPath
668-
<*> shrinkerAla (fmap NonEmpty) projectConfigHostHcPkg
666+
<*> shrinker projectConfigBuildHcFlavor
667+
<*> shrinkerAla (fmap NonEmpty) projectConfigBuildHcPath
668+
<*> shrinkerAla (fmap NonEmpty) projectConfigBuildHcPkg
669669
<*> shrinker projectConfigHaddockIndex
670670
<*> shrinker projectConfigInstallDirs
671671
<*> shrinker projectConfigPackageDBs

0 commit comments

Comments
 (0)