defmodule SnipsNlu.MixProject do use Mix.Project def project do [ app: :snips_nlu, version: File.read!("VERSION"), elixir: "~> 1.6", start_permanent: Mix.env() == :prod, deps: deps(), compilers: [:rustler] ++ Mix.compilers(), rustler_crates: rustler_crates(), package: package(), description: description(), # Docs name: :bubble, source_url: "https://github.com/botsquad/snips_nlu", homepage_url: "https://www.botsquad.com", docs: [ # The main page in the docs main: "snips_nlu", output: "priv/doc/", # logo: "path/to/logo.png", extras: ["README.md"] ] ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:rustler, "~> 0.18"}, {:jason, "~> 1.0", only: :test}, {:ex_doc, "~> 0.18.0", only: :dev} ] end defp description() do "Elixir NIF interface to the Snips NLU engine" end defp package() do [ # This option is only needed when you don't want to use the OTP application name name: "snips_nlu", # These are the default files included in the package files: ["lib", "mix.exs", "VERSION", "README*", "LICENSE*"] ++ rustler_files("native/snips_nlu_native/"), maintainers: ["Arjan Scherpenisse"], licenses: ["MIT"], links: %{ "GitHub" => "https://github.com/botsquad/snips_nlu" } ] end defp rustler_files(prefix) do [prefix <> "Cargo.toml", prefix <> "Cargo.lock", prefix <> "src"] end defp rustler_crates do [ snips_nlu_native: [ path: "native/snips_nlu_native", mode: rustc_mode(Mix.env()) ] ] end defp rustc_mode(:prod), do: :release defp rustc_mode(_), do: :debug end