mirror of
https://github.com/correl/rebar.git
synced 2024-12-18 03:00:17 +00:00
Merging w/ mainline
This commit is contained in:
commit
ab817cd020
3 changed files with 50 additions and 2 deletions
|
@ -8,8 +8,8 @@ _rebar()
|
||||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
sopts="-h -c -v -f -j"
|
sopts="-h -c -v -f -j"
|
||||||
lopts=" --help --commands --verbose --force --jobs="
|
lopts=" --help --commands --verbose --force --jobs="
|
||||||
cmdsnvars="analyze build_plt check_plt clean compile \
|
cmdsnvars="analyze build_plt check_plt check-deps clean compile \
|
||||||
create-app create-node delete-deps eunit \
|
create create-app create-node delete-deps eunit \
|
||||||
get-deps generate install int_test perf_test test \
|
get-deps generate install int_test perf_test test \
|
||||||
case= force=1 jobs= suite= verbose=1 appid= target= template="
|
case= force=1 jobs= suite= verbose=1 appid= target= template="
|
||||||
|
|
||||||
|
|
|
@ -173,6 +173,7 @@ commands() ->
|
||||||
"create-app Create simple app skel~n"
|
"create-app Create simple app skel~n"
|
||||||
"create-node Create simple node skel~n"
|
"create-node Create simple node skel~n"
|
||||||
"~n"
|
"~n"
|
||||||
|
"check-deps Display to be fetched dependencies~n"
|
||||||
"get-deps Fetch dependencies~n"
|
"get-deps Fetch dependencies~n"
|
||||||
"delete-deps Delete fetched dependencies~n"
|
"delete-deps Delete fetched dependencies~n"
|
||||||
"~n"
|
"~n"
|
||||||
|
|
|
@ -40,6 +40,14 @@
|
||||||
|
|
||||||
-spec compile(Config::#config{}, AppFile::string()) -> 'ok'.
|
-spec compile(Config::#config{}, AppFile::string()) -> 'ok'.
|
||||||
compile(Config, _AppFile) ->
|
compile(Config, _AppFile) ->
|
||||||
|
rebar_base_compiler:run(Config,
|
||||||
|
rebar_config:get_list(Config, xrl_first_files, []),
|
||||||
|
"src", ".xrl", "src", ".erl",
|
||||||
|
fun compile_xrl/3),
|
||||||
|
rebar_base_compiler:run(Config,
|
||||||
|
rebar_config:get_list(Config, yrl_first_files, []),
|
||||||
|
"src", ".yrl", "src", ".erl",
|
||||||
|
fun compile_yrl/3),
|
||||||
doterl_compile(Config, "ebin"),
|
doterl_compile(Config, "ebin"),
|
||||||
rebar_base_compiler:run(Config, rebar_config:get_list(Config, mib_first_files, []),
|
rebar_base_compiler:run(Config, rebar_config:get_list(Config, mib_first_files, []),
|
||||||
"mibs", ".mib", "priv/mibs", ".bin",
|
"mibs", ".mib", "priv/mibs", ".bin",
|
||||||
|
@ -52,6 +60,11 @@ clean(_Config, _AppFile) ->
|
||||||
%% much slower.
|
%% much slower.
|
||||||
ok = rebar_file_utils:rm_rf("ebin/*.beam priv/mibs/*.bin"),
|
ok = rebar_file_utils:rm_rf("ebin/*.beam priv/mibs/*.bin"),
|
||||||
|
|
||||||
|
YrlFiles = rebar_utils:find_files("src", "^.*\\.[x|y]rl\$"),
|
||||||
|
rebar_file_utils:delete_each(
|
||||||
|
[ binary_to_list(iolist_to_binary(re:replace(F, "\\.[x|y]rl$", ".erl")))
|
||||||
|
|| F <- YrlFiles ]),
|
||||||
|
|
||||||
%% Erlang compilation is recursive, so it's possible that we have a nested
|
%% Erlang compilation is recursive, so it's possible that we have a nested
|
||||||
%% directory structure in ebin with .beam files within. As such, we want
|
%% directory structure in ebin with .beam files within. As such, we want
|
||||||
%% to scan whatever is left in the ebin/ directory for sub-dirs which
|
%% to scan whatever is left in the ebin/ directory for sub-dirs which
|
||||||
|
@ -198,6 +211,40 @@ compile_mib(Source, Target, Config) ->
|
||||||
?FAIL
|
?FAIL
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
-spec compile_xrl(Source::string(), Target::string(), Config::#config{}) -> 'ok'.
|
||||||
|
compile_xrl(Source, Target, Config) ->
|
||||||
|
Opts = [{scannerfile, Target}, {return, true}
|
||||||
|
|rebar_config:get(Config, xrl_opts, [])],
|
||||||
|
compile_xrl_yrl(Source, Target, Config, Opts, leex).
|
||||||
|
|
||||||
|
-spec compile_yrl(Source::string(), Target::string(), Config::#config{}) -> 'ok'.
|
||||||
|
compile_yrl(Source, Target, Config) ->
|
||||||
|
Opts = [{parserfile, Target}, {return, true}
|
||||||
|
|rebar_config:get(Config, yrl_opts, [])],
|
||||||
|
compile_xrl_yrl(Source, Target, Config, Opts, yecc).
|
||||||
|
|
||||||
|
-spec compile_xrl_yrl(Source::string(), Target::string(), Config::#config{},
|
||||||
|
Opts::list(), Mod::atom()) -> 'ok'.
|
||||||
|
compile_xrl_yrl(Source, Target, Config, Opts, Mod) ->
|
||||||
|
case needs_compile(Source, Target, []) of
|
||||||
|
true ->
|
||||||
|
case Mod:file(Source, Opts) of
|
||||||
|
{ok, _, []} ->
|
||||||
|
ok;
|
||||||
|
{ok, _, _Warnings} ->
|
||||||
|
case lists:member(fail_on_warnings, Config) of
|
||||||
|
true ->
|
||||||
|
?FAIL;
|
||||||
|
false ->
|
||||||
|
ok
|
||||||
|
end;
|
||||||
|
_X ->
|
||||||
|
?FAIL
|
||||||
|
end;
|
||||||
|
false ->
|
||||||
|
skipped
|
||||||
|
end.
|
||||||
|
|
||||||
gather_src([], Srcs) ->
|
gather_src([], Srcs) ->
|
||||||
Srcs;
|
Srcs;
|
||||||
gather_src([Dir|Rest], Srcs) ->
|
gather_src([Dir|Rest], Srcs) ->
|
||||||
|
|
Loading…
Reference in a new issue