diff --git a/rebar.config b/rebar.config index e35ac8426..c692b185e 100644 --- a/rebar.config +++ b/rebar.config @@ -6,13 +6,10 @@ %% with rebar.config.erl module. Final result is written to %% rebar.config.rendered if environment DEBUG is set. -{minimum_otp_vsn, "21.3"}. {edoc_opts, [{preprocess,true}]}. {erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import, warn_obsolete_guard,compressed]}. -{overrides,[{add,[{extra_src_dirs, [{"etc", [{recursive,true}]}]}]} - ]}. {extra_src_dirs, [{"etc", [{recursive,true}]}]}. {xref_checks,[undefined_function_calls,undefined_functions,locals_not_used, diff --git a/rebar.config.erl b/rebar.config.erl index d8f0d74ec..d216e8464 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -6,7 +6,7 @@ do(Dir, CONFIG) -> ok = compile_and_load_pase_transforms(Dir), C1 = deps(CONFIG), Config = dialyzer(C1), - dump(Config ++ coveralls() ++ config()). + dump(Config ++ [{overrides, overrides()}] ++ coveralls() ++ config()). bcrypt() -> {bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {branch, "0.6.0"}}}. @@ -19,6 +19,14 @@ deps(Config) -> end, lists:keystore(deps, 1, Config, {deps, OldDpes ++ MoreDeps}). +overrides() -> + [ {add, [ {extra_src_dirs, [{"etc", [{recursive,true}]}]} + , {erl_opts, [ deterministic + , {compile_info, [{emqx_vsn, get_vsn()}]} + ]} + ]} + ]. + config() -> [ {plugins, plugins()} , {profiles, profiles()} @@ -51,27 +59,41 @@ test_deps() -> , meck ]. -default_compile_opts() -> - [compressed, deterministic, no_debug_info, warnings_as_errors, {parse_transform, mod_vsn}]. +common_compile_opts() -> + [ deterministic + , {compile_info, [{emqx_vsn, get_vsn()}]} + ]. + +prod_compile_opts() -> + [ compressed + , no_debug_info + , warnings_as_errors + | common_compile_opts() + ]. + +test_compile_opts() -> + [ debug_info + | common_compile_opts() + ]. profiles() -> - [ {'emqx', [ {erl_opts, default_compile_opts()} + [ {'emqx', [ {erl_opts, prod_compile_opts()} , {relx, relx('emqx')} ]} - , {'emqx-pkg', [ {erl_opts, default_compile_opts()} + , {'emqx-pkg', [ {erl_opts, prod_compile_opts()} , {relx, relx('emqx-pkg')} ]} - , {'emqx-edge', [ {erl_opts, default_compile_opts()} + , {'emqx-edge', [ {erl_opts, prod_compile_opts()} , {relx, relx('emqx-edge')} ]} - , {'emqx-edge-pkg', [ {erl_opts, default_compile_opts()} + , {'emqx-edge-pkg', [ {erl_opts, prod_compile_opts()} , {relx, relx('emqx-edge-pkg')} ]} - , {check, [ {erl_opts, [debug_info, warnings_as_errors, {parse_transform, mod_vsn}]} + , {check, [ {erl_opts, test_compile_opts()} ]} , {test, [ {deps, test_deps()} , {plugins, test_plugins()} - , {erl_opts, [debug_info, {parse_transform, mod_vsn}] ++ erl_opts_i()} + , {erl_opts, test_compile_opts() ++ erl_opts_i()} , {extra_src_dirs, [{"test", [{recursive,true}]}]} ]} ].