Current section
Files
Jump to
Current section
Files
xb5_elixir
mix.exs
mix.exs
defmodule Xb5.MixProject do
use Mix.Project
@version "1.0.0"
@source_url "https://github.com/g-andrade/xb5_elixir"
def project do
mix_env = Mix.env()
[
app: :xb5_elixir,
version: @version,
description: description(),
elixir: "~> 1.14",
start_permanent: mix_env === :prod,
deps: deps(),
elixirc_paths: elixirc_paths(mix_env),
elixirc_options: elixirc_options(mix_env),
docs: docs(),
test_coverage: [
summary: [
threshold: 93
]
],
dialyzer: [plt_add_apps: [:ex_unit]],
package: package()
]
end
defp description do
"B-trees of order 5 (tree, set, order-statistic multiset) for Elixir"
end
defp deps do
List.flatten([
{:ex_doc, "~> 0.30", only: :dev, runtime: false},
{:recon, "~> 2.5", only: [:dev, :test], runtime: false},
{:xb5, "~> 1.0"},
maybe_credo_dep(),
maybe_dialyxir_dep(),
maybe_styler_dep()
])
end
defp maybe_credo_dep do
if elixir_vsn_match?("~> 1.12") do
{:credo, "~> 1.7", only: [:dev, :test], runtime: false}
else
[]
end
end
defp maybe_dialyxir_dep do
if elixir_vsn_match?("~> 1.12") do
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
else
[]
end
end
defp maybe_styler_dep do
if elixir_vsn_match?("~> 1.14") do
{:styler, "~> 1.1", only: [:dev, :test], runtime: false}
else
[]
end
end
defp elixirc_paths(env) do
if env === :test do
["lib", "test/extra"]
else
["lib"]
end
end
defp elixirc_options(env) do
if env === :test do
[warnings_as_errors: true]
else
[]
end
end
defp docs do
[
main: "readme",
name: "Xb5",
source_ref: @version,
canonical: "http://hexdocs.pm/xb5_erlang",
source_url: @source_url,
extras: [
"CHANGELOG.md",
"LICENSE.txt",
"README.md": [title: "Xb5"]
]
]
end
defp package do
[
maintainers: ["Guilherme Andrade"],
licenses: ["MIT"],
links: %{
"GitHub" => @source_url
}
]
end
defp elixir_vsn_match?(requirement), do: Version.match?(System.version(), requirement)
end