Current section

Files

Jump to
midi_synth mix.exs
Raw

mix.exs

defmodule MIDISynth.MixProject do
use Mix.Project
@version "0.4.2"
@source_url "https://github.com/fhunleth/midi_synth"
def project do
[
app: :midi_synth,
version: @version,
elixir: "~> 1.11",
package: package(),
compilers: [:elixir_make | Mix.compilers()],
aliases: [format: ["format", &format_c/1]],
make_targets: ["all"],
make_clean: ["clean"],
make_error_message: make_error_message(),
docs: docs(),
description: description(),
start_permanent: Mix.env() == :prod,
dialyzer: dialyzer(),
deps: deps()
]
end
def cli do
[preferred_envs: %{docs: :docs, "hex.publish": :docs, "hex.build": :docs, credo: :test}]
end
def application do
[
extra_applications: [:logger]
]
end
defp description do
"MIDI synthesizer for Elixir"
end
defp package do
[
files: [
"lib",
"c_src/*.[ch]",
"c_src/Makefile",
"Makefile",
"mix.exs",
"README.md",
"LICENSE",
"CHANGELOG.md"
],
licenses: ["Apache-2.0"],
links: %{
"Changelog" => "#{@source_url}/blob/main/CHANGELOG.md",
"GitHub" => @source_url
}
]
end
defp deps do
[
{:elixir_make, "~> 0.6", runtime: false},
{:ex_doc, "~> 0.22", only: :docs, runtime: false},
{:dialyxir, "~> 1.2", only: :dev, runtime: false},
{:credo, "~> 1.2", only: :test, runtime: false},
{:credo_binary_patterns, "~> 0.2.6", only: :test, runtime: false}
]
end
defp dialyzer() do
[
flags: [:missing_return, :extra_return, :unmatched_returns, :error_handling, :underspecs]
]
end
defp docs do
[
extras: ["README.md", "CHANGELOG.md", "LICENSE"],
main: "readme",
source_ref: "v#{@version}",
source_url: @source_url,
skip_undefined_reference_warnings_on: ["CHANGELOG.md"]
]
end
defp format_c([]) do
astyle =
System.find_executable("astyle") ||
Mix.raise("""
Could not format C code since astyle is not available.
""")
System.cmd(astyle, ["-n", "c_src/*.c"], into: IO.stream(:stdio, :line))
end
defp format_c(_args), do: true
defp make_error_message() do
"""
This is usually due to not being able to find the fluidsynth library. Try
installing it and then rerun the build to see if that fixes the error.
On MacOS, run `brew install fluidsynth pkg-config`.
On Ubuntu, try `sudo apt install libfluidsynth-dev`
If this does not fix the issue, the C compiler error message right above
this help text may provide a clue.
"""
end
end