summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Zezeski <rzezeski@gmail.com>2012-09-02 22:30:58 -0400
committerTuncer Ayaz <tuncer.ayaz@gmail.com>2012-09-03 12:10:14 +0200
commite7be6874d7dded06659a055d497247aba1c90b4c (patch)
treeb030f1d8af117737391bfce748e334475186cac6
parent48c7f53930e60eacec82b671d91aaac773ba9bab (diff)
Pass compile flags to protobuffs
By default protobuffs doesn't create beams with debug info. This causes issues when running dialyzer which requires debug info. Read the `erl_opts` config and pass it down to protobuffs compiler.
-rw-r--r--src/rebar_protobuffs_compiler.erl14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rebar_protobuffs_compiler.erl b/src/rebar_protobuffs_compiler.erl
index 249588c..7ef58d6 100644
--- a/src/rebar_protobuffs_compiler.erl
+++ b/src/rebar_protobuffs_compiler.erl
@@ -35,7 +35,7 @@
%% Public API
%% ===================================================================
-compile(_Config, _AppFile) ->
+compile(Config, _AppFile) ->
case rebar_utils:find_files("src", ".*\\.proto$") of
[] ->
ok;
@@ -49,7 +49,7 @@ compile(_Config, _AppFile) ->
Proto <- FoundFiles],
%% Compile each proto file
- compile_each(Targets);
+ compile_each(Config, Targets);
false ->
?ERROR("Protobuffs library not present in code path!\n",
[]),
@@ -95,13 +95,15 @@ needs_compile(Proto, Beam) ->
ActualBeam = filename:join(["ebin", filename:basename(Beam)]),
filelib:last_modified(ActualBeam) < filelib:last_modified(Proto).
-compile_each([]) ->
+compile_each(_, []) ->
ok;
-compile_each([{Proto, Beam, Hrl} | Rest]) ->
+compile_each(Config, [{Proto, Beam, Hrl} | Rest]) ->
case needs_compile(Proto, Beam) of
true ->
?CONSOLE("Compiling ~s\n", [Proto]),
- case protobuffs_compile:scan_file(Proto) of
+ ErlOpts = rebar_utils:erl_opts(Config),
+ case protobuffs_compile:scan_file(Proto,
+ [{compile_flags,ErlOpts}]) of
ok ->
%% Compilation worked, but we need to move the
%% beam and .hrl file into the ebin/ and include/
@@ -120,7 +122,7 @@ compile_each([{Proto, Beam, Hrl} | Rest]) ->
false ->
ok
end,
- compile_each(Rest).
+ compile_each(Config, Rest).
delete_each([]) ->
ok;