%% -*- erlang -*-

{cover_enabled, true}.
{cover_opts, [verbose]}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files,
              [
               "ct.coverdata",
               "eunit.coverdata"
              ]}]
}.
{cover_excl_mods,
 [
  libp2p_peer_pb
 ]}.

{deps,
 [
  lager,
  rocksdb,
  gpb,
  {libp2p_crypto, "1.0.1"}
 ]}.

{erl_opts,
 [
  {parse_transform, lager_transform},
  {i, "./_build/default/plugins/gpb/include"},
  warn_untyped_records,
  debug_info,
  warnings_as_errors
 ]}.

{plugins,
 [rebar3_gpb_plugin,
  covertool
 ]}.

{provider_hooks, [
    {pre, [
        {compile, {protobuf, compile}},
        {clean, {protobuf, clean}}
    ]}
]}.

{gpb_opts,
 [
  {i, "src"},
  {o_erl, "src/pb"},
  {o_hrl, "src/pb"},
  {msg_name_prefix, "libp2p_"},
  {msg_name_suffix, "_pb"},
  {module_name_suffix, "_pb"},
  {strings_as_binaries, false},
  type_specs
 ]}.

{shell, [{apps, [lager]}]}.

{dialyzer,
 [
  {warnings, [unknown]},
  {plt_apps,all_deps}
 ]}.

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


{profiles,
 [
  {test,
   [
    {erl_opts, [nowarn_export_all, export_all]},
    {ct_opts, [{create_priv_dir, auto_per_tc}]},
    {deps,
     [
      cth_readable,
      meck
     ]}
   ]}
 ]}.
