defmodule Blinkchain.Mixfile do use Mix.Project @version "1.0.0" def project do [ app: :blinkchain, version: @version, description: "Drive WS2812B \"NeoPixel\" RGB LED strips from a Raspberry Pi using Elixir.", elixir: "~> 1.6", make_clean: ["clean"], make_targets: ["all"], compilers: [:elixir_make | Mix.compilers()], build_embedded: true, start_permanent: Mix.env() == :prod, package: package(), aliases: [ docs: [©_images/1, "docs"], format: &format/1 ], deps: deps(), test_coverage: [tool: ExCoveralls], preferred_cli_env: [ coveralls: :test, "coveralls.circle": :test ], docs: [ main: "readme", extras: [ "README.md" ] ], name: "Blinkchain", source_url: "https://github.com/GregMefford/blinkchain" ] end def application() do [mod: {Blinkchain.Application, []}, extra_applications: [:logger]] end defp deps do [ {:credo, "~> 1.0", only: [:dev, :test], runtime: false}, {:dialyxir, "~> 0.5", only: [:dev], runtime: false}, {:elixir_make, "~> 0.6", runtime: false}, {:ex_doc, "~> 0.19", only: [:dev], runtime: false}, {:excoveralls, "~> 0.10", only: :test} ] end defp copy_images(_) do File.cp_r("resources", "doc/resources") end # Calling `mix format` wiithout any arguments, so also format the C code defp format([]) do Mix.Tasks.Format.run([]) System.cmd("astyle", ~w{-n -q -s2 src/*.h src/*.c}) end # If arguments are passed to `mix format` (e.g. `--check-formatted`), # assume they don't apply to astylei, so don't run it. defp format(args) do Mix.Tasks.Format.run(args) end defp package do [ files: [ "lib", "src/*.[ch]", "src/rpi_ws281x/*.[ch]", "mix.exs", "LICENSE*", "Makefile" ], maintainers: ["Greg Mefford"], licenses: ["MIT", "BSD 2-Clause"], links: %{"GitHub" => "https://github.com/GregMefford/blinkchain"} ] end end