Current section
Files
Jump to
Current section
Files
mix.exs
defmodule Zstd.MixProject do
use Mix.Project
def project do
[
app: :ex_zstd,
deps: deps(Mix.env()),
elixir: "~> 1.7",
version: "0.1.0",
package: package(),
compilers: compilers(),
source_url: "https://github.com/chenzhuoyu/elixir-zstd",
description: description(),
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod
]
end
defp deps(:publish) do
[
{:ex_doc, ">= 0.0.0"}
]
end
defp deps(_) do
[
{:libzstd, "~> 1.3.7", github: "facebook/zstd", app: false}
]
end
defp package do
[
name: "ex_zstd",
files: ~w(lib c_src test .formatter.exs Makefile mix.exs README.md),
links: %{"GitHub" => "https://github.com/chenzhuoyu/elixir-zstd"},
licenses: ["BSD"]
]
end
defp compilers do
[
:zstd,
:elixir,
:app
]
end
defp description do
"Elixir binding of the Zstandard library"
end
end
defmodule Mix.Tasks.Compile.Zstd do
def run(_) do
if match?({:win32, _}, :os.type()) do
IO.warn("Windows is not supported")
exit(1)
else
File.mkdir_p("priv")
{result, _code} = System.cmd("make", ["priv/nif_ex_zstd.so"], stderr_to_stdout: true)
IO.binwrite(result)
end
end
end