defmodule Mix.Tasks.Compile.NativeCode do def run (_args) do { result, _ec } = System.cmd("sh", ["-c", "cd native-x86_64_linux; make"]) IO.binwrite(result) end end defmodule Deqdip.MixProject do use Mix.Project def project do [ app: :deqdip, compilers: [:NativeCode] ++ Mix.compilers(), aliases: aliases(), version: "1.0.1", elixir: "~> 1.9", start_permanent: Mix.env() == :prod, deps: deps(), description: describe(), package: pkg() ] end defp aliases() do [ clean: ["clean", &clean_deqdip/1] ] end # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger] ] end defp describe() do "Provides decdip_proto()" end def clean_deqdip (_args) do { result, _ec } = System.cmd("sh", ["-c", "cd native-x86_64_linux; make clean"]) IO.binwrite(result) end defp deps do [ ] end defp pkg() do [ files: ~w(lib .formatter.exs mix.exs README* native-x86_64_linux), licenses: ["GPL"], links: %{"GitHub" => "https://github.com/cyanotype1/deqdip"} ] end end