build: conditionally build jq

This commit is contained in:
JimMoen 2022-06-29 13:11:56 +08:00
parent f947aa2d77
commit 4c7bddd4bb
2 changed files with 17 additions and 6 deletions

11
mix.exs
View File

@ -600,7 +600,10 @@ defmodule EMQXUmbrella.MixProject do
end
defp enable_jq?() do
not win32?()
not Enum.any?([
build_without_jq?(),
win32?()
]) or "1" == System.get_env("BUILD_WITH_JQ")
end
defp enable_quicer?() do
@ -641,6 +644,12 @@ defmodule EMQXUmbrella.MixProject do
{:unix, :darwin} == :os.type()
end
defp build_without_jq?() do
opt = System.get_env("BUILD_WITHOUT_JQ", "false")
String.downcase(opt) != "false"
end
defp build_without_quic?() do
opt = System.get_env("BUILD_WITHOUT_QUIC", "false")

View File

@ -47,7 +47,7 @@ deps(Config) ->
{deps, OldDeps} = lists:keyfind(deps, 1, Config),
MoreDeps =
[bcrypt() || provide_bcrypt_dep()] ++
[jq() || provide_jq()] ++
[jq() || is_jq_supported()] ++
[quicer() || is_quicer_supported()],
lists:keystore(deps, 1, Config, {deps, OldDeps ++ MoreDeps}).
@ -77,6 +77,11 @@ is_cover_enabled() ->
is_enterprise(ce) -> false;
is_enterprise(ee) -> true.
is_jq_supported() ->
not (false =/= os:getenv("BUILD_WITHOUT_JQ") orelse
is_win32()) orelse
"1" == os:getenv("BUILD_WITH_JQ").
is_quicer_supported() ->
not (false =/= os:getenv("BUILD_WITHOUT_QUIC") orelse
is_macos() orelse
@ -343,7 +348,7 @@ relx_apps(ReleaseType, Edition) ->
] ++
[quicer || is_quicer_supported()] ++
[bcrypt || provide_bcrypt_release(ReleaseType)] ++
[jq || provide_jq()] ++
[jq || is_jq_supported()] ++
[{observer, load} || is_app(observer)] ++
relx_apps_per_edition(Edition).
@ -456,9 +461,6 @@ is_debug(VarName) ->
provide_bcrypt_dep() ->
not is_win32().
provide_jq() ->
not is_win32().
provide_bcrypt_release(ReleaseType) ->
provide_bcrypt_dep() andalso ReleaseType =:= cloud.