@@ -39,7 +39,7 @@ import Distribution.Client.Types
39
39
, SourcePackageDb (.. ) )
40
40
import qualified Distribution.Client.InstallPlan as InstallPlan
41
41
import Distribution.Package
42
- ( Package (.. ), PackageName , unPackageName )
42
+ ( Package (.. ), PackageName , mkPackageName , unPackageName )
43
43
import Distribution.Types.PackageId
44
44
( PackageIdentifier (.. ) )
45
45
import Distribution.Client.ProjectConfig
@@ -53,6 +53,7 @@ import Distribution.Client.ProjectFlags (ProjectFlags (..))
53
53
import Distribution.Client.ProjectConfig.Types
54
54
( ProjectConfig (.. ), ProjectConfigShared (.. )
55
55
, ProjectConfigBuildOnly (.. ), PackageConfig (.. )
56
+ , MapMappend (.. )
56
57
, getMapLast , getMapMappend , projectConfigLogsDir
57
58
, projectConfigStoreDir , projectConfigBuildOnly
58
59
, projectConfigConfigFile )
@@ -430,12 +431,24 @@ installAction flags@NixStyleFlags { extraFlags = clientInstallFlags', .. } targe
430
431
configFlags' = disableTestsBenchsByDefault configFlags
431
432
verbosity = fromFlagOrDefault normal (configVerbosity configFlags')
432
433
ignoreProject = flagIgnoreProject projectFlags
433
- cliConfig = commandLineFlagsToProjectConfig
434
- globalFlags
435
- flags { configFlags = configFlags' }
436
- clientInstallFlags'
434
+ baseCliConfig = commandLineFlagsToProjectConfig
435
+ globalFlags
436
+ flags { configFlags = configFlags' }
437
+ clientInstallFlags'
438
+ cliConfig = addLocalConfigToTargets baseCliConfig targetStrings
437
439
globalConfigFlag = projectConfigConfigFile (projectConfigShared cliConfig)
438
440
441
+ -- | Treat all direct targets of install command as local packages: #8637
442
+ addLocalConfigToTargets :: ProjectConfig -> [String ] -> ProjectConfig
443
+ addLocalConfigToTargets config targetStrings
444
+ = config {
445
+ projectConfigSpecificPackage = projectConfigSpecificPackage config
446
+ <> MapMappend (Map. fromList targetPackageConfigs)
447
+ }
448
+ where
449
+ localConfig = projectConfigLocalPackages config
450
+ targetPackageConfigs = map (\ x -> (mkPackageName x, localConfig)) targetStrings
451
+
439
452
-- | Verify that invalid config options were not passed to the install command.
440
453
--
441
454
-- If an invalid configuration is found the command will @die'@.
0 commit comments