소스 검색

Generate .hrl file from .mib

Generate .hrl files into include from SNMP MIB files.
Change the order of so .mib files are built before .erl
This is necessary since .hrl files are generated from
the .mib files.
The generated .bin and .hrl files are deleted by clean.

This is a cleaned up version of a patch originally
sent to the rebar mailing list by David Nonnenmacher.
pull/3/head
Anders Nygren 13 년 전
committed by Tuncer Ayaz
부모
커밋
2632cbc2cf
1개의 변경된 파일10개의 추가작업 그리고 2개의 파일을 삭제
  1. +10
    -2
      src/rebar_erlc_compiler.erl

+ 10
- 2
src/rebar_erlc_compiler.erl 파일 보기

@ -87,15 +87,19 @@ compile(Config, _AppFile) ->
Config, yrl_first_files, [])),
"src", ".yrl", "src", ".erl",
fun compile_yrl/3),
doterl_compile(Config, "ebin"),
rebar_base_compiler:run(Config,
check_files(rebar_config:get_local(
Config, mib_first_files, [])),
"mibs", ".mib", "priv/mibs", ".bin",
fun compile_mib/3).
fun compile_mib/3),
doterl_compile(Config, "ebin").
-spec clean(Config::rebar_config:config(), AppFile::file:filename()) -> 'ok'.
clean(_Config, _AppFile) ->
MibFiles = rebar_utils:find_files("mibs", "^.*\\.mib\$"),
MIBs = [filename:rootname(filename:basename(MIB)) || MIB <- MibFiles],
rebar_file_utils:delete_each(
[filename:join(["include",MIB++".hrl"]) || MIB <- MIBs]),
lists:foreach(fun(F) -> ok = rebar_file_utils:rm_rf(F) end,
["ebin/*.beam", "priv/mibs/*.bin"]),
@ -270,6 +274,10 @@ compile_mib(Source, Target, Config) ->
rebar_config:get(Config, mib_opts, []),
case snmpc:compile(Source, Opts) of
{ok, _} ->
Mib = filename:rootname(Target),
ok = snmpc:mib_to_hrl(Mib),
Hrl_filename = Mib ++ ".hrl",
rebar_file_utils:mv(Hrl_filename,"include"),
ok;
{error, compilation_failed} ->
?FAIL

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