Skip to content

Commit d6df870

Browse files
authored
[fix] finding the correct URL of the current target (#72)
1 parent 4c9970f commit d6df870

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

lib/elixir_make/artefact.ex

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ defmodule ElixirMake.Artefact do
142142
## Archive/NIF urls
143143

144144
@doc """
145-
Returns all available target-url pairs available.
145+
Returns all available {{target, nif_version}, url} pairs available.
146146
"""
147147
def available_target_urls(config, precompiler) do
148148
targets = precompiler.all_supported_targets(:fetch)
@@ -171,7 +171,8 @@ defmodule ElixirMake.Artefact do
171171
archive_filename = archive_filename(config, target, nif_version)
172172

173173
[
174-
{target, String.replace(url_template, "@{artefact_filename}", archive_filename)}
174+
{{target, nif_version},
175+
String.replace(url_template, "@{artefact_filename}", archive_filename)}
175176
| acc
176177
]
177178
else
@@ -187,12 +188,13 @@ defmodule ElixirMake.Artefact do
187188
Returns the url for the current target.
188189
"""
189190
def current_target_url(config, precompiler, nif_version) do
190-
case precompiler.current_target(nif_version) do
191+
case precompiler.current_target() do
191192
{:ok, current_target} ->
192193
available_urls = available_target_urls(config, precompiler)
194+
target_at_nif_version = {current_target, nif_version}
193195

194-
case List.keyfind(available_urls, current_target, 0) do
195-
{^current_target, download_url} ->
196+
case List.keyfind(available_urls, target_at_nif_version, 0) do
197+
{^target_at_nif_version, download_url} ->
196198
{:ok, current_target, download_url}
197199

198200
nil ->

lib/mix/tasks/compile.elixir_make.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,7 @@ defmodule Mix.Tasks.Compile.ElixirMake do
205205
end
206206

207207
defp download_or_reuse_nif(config, precompiler, app_priv) do
208-
# should we allow this value to be overwritten by an env var?
209-
nif_version = :erlang.system_info(:nif_version)
208+
nif_version = "#{:erlang.system_info(:nif_version)}"
210209

211210
case Artefact.current_target_url(config, precompiler, nif_version) do
212211
{:ok, target, url} ->

lib/mix/tasks/elixir_make.checksum.ex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ defmodule Mix.Tasks.ElixirMake.Checksum do
4848
Keyword.get(options, :only_local) ->
4949
case Artefact.current_target_url(config, precompiler, :erlang.system_info(:nif_version)) do
5050
{:ok, target, url} ->
51-
[{target, url}]
51+
[{{target, "#{:erlang.system_info(:nif_version)}"}, url}]
5252

5353
{:error, {:unavailable_target, current_target, error}} ->
5454
recover =
@@ -93,7 +93,7 @@ defmodule Mix.Tasks.ElixirMake.Checksum do
9393
tasks =
9494
Task.async_stream(
9595
urls,
96-
fn {_target, url} -> {url, Artefact.download(url)} end,
96+
fn {{_target, _nif_version}, url} -> {url, Artefact.download(url)} end,
9797
timeout: :infinity,
9898
ordered: false
9999
)

0 commit comments

Comments
 (0)