summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Hueras <zhueras@chitika.com>2016-02-01 15:30:32 -0500
committerZachary Hueras <zhueras@chitika.com>2016-02-02 13:58:08 -0500
commit61ce3eaa3e1d4d5cef3f05e1aafba2e2c9f70ef5 (patch)
tree2a367a7b75cdce8541ce8f3bac376f2020c76730
parenta229a21ffb5af043ade5c3834a669378e3a9658f (diff)
Add secondary hook for rebar_prv_compile
erlc_compile, for before/after compiling .erls to .beams, but before .app.src to .app
-rw-r--r--src/rebar_prv_compile.erl18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/rebar_prv_compile.erl b/src/rebar_prv_compile.erl
index 30af90b..136d6b3 100644
--- a/src/rebar_prv_compile.erl
+++ b/src/rebar_prv_compile.erl
@@ -13,6 +13,7 @@
-include("rebar.hrl").
-define(PROVIDER, compile).
+-define(ERLC_HOOK, erlc_compile).
-define(DEPS, [lock]).
%% ===================================================================
@@ -116,12 +117,15 @@ compile(State, Providers, AppInfo) ->
AppDir = rebar_app_info:dir(AppInfo),
AppInfo1 = rebar_hooks:run_all_hooks(AppDir, pre, ?PROVIDER, Providers, AppInfo, State),
- rebar_erlc_compiler:compile(AppInfo1),
- case rebar_otp_app:compile(State, AppInfo1) of
- {ok, AppInfo2} ->
- AppInfo3 = rebar_hooks:run_all_hooks(AppDir, post, ?PROVIDER, Providers, AppInfo2, State),
- has_all_artifacts(AppInfo3),
- AppInfo3;
+ AppInfo2 = rebar_hooks:run_all_hooks(AppDir, pre, ?ERLC_HOOK, Providers, AppInfo1, State),
+ rebar_erlc_compiler:compile(AppInfo2),
+ AppInfo3 = rebar_hooks:run_all_hooks(AppDir, post, ?ERLC_HOOK, Providers, AppInfo2, State),
+
+ case rebar_otp_app:compile(State, AppInfo3) of
+ {ok, AppInfo4} ->
+ AppInfo5 = rebar_hooks:run_all_hooks(AppDir, post, ?PROVIDER, Providers, AppInfo4, State),
+ has_all_artifacts(AppInfo5),
+ AppInfo5;
Error ->
throw(Error)
end.
@@ -143,7 +147,7 @@ paths_for_apps([App|Rest], Acc) ->
Paths = [filename:join([rebar_app_info:out_dir(App), Dir]) || Dir <- ["ebin"|ExtraDirs]],
FilteredPaths = lists:filter(fun ec_file:is_dir/1, Paths),
paths_for_apps(Rest, Acc ++ FilteredPaths).
-
+
paths_for_extras(State, Apps) ->
F = fun(App) -> rebar_app_info:dir(App) == rebar_state:dir(State) end,
%% check that this app hasn't already been dealt with