Selaa lähdekoodia

Fix a small bug in the MIB compiler when building dependencies

When compiling a dependency with a MIB file the generated hrl file is left in
the root project directory in a file called "include". This has the perverse
effect of messing up the search path for include files causing any dependencies
with files in their "include" directory to fail to build after that.
pull/948/head
Phil Toland 9 vuotta sitten
vanhempi
commit
be09be6d6b
1 muutettua tiedostoa jossa 8 lisäystä ja 4 poistoa
  1. +8
    -4
      src/rebar_erlc_compiler.erl

+ 8
- 4
src/rebar_erlc_compiler.erl Näytä tiedosto

@ -520,15 +520,20 @@ target_base(OutDir, Source) ->
rebar_dict()) -> 'ok'.
compile_mib(Source, Target, Opts) ->
Dir = filename:dirname(Target),
IncludeDir = filename:join(Dir, "include"),
Mib = filename:rootname(Target),
HrlFilename = Mib ++ ".hrl",
ok = filelib:ensure_dir(Target),
ok = filelib:ensure_dir(filename:join([Dir, "include", "dummy.hrl"])),
ok = filelib:ensure_dir(filename:join([IncludeDir, HrlFilename])),
AllOpts = [{outdir, Dir}
,{i, [Dir]}] ++
rebar_opts:get(Opts, mib_opts, []),
case snmpc:compile(Source, AllOpts) of
{ok, _} ->
Mib = filename:rootname(Target),
MibToHrlOpts =
case proplists:get_value(verbosity, AllOpts, undefined) of
undefined ->
@ -537,8 +542,7 @@ compile_mib(Source, Target, Opts) ->
#options{specific = [{verbosity, Verbosity}]}
end,
ok = snmpc:mib_to_hrl(Mib, Mib, MibToHrlOpts),
Hrl_filename = Mib ++ ".hrl",
rebar_file_utils:mv(Hrl_filename, "include"),
rebar_file_utils:mv(HrlFilename, IncludeDir),
ok;
{error, compilation_failed} ->
?FAIL

Ladataan…
Peruuta
Tallenna