diff options
author | Zachary Hueras <zhueras@chitika.com> | 2016-02-01 15:30:32 -0500 |
---|---|---|
committer | Zachary Hueras <zhueras@chitika.com> | 2016-02-02 13:58:08 -0500 |
commit | 61ce3eaa3e1d4d5cef3f05e1aafba2e2c9f70ef5 (patch) | |
tree | 2a367a7b75cdce8541ce8f3bac376f2020c76730 /src | |
parent | a229a21ffb5af043ade5c3834a669378e3a9658f (diff) |
Add secondary hook for rebar_prv_compile
erlc_compile, for before/after compiling .erls to
.beams, but before .app.src to .app
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_prv_compile.erl | 18 |
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 |