Current section

Files

Jump to
xprof_core rebar.config.script
Raw

rebar.config.script

EnsureMacro =
fun(Macro, Value, Config0) ->
ErlOpts = proplists:get_value(erl_opts, Config0, []),
ErlOptsCleared =
lists:filter(fun({d, Macro}) -> false;
({d, Macro, _}) -> false;
(_) -> true
end, ErlOpts),
NewErlOpts = [{d, Macro, Value}|ErlOptsCleared],
lists:keystore(erl_opts, 1, Config0, {erl_opts, NewErlOpts})
end.
DeleteDep =
fun(Dep, Config0) ->
Deps = proplists:get_value(deps, Config0, []),
DepsCleared = lists:keydelete(Dep, 1, Deps),
lists:keystore(deps, 1, Config0, {deps, DepsCleared})
end.
ErlHist =
fun(Config0) ->
case os:getenv("XPROF_ERL_HIST") of
false ->
Config0;
_ ->
Config1 = EnsureMacro('XPROF_ERL_HIST', true, Config0),
%% hdr_histogram also deleted from .app.src applications
DeleteDep(hdr_histogram, Config1)
end
end.
Rebar2 =
fun(Config0) ->
case erlang:function_exported(rebar3, main, 1) of
true -> % rebar3
Config0;
false -> % rebar 2.x or older
%% Only include app names for deps.
%% Top level app should declare source and version.
Deps = proplists:get_value(deps, Config0, []),
NewDeps = [element(1, Dep)||Dep <- Deps],
lists:keystore(deps, 1, Config0, {deps, NewDeps})
end
end.
Rebar2(ErlHist(CONFIG)).