chore(build): include emqx version as compile info
This commit is contained in:
parent
c54636b6c2
commit
ddadece0b2
|
@ -6,14 +6,10 @@
|
||||||
%% with rebar.config.erl module. Final result is written to
|
%% with rebar.config.erl module. Final result is written to
|
||||||
%% rebar.config.rendered if environment DEBUG is set.
|
%% rebar.config.rendered if environment DEBUG is set.
|
||||||
|
|
||||||
{minimum_otp_vsn, "21.3"}.
|
|
||||||
{edoc_opts, [{preprocess,true}]}.
|
{edoc_opts, [{preprocess,true}]}.
|
||||||
{erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import,
|
{erl_opts, [warn_unused_vars,warn_shadow_vars,warn_unused_import,
|
||||||
warn_obsolete_guard,compressed]}.
|
warn_obsolete_guard,compressed]}.
|
||||||
|
|
||||||
{overrides,[{add,[ {extra_src_dirs, [{"etc", [{recursive,true}]}]}
|
|
||||||
, {erl_opts, [{parse_transform, emqx_mod_vsn}]}]}
|
|
||||||
]}.
|
|
||||||
{extra_src_dirs, [{"etc", [{recursive,true}]}]}.
|
{extra_src_dirs, [{"etc", [{recursive,true}]}]}.
|
||||||
|
|
||||||
{xref_checks,[undefined_function_calls,undefined_functions,locals_not_used,
|
{xref_checks,[undefined_function_calls,undefined_functions,locals_not_used,
|
||||||
|
|
|
@ -6,7 +6,7 @@ do(Dir, CONFIG) ->
|
||||||
ok = compile_and_load_pase_transforms(Dir),
|
ok = compile_and_load_pase_transforms(Dir),
|
||||||
C1 = deps(CONFIG),
|
C1 = deps(CONFIG),
|
||||||
Config = dialyzer(C1),
|
Config = dialyzer(C1),
|
||||||
dump(Config ++ coveralls() ++ config()).
|
dump(Config ++ [{overrides, overrides()}] ++ coveralls() ++ config()).
|
||||||
|
|
||||||
bcrypt() ->
|
bcrypt() ->
|
||||||
{bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {branch, "0.6.0"}}}.
|
{bcrypt, {git, "https://github.com/emqx/erlang-bcrypt.git", {branch, "0.6.0"}}}.
|
||||||
|
@ -19,6 +19,14 @@ deps(Config) ->
|
||||||
end,
|
end,
|
||||||
lists:keystore(deps, 1, Config, {deps, OldDpes ++ MoreDeps}).
|
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() ->
|
config() ->
|
||||||
[ {plugins, plugins()}
|
[ {plugins, plugins()}
|
||||||
, {profiles, profiles()}
|
, {profiles, profiles()}
|
||||||
|
@ -51,27 +59,41 @@ test_deps() ->
|
||||||
, meck
|
, meck
|
||||||
].
|
].
|
||||||
|
|
||||||
default_compile_opts() ->
|
common_compile_opts() ->
|
||||||
[compressed, deterministic, no_debug_info, warnings_as_errors, {parse_transform, emqx_mod_vsn}].
|
[ 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() ->
|
profiles() ->
|
||||||
[ {'emqx', [ {erl_opts, default_compile_opts()}
|
[ {'emqx', [ {erl_opts, prod_compile_opts()}
|
||||||
, {relx, relx('emqx')}
|
, {relx, relx('emqx')}
|
||||||
]}
|
]}
|
||||||
, {'emqx-pkg', [ {erl_opts, default_compile_opts()}
|
, {'emqx-pkg', [ {erl_opts, prod_compile_opts()}
|
||||||
, {relx, relx('emqx-pkg')}
|
, {relx, relx('emqx-pkg')}
|
||||||
]}
|
]}
|
||||||
, {'emqx-edge', [ {erl_opts, default_compile_opts()}
|
, {'emqx-edge', [ {erl_opts, prod_compile_opts()}
|
||||||
, {relx, relx('emqx-edge')}
|
, {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')}
|
, {relx, relx('emqx-edge-pkg')}
|
||||||
]}
|
]}
|
||||||
, {check, [ {erl_opts, [debug_info, warnings_as_errors, {parse_transform, emqx_mod_vsn}]}
|
, {check, [ {erl_opts, test_compile_opts()}
|
||||||
]}
|
]}
|
||||||
, {test, [ {deps, test_deps()}
|
, {test, [ {deps, test_deps()}
|
||||||
, {plugins, test_plugins()}
|
, {plugins, test_plugins()}
|
||||||
, {erl_opts, [debug_info, {parse_transform, emqx_mod_vsn}] ++ erl_opts_i()}
|
, {erl_opts, test_compile_opts() ++ erl_opts_i()}
|
||||||
, {extra_src_dirs, [{"test", [{recursive,true}]}]}
|
, {extra_src_dirs, [{"test", [{recursive,true}]}]}
|
||||||
]}
|
]}
|
||||||
].
|
].
|
||||||
|
@ -281,7 +303,6 @@ provide_bcrypt_release(ReleaseType) ->
|
||||||
compile_and_load_pase_transforms(Dir) ->
|
compile_and_load_pase_transforms(Dir) ->
|
||||||
PtFiles =
|
PtFiles =
|
||||||
[ "apps/emqx_rule_engine/src/emqx_rule_actions_trans.erl"
|
[ "apps/emqx_rule_engine/src/emqx_rule_actions_trans.erl"
|
||||||
, "src/emqx_mod_vsn.erl"
|
|
||||||
],
|
],
|
||||||
CompileOpts = [verbose,report_errors,report_warnings,return_errors,debug_info],
|
CompileOpts = [verbose,report_errors,report_warnings,return_errors,debug_info],
|
||||||
lists:foreach(fun(PtFile) -> {ok, _Mod} = compile:file(path(Dir, PtFile), CompileOpts) end, PtFiles).
|
lists:foreach(fun(PtFile) -> {ok, _Mod} = compile:file(path(Dir, PtFile), CompileOpts) end, PtFiles).
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
%%--------------------------------------------------------------------
|
|
||||||
%% Copyright (c) 2021 EMQ Technologies Co., Ltd. All Rights Reserved.
|
|
||||||
%%
|
|
||||||
%% Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
%% you may not use this file except in compliance with the License.
|
|
||||||
%% You may obtain a copy of the License at
|
|
||||||
%%
|
|
||||||
%% http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
%%
|
|
||||||
%% Unless required by applicable law or agreed to in writing, software
|
|
||||||
%% distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
%% See the License for the specific language governing permissions and
|
|
||||||
%% limitations under the License.
|
|
||||||
%%--------------------------------------------------------------------
|
|
||||||
|
|
||||||
%% This module provides a parse_transform to inject emqx version number
|
|
||||||
%% to all modules as a module attribute.
|
|
||||||
%% The module attribute is so far only used for beam reload inspection.
|
|
||||||
-module(emqx_mod_vsn).
|
|
||||||
|
|
||||||
-export([parse_transform/2]).
|
|
||||||
|
|
||||||
parse_transform(Form, _Opts) ->
|
|
||||||
case os:getenv("PKG_VSN") of
|
|
||||||
false -> Form;
|
|
||||||
Vsn -> trans(Form, {attribute, 1, emqx_vsn, Vsn})
|
|
||||||
end.
|
|
||||||
|
|
||||||
trans(Form, Injection) ->
|
|
||||||
trans(Form, Injection, []).
|
|
||||||
|
|
||||||
trans([], _Injection, Acc) ->
|
|
||||||
lists:reverse(Acc);
|
|
||||||
trans([{eof, _} | _] = EOF, _Injection, Acc) ->
|
|
||||||
lists:reverse(Acc) ++ EOF;
|
|
||||||
trans([{attribute, _, module, _} = Module | Form], Injection, Acc) ->
|
|
||||||
lists:reverse(Acc) ++ [Module, Injection | Form];
|
|
||||||
trans([H | T], Injection, Acc) ->
|
|
||||||
trans(T, Injection, [H | Acc]).
|
|
Loading…
Reference in New Issue