defmodule Circuits.UART.MixProject do use Mix.Project @version "1.5.4" @source_url "https://github.com/elixir-circuits/circuits_uart" def project do [ app: :circuits_uart, version: @version, elixir: "~> 1.6", description: description(), package: package(), source_url: @source_url, compilers: [:elixir_make | Mix.compilers()], make_targets: ["all"], make_clean: ["clean"], make_executable: make_executable(), make_makefile: "src/Makefile", make_error_message: make_error_message(), docs: docs(), start_permanent: Mix.env() == :prod, dialyzer: dialyzer(), deps: deps() ] end def application, do: [] def cli do [preferred_envs: %{docs: :docs, "hex.publish": :docs, "hex.build": :docs}] end defp description do "Discover and use UARTs and serial ports in Elixir" end defp package do %{ files: [ "CHANGELOG.md", "lib", "src/*.[ch]", "src/ei_copy/*.[ch]", "src/Makefile", "test", "mix.exs", "NOTICE", "README.md", "REUSE.toml", "LICENSES" ], licenses: ["Apache-2.0"], links: %{ "GitHub" => @source_url, "REUSE Compliance" => "https://api.reuse.software/info/github.com/nerves-project/nerves_runtime" } } end defp deps do [ {:elixir_make, "~> 0.6", runtime: false}, {:ex_doc, "~> 0.22", only: :docs, runtime: false}, {:credo, "~> 1.6", only: :dev, runtime: false}, {:dialyxir, "~> 1.2", only: :dev, runtime: false} ] end defp dialyzer() do [ flags: [:missing_return, :extra_return, :unmatched_returns, :error_handling, :underspecs], list_unused_filters: true ] end defp docs do [ extras: ["README.md", "CHANGELOG.md"], main: "readme", source_ref: "v#{@version}", source_url: @source_url ] end defp make_executable do case :os.type() do {:win32, _} -> "mingw32-make" _ -> :default end end @windows_mingw_error_msg """ You may need to install mingw-w64 and make sure that it is in your PATH. Test this by running `gcc --version` on the command line. If you do not have mingw-w64, one method to install it is by using Chocolatey. See http://chocolatey.org to install Chocolatey and run the following from and command prompt with administrative privileges: `choco install mingw` """ defp make_error_message do case :os.type() do {:win32, _} -> @windows_mingw_error_msg _ -> :default end end end