defmodule ExWebRTC.MixProject do use Mix.Project @version "0.4.0" @source_url "https://github.com/elixir-webrtc/ex_webrtc" def project do [ app: :ex_webrtc, version: @version, elixir: "~> 1.15", elixirc_paths: elixirc_paths(Mix.env()), start_permanent: Mix.env() == :prod, description: "Implementation of the W3C WebRTC API", package: package(), deps: deps(), # docs docs: docs(), source_url: @source_url, # dialyzer dialyzer: [ plt_local_path: "_dialyzer", plt_core_path: "_dialyzer" ], # code coverage test_coverage: [tool: ExCoveralls], preferred_cli_env: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, "coveralls.json": :test ] ] end def application do [ mod: {ExWebRTC.App, []}, extra_applications: [:logger] ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_env), do: ["lib"] def package do [ licenses: ["Apache-2.0"], links: %{"GitHub" => @source_url} ] end defp deps do [ {:ex_sdp, "~> 1.0"}, {:ex_ice, "~> 0.8.0"}, {:ex_dtls, "~> 0.15.0"}, {:ex_libsrtp, "~> 0.7.1"}, {:ex_rtp, "~> 0.4.0"}, {:ex_rtcp, "~> 0.4.0"}, {:crc, "~> 0.10"}, # dev/test {:excoveralls, "~> 0.18.0", only: [:dev, :test], runtime: false}, {:ex_doc, "~> 0.31.0", only: :dev, runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false} ] end defp docs do intro_guides = ["intro", "negotiation", "forwarding", "consuming"] advanced_guides = ["simulcast", "modifying", "mastering_transceivers", "debugging"] [ main: "readme", logo: "logo.svg", extras: ["README.md"] ++ Enum.map(intro_guides, &"guides/introduction/#{&1}.md") ++ Enum.map(advanced_guides, &"guides/advanced/#{&1}.md"), assets: "guides/assets", source_ref: "v#{@version}", formatters: ["html"], before_closing_body_tag: &before_closing_body_tag/1, nest_modules_by_prefix: [ExWebRTC], groups_for_extras: [ Introduction: Path.wildcard("guides/introduction/*.md"), Advanced: Path.wildcard("guides/advanced/*.md") ], groups_for_modules: [ MEDIA: ~r"ExWebRTC\.Media\..*", RTP: ~r"ExWebRTC\.RTP\..*" ] ] end defp before_closing_body_tag(:html) do # highlight JS code blocks # and mermaid graphs """ """ end end