diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2016-06-09 21:01:55 -0400 |
---|---|---|
committer | Fred Hebert <mononcqc@ferd.ca> | 2016-06-09 21:01:55 -0400 |
commit | 1875eadd9a752464babb96a1b9711a5b6d754855 (patch) | |
tree | 9a51734e929444d2f928b8f8ad60272f1fac85db /src/rebar_erlc_compiler.erl | |
parent | 76f30b18845039bcd749f0f99164924e04fa1e1c (diff) |
Fix alternative path printing, default is relative
This required moving the reporting functions to rebar_base_compiler but
since this was already done for error_tuple, this seems to make sense.
Paths are also reformatted for warnings in erlc files.
Diffstat (limited to 'src/rebar_erlc_compiler.erl')
-rw-r--r-- | src/rebar_erlc_compiler.erl | 46 |
1 files changed, 10 insertions, 36 deletions
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl index a2eb2e2..7875449 100644 --- a/src/rebar_erlc_compiler.erl +++ b/src/rebar_erlc_compiler.erl @@ -54,9 +54,6 @@ -define(DEFAULT_OUTDIR, "ebin"). -define(RE_PREFIX, "^[^._]"). --type compiler_source_format() :: absolute | relative | build. --define(DEFAULT_COMPILER_SOURCE_FORMAT, build). - %% =================================================================== %% Public API %% =================================================================== @@ -511,43 +508,20 @@ internal_erl_compile(Opts, Dir, Module, OutDir, ErlOpts) -> {ok, _Mod} -> ok; {ok, _Mod, Ws} -> - rebar_base_compiler:ok_tuple(Module, Ws); + FormattedWs = format_error_sources(Ws, Opts), + rebar_base_compiler:ok_tuple(Module, FormattedWs); {error, Es, Ws} -> - error_tuple(Module, Es, Ws, AllOpts, source_format(Opts)) + error_tuple(Module, Es, Ws, AllOpts, Opts) end. --spec source_format(rebar_dict()) -> compiler_source_format(). -source_format(Opts) -> - case rebar_opts:get(Opts, compiler_source_format, - ?DEFAULT_COMPILER_SOURCE_FORMAT) of - V when V == absolute; - V == relative; - V == build -> V; - Other -> - ?WARN("Invalid argument ~p for compiler_source_format - " - "assuming ~s~n", [Other, ?DEFAULT_COMPILER_SOURCE_FORMAT]), - ?DEFAULT_COMPILER_SOURCE_FORMAT - end. +error_tuple(Module, Es, Ws, AllOpts, Opts) -> + FormattedEs = format_error_sources(Es, Opts), + FormattedWs = format_error_sources(Ws, Opts), + rebar_base_compiler:error_tuple(Module, FormattedEs, FormattedWs, AllOpts). -error_tuple(Module, Es, Ws, Opts, SourceFormat) -> - Cwd = rebar_dir:get_cwd(), - FormattedEs = format_error_sources(Es, SourceFormat, Cwd), - FormattedWs = format_error_sources(Ws, SourceFormat, Cwd), - rebar_base_compiler:error_tuple(Module, FormattedEs, FormattedWs, Opts). - -format_error_sources(Es, Format, Cwd) -> - [{format_error_source(Src, Format, Cwd), Desc} || {Src, Desc} <- Es]. - -format_error_source(Src, absolute, _Cwd) -> - resolve_linked_source(Src); -format_error_source(Src, relative, Cwd) -> - rebar_dir:make_relative_path(resolve_linked_source(Src), Cwd); -format_error_source(Src, build, _Cwd) -> - Src. - -resolve_linked_source(Src) -> - {Dir, Base} = rebar_file_utils:split_dirname(Src), - filename:join(rebar_file_utils:resolve_link(Dir), Base). +format_error_sources(Es, Opts) -> + [{rebar_base_compiler:format_error_source(Src, Opts), Desc} + || {Src, Desc} <- Es]. target_base(OutDir, Source) -> filename:join(OutDir, filename:basename(Source, ".erl")). |