Skip to content

Commit 0609a0e

Browse files
authored
Merge pull request #35 from puretype/flexible-rustler-dep
Rustler crate compilation changes
2 parents 0304cc2 + 59ff021 commit 0609a0e

2 files changed

Lines changed: 14 additions & 3 deletions

File tree

lib/ortex/native.ex

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,27 @@
11
defmodule Ortex.Native do
22
@moduledoc false
33

4+
@rustler_version Application.spec(:rustler, :vsn) |> to_string() |> Version.parse!()
5+
46
# We have to compile the crate before `use Rustler` compiles the crate since
57
# cargo downloads the onnxruntime shared libraries and they are not available
68
# to load or copy into Elixir's during the on_load or Elixir compile steps.
79
# In the future, this may be configurable in Rustler.
8-
Rustler.Compiler.compile_crate(__MODULE__, otp_app: :ortex, crate: :ortex)
10+
if Version.compare(@rustler_version, "0.30.0") in [:gt, :eq] do
11+
Rustler.Compiler.compile_crate(:ortex, Application.compile_env(:ortex, __MODULE__, []),
12+
otp_app: :ortex,
13+
crate: :ortex
14+
)
15+
else
16+
Rustler.Compiler.compile_crate(__MODULE__, otp_app: :ortex, crate: :ortex)
17+
end
18+
919
Ortex.Util.copy_ort_libs()
1020

1121
use Rustler,
1222
otp_app: :ortex,
13-
crate: :ortex
23+
crate: :ortex,
24+
skip_compilation?: true
1425

1526
# When loading a NIF module, dummy clauses for all NIF function are required.
1627
# NIF dummies usually just error out when called when the NIF is not loaded, as that should never normally happen.

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ defmodule Ortex.MixProject do
3131
# Run "mix help deps" to learn about dependencies.
3232
defp deps do
3333
[
34-
{:rustler, "~> 0.29.0"},
34+
{:rustler, "~> 0.27"},
3535
{:nx, "~> 0.6"},
3636
{:tokenizers, "~> 0.4", only: :dev},
3737
{:ex_doc, "0.29.4", only: :dev, runtime: false},

0 commit comments

Comments
 (0)