argon2id_elixir/mix.exs

134 lines
2.6 KiB
Elixir
Raw Normal View History

2024-11-09 14:06:34 +02:00
defmodule Argon2.MixProject do
use Mix.Project
@source_url "https://code.sipstea.org/jussi/argon2id_elixir"
def project do
[
app: :argon2id_elixir,
2024-11-09 15:23:09 +02:00
version: "1.1.0",
2024-11-09 14:06:34 +02:00
elixir: "~> 1.17",
start_permanent: Mix.env() == :prod,
deps: deps(),
aliases: aliases(),
rustler_crates: rustler_crates(),
# Hex
package: package(),
description: "Argon2 password hashing using Rust",
# Docs
name: "Argon2",
docs: docs(),
# Test 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
[
extra_applications: [:logger]
]
end
defp deps do
[
{:rustler, "~> 0.35.0", runtime: false},
{:ex_doc, "~> 0.34.2", only: :dev, runtime: false},
{:excoveralls, "~> 0.18.3", only: :test},
{:credo, "~> 1.7.10", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4.4", only: [:dev, :test], runtime: false}
]
end
defp aliases do
[
fmt: [
"format",
"cmd cargo fmt --manifest-path native/argon2/Cargo.toml"
],
quality: [
"format",
"cmd cargo fmt --manifest-path native/argon2/Cargo.toml",
"credo --strict",
"dialyzer"
]
]
end
defp rustler_crates do
[
argon2: [
path: "native/argon2",
mode: rustc_mode(),
features: [],
cargomode: cargomode()
]
]
end
defp rustc_mode do
case Mix.env() do
:prod -> :release
_ -> :debug
end
end
defp cargomode do
case Mix.env() do
:prod -> "build"
_ -> "check"
end
end
defp package do
[
name: "argon2id_elixir",
files: [
"lib",
"native",
"mix.exs",
"README.md",
"LICENSE-APACHE",
"LICENSE-MIT",
".formatter.exs"
],
exclude_patterns: [
"native/argon2/target",
"test",
"priv"
],
2024-11-09 14:06:34 +02:00
licenses: ["MIT", "Apache-2.0"],
links: %{
"Source repository" => @source_url
},
maintainers: ["Jussi Räsänen"]
]
end
defp docs do
[
main: "Argon2",
source_url: @source_url,
2024-11-09 15:23:09 +02:00
extras: ["README.md", "LICENSE-APACHE", "LICENSE-MIT"],
2024-11-09 14:06:34 +02:00
groups_for_modules: [
Core: [
Argon2,
Argon2.Native
],
Utilities: [
Argon2.Benchmark
]
]
]
end
end