defmodule Easel.MixProject do use Mix.Project @version "0.3.4" @source_url "https://github.com/jasonstiebs/easel" def project do [ app: :easel, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, deps: deps(), aliases: aliases(), test_paths: ["test"], test_pattern: "*_test.exs", description: description(), package: package(), docs: docs() ] end def application do [ extra_applications: [:logger] ++ optional_apps() ] end defp optional_apps do if match?({:module, _}, Code.ensure_compiled(:wx)), do: [:wx], else: [] end defp deps do [ {:phoenix_live_view, "~> 1.0", optional: true}, {:termite, "~> 0.4.0", optional: true}, {:ex_doc, "~> 0.34", only: :dev, runtime: false} ] end defp aliases do [ "easel.regen_canvas_api": [ "cmd elixir scripts/regenerate_canvas_api.exs", "format lib/easel.ex lib/web_idl.ex.exs" ], "easel.regen_web_idl_parser": ["easel.regen_canvas_api"] ] end defp description do """ Canvas 2D API for Elixir. Build draw operations as data, render to Phoenix LiveView, native wx windows, terminal (experimental), or your own backend. """ end defp package do [ licenses: ["MIT"], links: %{"GitHub" => @source_url}, files: ~w(lib priv/compat.json priv/easel.webidl priv/static mix.exs README.md LICENSE) ] end defp docs do [ main: "readme", extras: ["README.md"], source_url: @source_url, source_ref: "v#{@version}" ] end end