diff options
author | Fred Hebert <mononcqc@ferd.ca> | 2016-06-11 19:19:42 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-11 19:19:42 -0400 |
commit | dabf56646e47ba3e9c438fc86460a92e977d623c (patch) | |
tree | 9fe469085f8c5b62841c77070965bd106cd91200 /src/rebar_erlc_compiler.erl | |
parent | caaa4be10de29db59ff94949ba6ef7312b7feb8d (diff) | |
parent | 1875eadd9a752464babb96a1b9711a5b6d754855 (diff) |
Merge pull request #1227 from ferd/compiler-source-format
Compiler source paths in output are now relative
Diffstat (limited to 'src/rebar_erlc_compiler.erl')
-rw-r--r-- | src/rebar_erlc_compiler.erl | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl index 3480cf6..7875449 100644 --- a/src/rebar_erlc_compiler.erl +++ b/src/rebar_erlc_compiler.erl @@ -54,7 +54,6 @@ -define(DEFAULT_OUTDIR, "ebin"). -define(RE_PREFIX, "^[^._]"). - %% =================================================================== %% Public API %% =================================================================== @@ -500,7 +499,7 @@ expand_file_names(Files, Dirs) -> -spec internal_erl_compile(rebar_dict(), file:filename(), file:filename(), file:filename(), list()) -> ok | {ok, any()} | {error, any(), any()}. -internal_erl_compile(_Opts, Dir, Module, OutDir, ErlOpts) -> +internal_erl_compile(Opts, Dir, Module, OutDir, ErlOpts) -> Target = target_base(OutDir, Module) ++ ".beam", ok = filelib:ensure_dir(Target), AllOpts = [{outdir, filename:dirname(Target)}] ++ ErlOpts ++ @@ -509,11 +508,21 @@ 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} -> - rebar_base_compiler:error_tuple(Module, Es, Ws, AllOpts) + error_tuple(Module, Es, Ws, AllOpts, Opts) 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). + +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")). |