From 9021b7e9b8c93943598f002dd3defcf588ba0220 Mon Sep 17 00:00:00 2001 From: Thales Macedo Garitezi Date: Fri, 4 Feb 2022 12:48:52 -0300 Subject: [PATCH] fix(mix): set enterprise compile flag --- build | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/build b/build index eebf26771..5d98fa026 100755 --- a/build +++ b/build @@ -224,6 +224,12 @@ make_docker_testing() { -f "${DOCKERFILE_TESTING}" . } +function join { + local IFS="$1" + shift + echo "$*" +} + # used to control the Elixir Mix Release output # see docstring in `mix.exs` export_release_vars() { @@ -240,11 +246,22 @@ export_release_vars() { exit 1 esac export MIX_ENV="$profile" + + local erl_opts=() + + if [[ "$profile" = *enterprise* ]] + then + erl_opts+=( "{d,'EMQX_ENTERPRISE'}" ) + fi + # At this time, Mix provides no easy way to pass `erl_opts' to # dependencies. The workaround is to set this variable before # compiling the project, so that `emqx_release.erl' picks up # `emqx_vsn' as if it was compiled by rebar3. - export ERL_COMPILER_OPTIONS="[{compile_info,[{emqx_vsn,\"${PKG_VSN}\"}]}]" + erl_opts+=( "{compile_info,[{emqx_vsn,\"${PKG_VSN}\"}]}" ) + + ERL_COMPILER_OPTIONS="[$(join , "${erl_opts[@]}")]" + export ERL_COMPILER_OPTIONS } log "building artifact=$ARTIFACT for profile=$PROFILE"