summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2018-01-15 12:31:47 +0100
committerPaweł Chmielowski <pchmielowski@process-one.net>2018-01-15 12:31:47 +0100
commita7639fd4ad459aad5ad2d8fbe3b8c9414e5d4350 (patch)
treecc0569b477724af3e52a336778bcea8da96f33f7
parentUse override syntax that rebar3 accepts (diff)
Call configure on deps in separate rebar command that compile
This way we rebar.config.script can use vars detected by configure
-rw-r--r--Makefile.in1
-rw-r--r--plugins/configure_deps.erl5
-rw-r--r--plugins/override_opts.erl6
-rw-r--r--rebar.config3
-rw-r--r--rebar.config.script4
5 files changed, 13 insertions, 6 deletions
diff --git a/Makefile.in b/Makefile.in
index fa2c3fd3..c4e31bee 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,6 +97,7 @@ deps/.got:
$(REBAR) get-deps && :> deps/.got
deps/.built: deps/.got
+ $(REBAR) recursive-deps
$(REBAR) compile && :> deps/.built
src: deps/.built
diff --git a/plugins/configure_deps.erl b/plugins/configure_deps.erl
new file mode 100644
index 00000000..181da0b0
--- /dev/null
+++ b/plugins/configure_deps.erl
@@ -0,0 +1,5 @@
+-module(configure_deps).
+-export(['configure-deps'/2]).
+
+'configure-deps'(Config, Vals) ->
+ {ok, Config}.
diff --git a/plugins/override_opts.erl b/plugins/override_opts.erl
index df875c55..1d321fc8 100644
--- a/plugins/override_opts.erl
+++ b/plugins/override_opts.erl
@@ -2,13 +2,13 @@
-export([preprocess/2]).
override_opts(override, Config, Opts) ->
- lists:foldl(fun({Opt, [Value]}, Conf) ->
+ lists:foldl(fun({Opt, Value}, Conf) ->
rebar_config:set(Conf, Opt, Value)
end, Config, Opts);
override_opts(add, Config, Opts) ->
- lists:foldl(fun({Opt, [Value]}, Conf) ->
+ lists:foldl(fun({Opt, Value}, Conf) ->
V = rebar_config:get_local(Conf, Opt, []),
- rebar_config:set(Conf, Opt, [Value | V])
+ rebar_config:set(Conf, Opt, V ++ Value)
end, Config, Opts).
preprocess(Config, _Dirs) ->
diff --git a/rebar.config b/rebar.config
index 0b40ade5..3bce1bf0 100644
--- a/rebar.config
+++ b/rebar.config
@@ -111,7 +111,7 @@
{if_rebar3, {plugins, [rebar3_hex, {provider_asn1, "0.2.0"}]}}.
{if_not_rebar3, {plugins, [
- deps_erl_opts, override_deps_versions, override_opts,
+ deps_erl_opts, override_deps_versions, override_opts, configure_deps,
{if_var_true, elixir, rebar_elixir_compiler},
{if_var_true, elixir, rebar_exunit}
]}}.
@@ -153,6 +153,7 @@
{if_version_above, "17", {cover_enabled, true}}.
{cover_export_enabled, true}.
+{recursive_cmds, ['configure-deps']}.
{post_hook_configure, [{"fast_tls", []},
{"stringprep", []},
diff --git a/rebar.config.script b/rebar.config.script
index b8eeaeb1..ed024f4a 100644
--- a/rebar.config.script
+++ b/rebar.config.script
@@ -298,8 +298,8 @@ GenDepsConfigure =
fun(Hooks) ->
lists:map(fun({Pkg, Flags}) ->
DepPath = ResolveDepPath("deps/" ++ Pkg ++ "/"),
- {add, list_to_atom(Pkg), [{pre_hooks, [{'compile',
- lists:flatten(GenDepConfigureLine(DepPath, Flags))}]}]}
+ Line = lists:flatten(GenDepConfigureLine(DepPath, Flags)),
+ {add, list_to_atom(Pkg), [{pre_hooks, [{'compile', Line}, {'configure-deps', Line}]}]}
end, Hooks)
end,