defmodule Saxaboom.MixProject do use Mix.Project @version "0.2.0" def project do [ app: :saxaboom, name: "Saxaboom", version: @version, elixir: "~> 1.15", license: "MIT", start_permanent: Mix.env() == :prod, description: description(), package: package(), docs: docs(), deps: deps(), elixirc_paths: elixirc_paths(Mix.env()), test_coverage: test_coverage(), source_url: "https://github.com/ducharmemp/saxaboom" ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger, :xmerl] ++ test_apps(Mix.env()) ] end defp description() do """ Saxaboom is a data mapper that leverages SAX to extract information from documents, focused on low overhead and developer happiness. """ end defp docs() do [ extras: [ "CHANGELOG.md", {:LICENSE, [title: "License"]}, "README.md", "BENCH.md" ], main: "readme", source_url: "https://github.com/ducharmemp/saxaboom", source_ref: "v#{@version}", skip_undefined_reference_warnings_on: ["CHANGELOG.md"] ] end defp package() do [ maintainers: ["Matt DuCharme"], licenses: ["MIT"], links: %{"GitHub" => "https://github.com/ducharmemp/saxaboom"} ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:erlsom, "~> 1.5", optional: true}, {:saxy, "~> 1.5", optional: true}, {:stream_split, "~> 0.1.7"}, {:mox, "~> 0.1.0", only: :test}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 1.4", only: [:dev], runtime: false}, {:ex_doc, ">= 0.0.0", only: :dev, runtime: false} ] end defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] defp test_apps(:test), do: [:erlsom] defp test_apps(_), do: [] def test_coverage() do [ ignore_modules: [ ~r/\.?Support\./, # This is tested indirectly by using the macros Saxaboom.Mapper ] ] end end