summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFred Hebert <mononcqc@ferd.ca>2015-12-01 13:50:18 -0500
committerFred Hebert <mononcqc@ferd.ca>2015-12-01 13:50:18 -0500
commit46181c8bf5863a828b87d0cf3f0aa4cf48f3f245 (patch)
tree499bf55df9183be9eb25ed8926d925763a73710b
parent2de7ce25e47b994a98ff02a991850af269b7b30f (diff)
parentafbf7295325ab4a99d4fea62d6f860002f1fee25 (diff)
Merge pull request #948 from toland/fix_mib_compiler
Fix a small bug in the MIB compiler when building dependencies
-rw-r--r--src/rebar_erlc_compiler.erl12
-rw-r--r--test/rebar_compile_SUITE.erl14
2 files changed, 18 insertions, 8 deletions
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl
index fb5796c..c6eb2c1 100644
--- a/src/rebar_erlc_compiler.erl
+++ b/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, "dummy.hrl"])),
+
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
diff --git a/test/rebar_compile_SUITE.erl b/test/rebar_compile_SUITE.erl
index 1c2c527..3e7e015 100644
--- a/test/rebar_compile_SUITE.erl
+++ b/test/rebar_compile_SUITE.erl
@@ -1018,11 +1018,14 @@ mib_test(Config) ->
rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"], {ok, [{app, Name}]}),
- %% check a beam corresponding to the src in the extra src_dir exists in ebin
+ %% check a bin corresponding to the mib in the mibs dir exists in priv/mibs
PrivMibsDir = filename:join([AppDir, "_build", "default", "lib", Name, "priv", "mibs"]),
true = filelib:is_file(filename:join([PrivMibsDir, "SIMPLE-MIB.bin"])),
- %% check the extra src_dir was linked into the _build dir
+ %% check a hrl corresponding to the mib in the mibs dir exists in priv/mibs/include
+ true = filelib:is_file(filename:join([PrivMibsDir, "include", "SIMPLE-MIB.hrl"])),
+
+ %% check the mibs dir was linked into the _build dir
true = filelib:is_dir(filename:join([AppDir, "_build", "default", "lib", Name, "mibs"])).
umbrella_mib_first_test(Config) ->
@@ -1065,11 +1068,14 @@ umbrella_mib_first_test(Config) ->
rebar_test_utils:run_and_check(Config, RebarConfig, ["compile"], {ok, [{app, Name}]}),
- %% check a beam corresponding to the src in the extra src_dir exists in ebin
+ %% check a bin corresponding to the mib in the mibs dir exists in priv/mibs
PrivMibsDir = filename:join([AppsDir, "_build", "default", "lib", Name, "priv", "mibs"]),
true = filelib:is_file(filename:join([PrivMibsDir, "SIMPLE-MIB.bin"])),
- %% check the extra src_dir was linked into the _build dir
+ %% check a hrl corresponding to the mib in the mibs dir exists in priv/mibs/include
+ true = filelib:is_file(filename:join([PrivMibsDir, "include", "SIMPLE-MIB.hrl"])),
+
+ %% check the mibs dir was linked into the _build dir
true = filelib:is_dir(filename:join([AppsDir, "_build", "default", "lib", Name, "mibs"])).
only_default_transitive_deps(Config) ->