Skip to content

Commit a7dae16

Browse files
author
José Valim
committed
Automatically enforce build path for in_dependency
1 parent eb46fe3 commit a7dae16

File tree

5 files changed

+22
-21
lines changed

5 files changed

+22
-21
lines changed

lib/mix/lib/mix/deps.ex

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,10 @@ defmodule Mix.Deps do
185185
# This is important because the name of application in the
186186
# mix.exs file can be different than the actual name and we
187187
# choose to respect the one in the mix.exs.
188-
config = Keyword.put(config, :app_path, opts[:build])
189-
env = opts[:env] || :prod
188+
config = Keyword.merge(Mix.Project.deps_config, config)
189+
config = Keyword.put(config, :app_path, opts[:build])
190+
191+
env = opts[:env] || :prod
190192
old_env = Mix.env
191193

192194
try do

lib/mix/lib/mix/deps/converger.ex

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,9 @@ defmodule Mix.Deps.Converger do
4040
an updated depedency in case some processing is done.
4141
"""
4242
def all(rest, callback) do
43-
conf = Mix.Project.deps_config
4443
main = Mix.Deps.Retriever.children
4544
apps = Enum.map(main, &(&1.app))
46-
all(main, [], [], apps, conf, callback, rest)
45+
all(main, [], [], apps, callback, rest)
4746
end
4847

4948
# We traverse the tree of dependencies in a breadth-
@@ -85,28 +84,28 @@ defmodule Mix.Deps.Converger do
8584
# Now, since `d` was specified in a parent project, no
8685
# exception is going to be raised since d is considered
8786
# to be the authorative source.
88-
defp all([dep|t], acc, upper_breadths, current_breadths, config, callback, rest) do
87+
defp all([dep|t], acc, upper_breadths, current_breadths, callback, rest) do
8988
cond do
9089
new_acc = overriden_deps(acc, upper_breadths, dep) ->
91-
all(t, new_acc, upper_breadths, current_breadths, config, callback, rest)
90+
all(t, new_acc, upper_breadths, current_breadths, callback, rest)
9291
new_acc = diverged_deps(acc, dep) ->
93-
all(t, new_acc, upper_breadths, current_breadths, config, callback, rest)
92+
all(t, new_acc, upper_breadths, current_breadths, callback, rest)
9493
true ->
9594
{ dep, rest } = callback.(dep, rest)
9695

9796
# After we invoke the callback (which may actually check out the
9897
# dependency), we load the dependency including its latest info
9998
# and children information.
100-
{ dep, children } = Mix.Deps.Retriever.load(dep, config)
99+
{ dep, children } = Mix.Deps.Retriever.load(dep)
101100
children = reject_non_fullfilled_optional(children, current_breadths)
102101
dep = dep.deps(Enum.map(children, &(&1.app)))
103102

104-
{ acc, rest } = all(t, [dep|acc], upper_breadths, current_breadths, config, callback, rest)
105-
all(children, acc, current_breadths, dep.deps ++ current_breadths, config, callback, rest)
103+
{ acc, rest } = all(t, [dep|acc], upper_breadths, current_breadths, callback, rest)
104+
all(children, acc, current_breadths, dep.deps ++ current_breadths, callback, rest)
106105
end
107106
end
108107

109-
defp all([], acc, _upper, _current, _config, _callback, rest) do
108+
defp all([], acc, _upper, _current, _callback, rest) do
110109
{ acc, rest }
111110
end
112111

lib/mix/lib/mix/deps/retriever.ex

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ defmodule Mix.Deps.Retriever do
2020
Loads the given dependency information, including its
2121
latest status and children.
2222
"""
23-
def load(dep, config) do
23+
def load(dep) do
2424
Mix.Dep[manager: manager, scm: scm, opts: opts] = dep
2525
dep = dep.status(scm_status(scm, opts))
2626
dest = opts[:dest]
@@ -31,13 +31,13 @@ defmodule Mix.Deps.Retriever do
3131
{ dep, [] }
3232

3333
manager == :rebar ->
34-
rebar_dep(dep, config)
34+
rebar_dep(dep)
3535

3636
mix?(dest) ->
37-
mix_dep(dep.manager(:mix), config)
37+
mix_dep(dep.manager(:mix))
3838

3939
rebar?(dest) ->
40-
rebar_dep(dep.manager(:rebar), config)
40+
rebar_dep(dep.manager(:rebar))
4141

4242
make?(dest) ->
4343
{ dep.manager(:make), [] }
@@ -139,8 +139,8 @@ defmodule Mix.Deps.Retriever do
139139

140140
## Fetching
141141

142-
defp mix_dep(Mix.Dep[opts: opts] = dep, config) do
143-
Mix.Deps.in_dependency(dep, config, fn _ ->
142+
defp mix_dep(Mix.Dep[opts: opts] = dep) do
143+
Mix.Deps.in_dependency(dep, fn _ ->
144144
config = Mix.project
145145
umbrella? = Mix.Project.umbrella?
146146

@@ -156,8 +156,8 @@ defmodule Mix.Deps.Retriever do
156156
end)
157157
end
158158

159-
defp rebar_dep(Mix.Dep[] = dep, config) do
160-
Mix.Deps.in_dependency(dep, config, fn _ ->
159+
defp rebar_dep(Mix.Dep[] = dep) do
160+
Mix.Deps.in_dependency(dep, fn _ ->
161161
rebar = Mix.Rebar.load_config(".")
162162
extra = Dict.take(rebar, [:sub_dirs])
163163
{ dep.manager(:rebar).extra(extra), rebar_children(rebar) }

lib/mix/lib/mix/deps/umbrella.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ defmodule Mix.Deps.Umbrella do
2929
apps = Enum.map(deps, &(&1.app))
3030

3131
Enum.map(deps, fn(umbrella_dep) ->
32-
{ umbrella_dep, deps } = Mix.Deps.Retriever.load(umbrella_dep, [])
32+
{ umbrella_dep, deps } = Mix.Deps.Retriever.load(umbrella_dep)
3333
deps = lc Mix.Dep[] = dep inlist deps,
3434
Mix.Deps.available?(dep),
3535
dep.app in apps,

lib/mix/lib/mix/tasks/deps.compile.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ defmodule Mix.Tasks.Deps.Compile do
8585
end
8686

8787
defp do_mix(Mix.Dep[app: app] = dep, config) do
88-
Mix.Deps.in_dependency dep, config, fn _ ->
88+
Mix.Deps.in_dependency dep, fn _ ->
8989
case dev_compilation(app, config) do
9090
{ source, target } ->
9191
File.rm_rf!(target)

0 commit comments

Comments
 (0)