From e7be6874d7dded06659a055d497247aba1c90b4c Mon Sep 17 00:00:00 2001 From: Ryan Zezeski Date: Sun, 2 Sep 2012 22:30:58 -0400 Subject: 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. --- src/rebar_protobuffs_compiler.erl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/rebar_protobuffs_compiler.erl') 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; -- cgit v1.2.1