Skip to content

Commit 60e200d

Browse files
committed
Merge pull request #5584 from typedrat/fix-5554
Filter out executables from package-id flags
1 parent 0ba16f5 commit 60e200d

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

cabal-install/Distribution/Client/CmdRepl.hs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import Distribution.Client.ProjectConfig
3535
import Distribution.Client.ProjectOrchestration
3636
import Distribution.Client.ProjectPlanning
3737
( ElaboratedSharedConfig(..), ElaboratedInstallPlan )
38+
import Distribution.Client.ProjectPlanning.Types
39+
( elabOrderExeDependencies )
3840
import Distribution.Client.RebuildMonad
3941
( runRebuild )
4042
import Distribution.Client.Setup
@@ -407,14 +409,20 @@ addDepsToProjectTarget deps pkgId ctx =
407409
generateReplFlags :: Bool -> ElaboratedInstallPlan -> OriginalComponentInfo -> ReplFlags
408410
generateReplFlags includeTransitive elaboratedPlan OriginalComponentInfo{..} = flags
409411
where
412+
exeDeps :: [UnitId]
413+
exeDeps =
414+
foldMap
415+
(InstallPlan.foldPlanPackage (const []) elabOrderExeDependencies)
416+
(InstallPlan.dependencyClosure elaboratedPlan [ociUnitId])
417+
410418
deps, deps', trans, trans' :: [UnitId]
411419
flags :: ReplFlags
412420
deps = installedUnitId <$> InstallPlan.directDeps elaboratedPlan ociUnitId
413421
deps' = deps \\ ociOriginalDeps
414422
trans = installedUnitId <$> InstallPlan.dependencyClosure elaboratedPlan deps'
415423
trans' = trans \\ ociOriginalDeps
416-
flags = ("-package-id " ++) . prettyShow <$>
417-
if includeTransitive then trans' else deps'
424+
flags = fmap (("-package-id " ++) . prettyShow) . (\\ exeDeps)
425+
$ if includeTransitive then trans' else deps'
418426

419427
-- | This defines what a 'TargetSelector' means for the @repl@ command.
420428
-- It selects the 'AvailableTarget's that the 'TargetSelector' refers to,

0 commit comments

Comments
 (0)