소스 검색

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 년 전
부모
커밋
be09be6d6b
1개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. +8
    -4
      src/rebar_erlc_compiler.erl

+ 8
- 4
src/rebar_erlc_compiler.erl 파일 보기

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

불러오는 중...
취소
저장