{cover_enabled, true}.

{erl_opts,
 [%{i, "src"},
  %bin_opt_info,
  warn_export_all,
  warn_export_vars,
  warn_missing_spec,
  warn_obsolete_guards,
  warn_shadow_vars,
  warn_unused_import,
  warnings_as_errors,
  {parse_transform, stacktrace_transform},
  {platform_define, "^19",       'SSL_OLD_CLIENT_OPTIONS'},
  {platform_define, "^20",       'SSL_OLD_CLIENT_OPTIONS'},
  {platform_define, "^21.[0-2]", 'SSL_OLD_CLIENT_OPTIONS'},
  {platform_define, "^1",        'NO_LOGGER'},
  {platform_define, "^20",       'NO_LOGGER'},
  {platform_define, "^21.0",     'NO_LOGGER'}, % `:set_application_level/2` requires 21.1+
  {platform_define, "^19",       'NO_GEN_SERVER_HIBERNATE_AFTER'}
 ]}.

{minimum_otp_vsn, "19"}.

{deps,
 [{certifi, "2.5.1"},
  {ssl_verify_fun, "1.1.5"},
  {stacktrace_compat, "1.1.1"}
 ]}.

{erl_first_files,
 ["src/locus_event_subscriber.erl"
 ]}.

{dialyzer,
 [{plt_include_all_deps, true},
  {warnings,
   [unmatched_returns,
    error_handling,
    race_conditions,
    underspecs,
    unknown
   ]}
 ]}.

{xref_checks,
 [undefined_function_calls,
  undefined_functions,
  locals_not_used,
  exports_not_used,
  deprecated_function_calls,
  deprecated_functions
 ]}.

{profiles,
 [{development,
   [{deps, [{recon, "2.4.0"}]},
    {erl_opts,
     [nowarn_missing_spec,
      nowarnings_as_errors]}
   ]},

  {escriptize,
   [{deps, [{getopt, "1.0.1"}]},
    {erl_opts, [{d, 'ESCRIPTIZING'}]},
    {escript_name, "locus"},
    {escript_incl_apps, [getopt]},
    {escript_emu_args, "%%! +sbtu +A0 -noinput\n"}
   ]},

  {publish,
   [{plugins, [{rebar3_hex, "6.8.0"}]}
   ]},

  {test,
   [{deps,
     [{jsx, "2.9.0"},
      {stacktrace_compat, "1.0.2"}
     ]},
    {erl_opts,
     [debug_info,
      nowarn_export_all,
      nowarn_missing_spec,
      nowarnings_as_errors]}
   ]},

  {ci_test,
   [{erl_opts,
     [debug_info,
      nowarn_export_all,
      nowarn_missing_spec,
      nowarnings_as_errors,
      {d, 'RUNNING_ON_CI'}]}
   ]}
 ]}.

{edoc_opts,
 [{stylesheet_file, "doc/custom_stylesheet.css"}
 ]}.
