Skip to content
Snippets Groups Projects
Commit e2b045fa authored by Ondřej Šebek's avatar Ondřej Šebek Committed by Mikolaj
Browse files

Honor build-tool-depends in CmdRun

Similarly to CmdExec and CmdTest, get paths to all dependency binaries
and add those to PATH. Unlike CmdExec, add just the explicitly required
paths.

(cherry picked from commit f06195d3)

# Conflicts:
#	cabal-install/src/Distribution/Client/CmdExec.hs
parent 2c0ab5bb
No related branches found
No related tags found
No related merge requests found
...@@ -268,6 +268,7 @@ withTempEnvFile verbosity baseCtx buildCtx buildStatus action = do ...@@ -268,6 +268,7 @@ withTempEnvFile verbosity baseCtx buildCtx buildStatus action = do
buildStatus buildStatus
action envOverrides) action envOverrides)
<<<<<<< HEAD
<<<<<<< HEAD <<<<<<< HEAD
pathAdditions :: Verbosity -> ProjectBaseContext -> ProjectBuildContext -> IO [FilePath] pathAdditions :: Verbosity -> ProjectBaseContext -> ProjectBuildContext -> IO [FilePath]
pathAdditions verbosity ProjectBaseContext{..}ProjectBuildContext{..} = do pathAdditions verbosity ProjectBaseContext{..}ProjectBuildContext{..} = do
...@@ -278,6 +279,9 @@ pathAdditions verbosity ProjectBaseContext{..}ProjectBuildContext{..} = do ...@@ -278,6 +279,9 @@ pathAdditions verbosity ProjectBaseContext{..}ProjectBuildContext{..} = do
paths = S.toList paths = S.toList
$ binDirectories distDirLayout elaboratedShared elaboratedPlanToExecute $ binDirectories distDirLayout elaboratedShared elaboratedPlanToExecute
======= =======
=======
-- | Get paths to all dependency executables to be included in PATH.
>>>>>>> f06195d3a (Honor build-tool-depends in CmdRun)
pathAdditions :: ProjectBaseContext -> ProjectBuildContext -> [FilePath] pathAdditions :: ProjectBaseContext -> ProjectBuildContext -> [FilePath]
pathAdditions ProjectBaseContext{..} ProjectBuildContext{..} = pathAdditions ProjectBaseContext{..} ProjectBuildContext{..} =
paths ++ cabalConfigPaths paths ++ cabalConfigPaths
...@@ -292,6 +296,7 @@ pathAdditions ProjectBaseContext{..} ProjectBuildContext{..} = ...@@ -292,6 +296,7 @@ pathAdditions ProjectBaseContext{..} ProjectBuildContext{..} =
binDirectories distDirLayout elaboratedShared elaboratedPlanToExecute binDirectories distDirLayout elaboratedShared elaboratedPlanToExecute
>>>>>>> 46df8ba71 (Fix extra-prog-path propagation in the codebase.) >>>>>>> 46df8ba71 (Fix extra-prog-path propagation in the codebase.)
-- | Get paths to all dependency executables to be included in PATH.
binDirectories binDirectories
:: DistDirLayout :: DistDirLayout
-> ElaboratedSharedConfig -> ElaboratedSharedConfig
......
...@@ -107,6 +107,7 @@ import Distribution.Client.ProjectPlanning ...@@ -107,6 +107,7 @@ import Distribution.Client.ProjectPlanning
) )
import Distribution.Client.ProjectPlanning.Types import Distribution.Client.ProjectPlanning.Types
( dataDirsEnvironmentForPlan ( dataDirsEnvironmentForPlan
, elabExeDependencyPaths
) )
import Distribution.Client.ScriptUtils import Distribution.Client.ScriptUtils
( AcceptNoTargets (..) ( AcceptNoTargets (..)
...@@ -335,11 +336,13 @@ runAction flags@NixStyleFlags {..} targetAndArgs globalFlags ...@@ -335,11 +336,13 @@ runAction flags@NixStyleFlags {..} targetAndArgs globalFlags
|| buildSettingOnlyDownload (buildSettings baseCtx) || buildSettingOnlyDownload (buildSettings baseCtx)
let extraPath = let extraPath =
fromNubList elabExeDependencyPaths pkg
. projectConfigProgPathExtra ++ ( fromNubList
. projectConfigShared . projectConfigProgPathExtra
. projectConfig . projectConfigShared
$ baseCtx . projectConfig
$ baseCtx
)
logExtraProgramSearchPath verbosity extraPath logExtraProgramSearchPath verbosity extraPath
......
synopsis: Fix run command environment
packages: cabal-install
prs: #9341
issues: #8391
description: {
- The Run command will now add binary paths of dependencies
(build-tool-depends) to PATH, just like Exec and Test commands.
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment