aboutsummaryrefslogblamecommitdiff
path: root/rebar.config
blob: 4b5bda9dcfd064078ac34addb6b4baf12e97369d (plain) (tree)
1
2
3

                                                                         
                                                  















                                                                           
 
                                                                                         

                                                                                             
                             
                                                                                          
                          
                                                                                     


                                                                                    
                                                                                     
                           
                                                                                      


                                                                                             
                                                                                      
                                                                                
                                                                                          
                                                                                       

                                                                                   

                                                                                             
                            

                                                                                             
                            
                                                                                             

                                                                                           



                                                                                                             
                                                                                                  
                                                                                               
                           
                                                                                     
                                                                                  
                                                                                   
          
 

                                
                          
                            



                        
                           
                           
                            

                          
                           
                            

                           
                       
                          



                             
 
                                                                        

                                                               
 
                                       
                           
                                                                       
                                                              
                                                   

                                                                 
                                                         

                                                 
                                                         
                                        




                                                                                      
                                                 
                            




                                                           
                                                               
                                                 
                           
                                                                                                 


                                                                        
 
                                 
                                                        

                                                

                                       






                        
                                           



                                             
                                                                
                                                            
                                                                
                                                          


                                                                
                                                               
                                                             
 
                                   
                                       
 
                      
                             
                                     
 


                                              

                                                        
                                                        

                                                          
                                                                                    

                                            
 


                   
                                      
%%%----------------------------------------------------------------------
%%%
%%% ejabberd, Copyright (C) 2002-2020   ProcessOne
%%%
%%% This program is free software; you can redistribute it and/or
%%% modify it under the terms of the GNU General Public License as
%%% published by the Free Software Foundation; either version 2 of the
%%% License, or (at your option) any later version.
%%%
%%% This program is distributed in the hope that it will be useful,
%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
%%% General Public License for more details.
%%%
%%% You should have received a copy of the GNU General Public License along
%%% with this program; if not, write to the Free Software Foundation, Inc.,
%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
%%%
%%%----------------------------------------------------------------------

{deps, [{base64url, ".*", {git, "https://github.com/dvv/base64url.git", {tag, "1.0.1"}}},
        {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.26"}}},
        {eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.18"}}},
        {if_var_true, elixir,
         {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.4.4"}}}},
        {if_var_true, pam,
         {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.10"}}}},
        {if_var_true, redis,
         {eredis, ".*", {git, "https://github.com/wooga/eredis", {tag, "v1.0.8"}}}},
        {if_var_true, sip,
         {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.39"}}}},
        {if_var_true, zlib,
         {ezlib, ".*", {git, "https://github.com/processone/ezlib", {tag, "1.0.9"}}}},
        {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.1.10"}}},
        {fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.45"}}},
        {fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.29"}}},
        {idna, ".*", {git, "https://github.com/benoitc/erlang-idna", {tag, "6.0.0"}}},
        {jiffy, ".*", {git, "https://github.com/davisp/jiffy", {tag, "1.0.5"}}},
        {jose, ".*", {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.9.0"}}},
        {lager, ".*", {git, "https://github.com/erlang-lager/lager", {tag, "3.6.10"}}},
        {if_var_true, tools,
         {luerl, ".*", {git, "https://github.com/rvirding/luerl", {tag, "v0.3"}}}},
        {mqtree, ".*", {git, "https://github.com/processone/mqtree", {tag, "1.0.11"}}},
        {p1_acme, ".*", {git, "https://github.com/processone/p1_acme.git", {tag, "1.0.10"}}},
        {if_var_true, mysql,
         {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql", {tag, "1.0.17"}}}},
        {p1_oauth2, ".*", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.8"}}},
        {if_var_true, pgsql,
         {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.10"}}}},
        {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.21"}}},
        {pkix, ".*", {git, "https://github.com/processone/pkix", {tag, "1.0.7"}}},
        {if_not_rebar3, %% Needed because modules are not fully migrated to new structure and mix
         {if_var_true, elixir,
          {rebar_elixir_plugin, ".*", {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}},
        {if_var_true, sqlite,
         {sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3", {tag, "v1.1.6"}}}},
        {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.24"}}},
        {if_var_true, stun,
         {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.40"}}}},
        {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.5.1"}}},
        {yconf, ".*", {git, "https://github.com/processone/yconf", {tag, "1.0.9"}}}
       ]}.

{gitonly_deps, [elixir, luerl]}.

{if_var_true, latest_deps,
 {floating_deps, [cache_tab,
                  eimp,
                  epam,
                  esip,
                  ezlib,
                  fast_tls,
                  fast_xml,
                  fast_yaml,
                  mqtree,
                  p1_acme,
                  p1_mysql,
                  p1_oauth2,
                  p1_pgsql,
                  p1_utils,
                  pkix,
                  sqlite3,
                  stringprep,
                  stun,
                  xmpp,
                  yconf]}}.

{erl_first_files, ["src/ejabberd_sql_pt.erl", "src/ejabberd_config.erl",
		   "src/gen_mod.erl", "src/mod_muc_room.erl",
		   "src/mod_push.erl", "src/xmpp_socket.erl"]}.

{erl_opts, [nowarn_deprecated_function,
            {i, "include"},
            {if_version_above, "20", {d, 'DEPRECATED_GET_STACKTRACE'}},
            {if_version_below, "21", {d, 'USE_OLD_HTTP_URI'}},
            {if_version_below, "22", {d, 'LAGER'}},
            {if_version_below, "23", {d, 'USE_OLD_CRYPTO_HMAC'}},
            {if_version_below, "23", {d, 'USE_OLD_PG2'}},
            {if_var_match, db_type, mssql, {d, 'mssql'}},
            {if_var_false, debug, no_debug_info},
            {if_var_true, debug, debug_info},
            {if_var_true, elixir, {d, 'ELIXIR_ENABLED'}},
            {if_var_true, hipe, native},
            {if_var_true, new_sql_schema, {d, 'NEW_SQL_SCHEMA'}},
            {if_var_true, roster_gateway_workaround, {d, 'ROSTER_GATWAY_WORKAROUND'}},
            {if_var_true, sip, {d, 'SIP'}},
            {if_var_true, stun, {d, 'STUN'}},
            {if_have_fun, {erl_error, format_exception, 6}, {d, 'HAVE_ERL_ERROR'}},
            {if_rebar3, {extra_src_dirs, [sql]}},
            {src_dirs, [src,
                        {if_var_true, tools, tools},
                        {if_var_true, elixir, include}]}]}.

{deps_erl_opts, [{if_var_true, hipe, native}]}.

{if_rebar3, {plugins, [rebar3_hex, {provider_asn1, "0.2.0"}]}}.
{if_rebar3, {project_plugins, [configure_deps]}}.
{if_not_rebar3, {plugins, [
                           deps_erl_opts, override_deps_versions2, override_opts, configure_deps,
                           {if_var_true, elixir, rebar_elixir_compiler},
                           {if_var_true, elixir, rebar_exunit}
                          ]}}.

{if_rebar3, {if_var_true, elixir,
              {project_app_dirs, [".", "elixir/lib"]}}}.
{if_not_rebar3, {if_var_true, elixir,
              {lib_dirs, ["deps/elixir/lib"]}}}.
{if_var_true, elixir,
              {src_dirs, ["include"]}}.

{sub_dirs, ["rel"]}.

{keep_build_info, true}.

{xref_warnings, false}.

{xref_checks, [deprecated_function_calls]}.

{xref_exclusions, [
                   "(\"gen_transport\":_/_)",
                   "(\"eprof\":_/_)",
                   {if_var_false, elixir, "(\"Elixir.*\":_/_)"},
                   {if_var_false, http, "(\"lhttpc\":_/_)"},
                   {if_var_false, mysql, "(\".*mysql.*\":_/_)"},
                   {if_var_false, odbc, "(\"odbc\":_/_)"},
                   {if_var_false, pam, "(\"epam\":_/_)"},
                   {if_var_false, pgsql, "(\".*pgsql.*\":_/_)"},
                   {if_var_false, redis, "(\"eredis\":_/_)"},
                   {if_var_false, sqlite, "(\"sqlite3\":_/_)"},
                   {if_var_false, zlib, "(\"ezlib\":_/_)"}]}.

{eunit_compile_opts, [{i, "tools"},
                      {i, "include"}]}.

{cover_enabled, true}.
{cover_export_enabled, true}.
{recursive_cmds, ['configure-deps']}.

{overrides, [
  {del, [{erl_opts, [warnings_as_errors]}]}]}.

{post_hook_configure, [{"eimp", []},
                       {if_var_true, pam, {"epam", []}},
                       {if_var_true, sip, {"esip", []}},
                       {if_var_true, zlib, {"ezlib", []}},
                       {"fast_tls", []},
                       {"fast_xml", [{if_var_true, full_xml, "--enable-full-xml"}]},
                       {"fast_yaml", []},
                       {"stringprep", []}]}.

%% Local Variables:
%% mode: erlang
%% End:
%% vim: set filetype=erlang tabstop=8: