rebar.config

{pre_hooks,
 [{"(linux|darwin|solaris)", compile, "make -C cpp_src"},
  {"(freebsd)", compile, "gmake -C cpp_src"}]}.

{post_hooks,
 [{"(linux|darwin|solaris)", clean, "make -C cpp_src clean"},
  {"(freebsd)", clean, "gmake -C cpp_src clean"}]}.

{erl_opts,
 [%bin_opt_info,
  debug_info,
  warn_export_all,
  warn_export_vars,
  warn_missing_spec,
  warn_obsolete_guards,
  warn_shadow_vars,
  warn_unused_import,
  warnings_as_errors]}.

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

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

{cover_enabled, true}.

{profiles,
 [{generate_documentation,
   [{deps,
     [{edown, ".*", {git, "https://github.com/uwiger/edown.git", {tag, "0.8.1"}}}]},
    {edoc_opts, [{doclet, edown_doclet}]}
   ]},
  {publish,
   [{plugins, [rebar3_hex]}]}
 ]
}.