Pārlūkot izejas kodu

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 pirms 9 gadiem
vecāks
revīzija
be09be6d6b
1 mainītis faili ar 8 papildinājumiem un 4 dzēšanām
  1. +8
    -4
      src/rebar_erlc_compiler.erl

+ 8
- 4
src/rebar_erlc_compiler.erl Parādīt failu

@ -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

Notiek ielāde…
Atcelt
Saglabāt