浏览代码

reset hooks for project apps so they are only run once

pull/3/head
Tristan Sloughter 10 年前
父节点
当前提交
6121f51124
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. +7
    -3
      src/rebar_prv_compile.erl

+ 7
- 3
src/rebar_prv_compile.erl 查看文件

@ -58,17 +58,21 @@ do(State) ->
end, Deps),
%% Use the project State for building project apps
Cwd = rebar_utils:get_cwd(),
run_compile_hooks(Cwd, pre_hooks, State1),
%% Set hooks to empty so top-level hooks aren't run for each project app
State2 = rebar_state:set(rebar_state:set(State1, post_hooks, []), pre_hooks, []),
lists:foreach(fun(AppInfo) ->
AppDir = rebar_app_info:dir(AppInfo),
C = rebar_config:consult(AppDir),
S = rebar_state:new(State1, C, AppDir),
S = rebar_state:new(State2, C, AppDir),
%% Legacy hook support
%% TODO: for multi-app projects run top-level hooks only once
run_compile_hooks(AppDir, pre_hooks, S),
build(S, AppInfo),
run_compile_hooks(AppDir, pre_hooks, S)
run_compile_hooks(AppDir, post_hooks, S)
end, ProjectApps),
run_compile_hooks(Cwd, post_hooks, State1),
{ok, State1}.

正在加载...
取消
保存