summaryrefslogtreecommitdiff
path: root/src/rebar_erlc_compiler.erl
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2016-06-09 21:01:55 -0400
committerFred Hebert <mononcqc@ferd.ca>2016-06-09 21:01:55 -0400
commit1875eadd9a752464babb96a1b9711a5b6d754855 (patch)
tree9a51734e929444d2f928b8f8ad60272f1fac85db /src/rebar_erlc_compiler.erl
parent76f30b18845039bcd749f0f99164924e04fa1e1c (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.erl46
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")).