defmodule ExSpeedGame.MixProject do use Mix.Project @app :ex_speed_game @version "0.3.1" @all_targets [:rpi0] def project do [ app: @app, version: @version, elixir: "~> 1.12", archives: [nerves_bootstrap: "~> 1.10"], start_permanent: Mix.env() == :prod, build_embedded: true, aliases: [loadconfig: [&bootstrap/1]], deps: deps(), releases: [{@app, release()}], preferred_cli_target: [run: :host, test: :host], compilers: [:phoenix] ++ Mix.compilers() ] end # Starting nerves_bootstrap adds the required aliases to Mix.Project.config() # Aliases are only added if MIX_TARGET is set. def bootstrap(args) do Application.start(:nerves_bootstrap) Mix.Task.run("loadconfig", args) end # Run "mix help compile.app" to learn about applications. def application do [ mod: {ExSpeedGame.Application, []}, extra_applications: [:logger, :runtime_tools, :os_mon, :crypto] ] end # Run "mix help deps" to learn about dependencies. defp deps do [ # Dependencies for all targets {:nerves, "~> 1.7.11", runtime: false}, {:shoehorn, "~> 0.7"}, {:ring_logger, "~> 0.8"}, {:toolshed, "~> 0.2"}, {:circuits_gpio, "~> 0.4"}, {:blinkchain, "~> 1.0"}, # Web UI stuff {:phoenix, "~> 1.5.1"}, {:phoenix_live_view, "~> 0.12.0"}, {:phoenix_html, "~> 2.11"}, {:phoenix_live_dashboard, "~> 0.2.0"}, {:telemetry_metrics, "~> 0.4.0"}, {:telemetry_poller, "~> 0.4.0"}, {:jason, "~> 1.0"}, {:plug_cowboy, "~> 2.0"}, # Dependencies for all targets except :host {:nerves_runtime, "~> 0.11", targets: @all_targets}, {:nerves_init_gadget, "~> 0.7", targets: @all_targets}, {:nerves_network, "~> 0.5", targets: @all_targets}, # Dependencies for specific targets {:nerves_system_rpi0, "~> 1.17", runtime: false, targets: :rpi0} ] end def release do [ overwrite: true, cookie: "#{@app}_cookie", include_erts: &Nerves.Release.erts/0, steps: [&Nerves.Release.init/1, :assemble], strip_beams: Mix.env() == :prod ] end end