Current section
Files
Jump to
Current section
Files
erldist_filter
mix.exs
mix.exs
# Copyright (c) Meta Platforms, Inc. and affiliates.
# Copyright (c) WhatsApp LLC
#
# This source code is licensed under the MIT license found in the
# LICENSE.md file in the root directory of this source tree.
defmodule ErldistFilter.MixProject do
use Mix.Project
def project() do
{app, desc} = load_app()
[
app: app,
version: to_string(Keyword.fetch!(desc, :vsn)),
description: to_string(Keyword.fetch!(desc, :description)),
elixir: "~> 1.14",
compilers: [:elixir_make] ++ Mix.compilers(),
make_args: ["-j"],
make_env: %{"MIX_ENV" => to_string(Mix.env())},
make_clean: ["clean"],
make_cwd: "c_src",
deps: deps(),
elixirc_paths: elixirc_paths(Mix.env()),
package: package()
]
end
def application() do
{_app, desc} = load_app()
[mod: Keyword.fetch!(desc, :mod)]
end
# Run "mix help deps" to learn about dependencies.
defp deps() do
[
{:elixir_make, "~> 0.7", runtime: false}
]
end
defp elixirc_paths(:test), do: ["lib", "test/support"]
defp elixirc_paths(_), do: ["lib"]
defp package() do
{_app, desc} = load_app()
[
build_tools: ["mix", "rebar3"],
description: to_string(Keyword.fetch!(desc, :description)),
exclude_patterns: Enum.map(Keyword.fetch!(desc, :exclude_patterns), fn pattern ->
Regex.compile!(to_string(pattern))
end),
files: Enum.map(Keyword.fetch!(desc, :files), &to_string/1),
licenses: Enum.map(Keyword.fetch!(desc, :licenses), &to_string/1),
links: Enum.into(Keyword.fetch!(desc, :links), Map.new(), fn {key, value} ->
{to_string(key), to_string(value)}
end)
]
end
defp load_app() do
{:ok, [{:application, name, desc}]} = :file.consult('src/erldist_filter.app.src')
{name, desc}
end
end