{erl_opts,
 [debug_info,
  warnings_as_errors,
  warn_untyped_record]}.

{deps, [{wts, "~> 0.3"},
        {ctx, "~> 0.4"},
        {jsx, "~> 2.9"},
        {counters, "~> 0.2"}]}.

{plugins, [{rebar_erl_vsn, "0.1.7"}]}.
{provider_hooks, [{pre, [{compile, {default, erl_vsn}}]}]}.

{project_plugins, [{rebar_covertool, {git, "https://github.com/tsloughter/covertool.git", {branch, "master"}}},
                   rebar3_gpb_plugin,
                   rebar3_lint]}.
{gpb_opts, [
  {i, "priv/opencensus-proto/opencensus/proto/trace"},
  {module_name_suffix, "_pb"},
  {module_name_prefix, "oc_"},
  {o_erl, "src"},
  {o_hrl, "include"},
  mapfields_as_maps,
  use_packages,
  {rename,{msg_name,snake_case}},
  {rename,{msg_fqname,base_name}},
  {msg_name_suffix, "_pb"},
  defs_as_proplists,
  {strings_as_binaries, true},
  {type_specs, true}]}.

{profiles, [
  {test, [{erl_opts, [nowarn_export_all]},
          {deps, [{meck, "0.8.9"}]}]},
  {docs, [{deps, [{edown, "0.8.1"}]},
          {edoc_opts,
           [{doclet, edown_doclet},
            {preprocess, true},
            {dir, "doc"},
            {subpackages, true}]}]},
  {benchmark, [{src_dirs, ["src", "benchmark"]},
               {deps, [{'erlang-color',
                        {git, "https://github.com/julianduque/erlang-color", {branch, "master"}}}]}]}]}.

{xref_checks, [undefined_function_calls, undefined_functions,
               deprecated_function_calls, deprecated_functions]}.
{xref_ignores, [{oc_sampler_impl, should_sample, 3}]}.

{cover_enabled, true}.
{cover_opts, [verbose]}.
{cover_excl_mods, [oc_trace_pb, oc_span_transform, oc_stat_transform]}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files, ["ct.coverdata"]}]}.

{ct_opts, [{ct_hooks, [cth_surefire]}]}.

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

%% Awesomely bad hack to ensure oc_trace_pb is hidden from docs.
{pre_hooks, [{"(linux|darwin|solaris|freebsd|netbsd|openbsd)",
              edoc, "sh bin/set-edoc-hidden src/oc_trace_pb.erl"}]}.
{post_hooks, [{edoc, "doc/build.sh"}]}.
