diff --git a/src/rebar_mix_protocol_consolidation.exs b/src/rebar_mix_protocol_consolidation.exs index 1d6ba7e..bf42a9d 100644 --- a/src/rebar_mix_protocol_consolidation.exs +++ b/src/rebar_mix_protocol_consolidation.exs @@ -3,6 +3,12 @@ paths = String.split(System.get_env("REBAR_DEPS_EBIN", ""), ":") out_dir = System.get_env("REBAR_PROTOCOLS_OUTDIR", "") File.mkdir_p!(out_dir) +for path <- paths do + path + |> to_charlist() + |> :code.add_path() +end + # For protocol consolidation run the following script # paths is a list of paths to dependency ebin directory # output is the output directory for the compiled protocol beam files diff --git a/src/rebar_mix_utils.erl b/src/rebar_mix_utils.erl index 4d79b9b..7a96343 100644 --- a/src/rebar_mix_utils.erl +++ b/src/rebar_mix_utils.erl @@ -96,6 +96,8 @@ add_elixir(State) -> code:add_patha(filename:join(LibDir, "elixir/ebin")), code:add_patha(filename:join(LibDir, "mix/ebin")), code:add_patha(filename:join(LibDir, "logger/ebin")), + code:add_patha(filename:join(LibDir, "eex/ebin")), + code:add_patha(filename:join(LibDir, "iex/ebin")), State. %% @doc Add elixir to the application build path @@ -119,6 +121,16 @@ add_elixir_to_build_path(State)-> MixBuildPath = filename:join(BuildPath, "mix"), file:make_symlink(MixPath, MixBuildPath), + %% Link EEx + EExPath = filename:join(LibDir, "eex"), + EExBuildPath = filename:join(BuildPath, "eex"), + file:make_symlink(EExPath, EExBuildPath), + + %% Link IEx + IExPath = filename:join(LibDir, "iex"), + IExBuildPath = filename:join(BuildPath, "iex"), + file:make_symlink(IExPath, IExBuildPath), + State. %% @doc Add elixir to a list of lock dependencies. @@ -128,7 +140,9 @@ elixir_to_lock(Lock) -> [ {<<"elixir">>, {iex_dep, <<"elixir">>, <<"">>}, 0}, {<<"logger">>, {iex_dep, <<"logger">>, <<"">>}, 0}, - {<<"mix">>, {iex_dep, <<"mix">>, <<"">>}, 0} + {<<"mix">>, {iex_dep, <<"mix">>, <<"">>}, 0}, + {<<"eex">>, {iex_dep, <<"eex">>, <<"">>}, 0}, + {<<"iex">>, {iex_dep, <<"iex">>, <<"">>}, 0} ]. %% @doc compiles a elixir app which is located in AppDir.