From 4c7bddd4bbaec16dafc82ef32f36e5047a654c19 Mon Sep 17 00:00:00 2001 From: JimMoen Date: Wed, 29 Jun 2022 13:11:56 +0800 Subject: [PATCH] build: conditionally build jq --- mix.exs | 11 ++++++++++- rebar.config.erl | 12 +++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/mix.exs b/mix.exs index a926f050b..b9f3aa6a5 100644 --- a/mix.exs +++ b/mix.exs @@ -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") diff --git a/rebar.config.erl b/rebar.config.erl index bb790dd7c..0dbf22fe5 100644 --- a/rebar.config.erl +++ b/rebar.config.erl @@ -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.