defmodule Localize.Translate.MixProject do
use Mix.Project
@name "Localize Translate"
@version "0.1.0"
@source_url "https://github.com/elixir-localize/localize_translate"
def project do
[
app: :localize_translate,
name: @name,
source_url: @source_url,
homepage_url: "https://hex.pm/packages/localize_translate",
version: @version,
elixir: "~> 1.17",
description: "Embedded translations for Ecto schemas",
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
aliases: aliases(),
elixirc_paths: elixirc_paths(Mix.env()),
app_list: app_list(Mix.env()),
package: package(),
deps: deps(),
docs: docs(),
dialyzer: [
plt_add_apps: ~w(ecto ecto_sql inets localize mix)a
]
]
end
defp docs do
[
source_ref: "v#{@version}",
main: "readme",
formatters: ["html", "markdown"],
extras: [
"README.md",
"guides/translatable_database_systems.md": [
title: "Building Translatable Database Systems"
],
"LICENSE.md": [title: "License"],
"CHANGELOG.md": [title: "Changelog"]
],
groups_for_extras: [
Guides: ~r"guides/.*"
]
]
end
def application do
[extra_applications: [:logger]]
end
defp deps do
[
{:ecto, "~> 3.0"},
{:localize, "~> 0.32"},
# Optional dependencies
{:ecto_sql, "~> 3.0", optional: true},
{:postgrex, "~> 0.19 or ~> 1.0", optional: true},
# Doc dependencies
{:ex_doc, ">= 0.0.0", only: [:dev, :release], runtime: false},
{:dialyxir, "~> 1.0", only: [:dev, :test], runtime: false, optional: true}
] ++ maybe_json_polyfill()
end
defp maybe_json_polyfill do
if Code.ensure_loaded?(:json) do
[]
else
[{:json_polyfill, "~> 0.2 or ~> 1.0"}]
end
end
defp package do
[
licenses: ["Apache-2.0"],
maintainers: ["Kip Cole"],
links: links(),
files: [
"lib",
"guides",
"mix.exs",
"README.md",
"LICENSE.md",
"CHANGELOG.md"
]
]
end
def links do
%{
"GitHub" => "https://github.com/elixir-localize/localize_translate",
"Readme" =>
"https://github.com/elixir-localize/localize_translate/blob/v#{@version}/README.md",
"Changelog" =>
"https://github.com/elixir-localize/localize_translate/blob/v#{@version}/CHANGELOG.md"
}
end
# Include Ecto and Postgrex applications in tests
def app_list(:test), do: [:ecto, :postgrex]
def app_list(_), do: app_list()
def app_list, do: []
# Always compile files in "lib". In tests compile also files in
# "test/support"
def elixirc_paths(:test), do: elixirc_paths() ++ ["mix", "test/support"]
def elixirc_paths(:dev), do: elixirc_paths() ++ ["mix"]
def elixirc_paths(_), do: elixirc_paths()
def elixirc_paths, do: ["lib"]
defp aliases do
[
test: [
"ecto.migrate --quiet",
"test"
]
]
end
end