From f16ebd13dc21470a2a48271f32b312f961829acb Mon Sep 17 00:00:00 2001 From: Jan Vincent Liwanag Date: Sat, 3 Sep 2011 09:44:24 +0800 Subject: [PATCH] Move asn1 generated *.hrl to include --- src/rebar_asn1_compiler.erl | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/rebar_asn1_compiler.erl b/src/rebar_asn1_compiler.erl index bd16813..612ae86 100644 --- a/src/rebar_asn1_compiler.erl +++ b/src/rebar_asn1_compiler.erl @@ -44,27 +44,33 @@ compile(Config, _AppFile) -> -spec clean(Config::rebar_config:config(), AppFile::file:filename()) -> 'ok'. clean(_Config, _AppFile) -> - rebar_file_utils:delete_each(asn_generated_files("asn1", "src")), + GeneratedFiles = asn_generated_files("asn1", "src", "include"), + ok = rebar_file_utils:delete_each(GeneratedFiles), ok. -spec compile_asn1(file:filename(), file:filename(), rebar_config:config()) -> ok. compile_asn1(Source, Target, Config) -> - ok = rebar_utils:ensure_dir(Target), + ok = filelib:ensure_dir(Target), + ok = filelib:ensure_dir(filename:join("include", "dummy.hrl")), Opts = [{outdir, "src"}, noobj] ++ rebar_config:get(Config, asn1_opts, []), case asn1ct:compile(Source, Opts) of ok -> + Asn1 = filename:basename(Source, ".asn1"), + HrlFile = filename:join("src", Asn1 ++ ".hrl"), + ok = rebar_file_utils:mv(HrlFile, "include"), ok; {error, _Reason} -> ?FAIL end. -asn_generated_files(AsnDir, SrcDir) -> +asn_generated_files(AsnDir, SrcDir, IncDir) -> lists:foldl( - fun(AsnFile, Acc) -> - Base = filename:rootname(filename:basename(AsnFile)), - filelib:wildcard(filename:join([SrcDir, Base ++ ".*"])) ++ Acc - end, - [], - filelib:wildcard(filename:join([AsnDir, "*.asn1"])) - ). + fun(AsnFile, Acc) -> + Base = filename:rootname(filename:basename(AsnFile)), + [filename:join([IncDir, Base ++ ".hrl"])| + filelib:wildcard(filename:join([SrcDir, Base ++ ".*"]))] ++ Acc + end, + [], + filelib:wildcard(filename:join([AsnDir, "*.asn1"])) + ).