defmodule Mix.Tasks.Compile.NetcdfNif do
def run(_args) do
{result, _errcode} = System.cmd("gcc",
[ "-O3",
"-fpic",
"-shared",
"-lnetcdf",
"-DELIXIR_MODULE",
"-I#{System.get_env("ERL_INCLUDE")}",
"-o", "priv/netcdf_nif_ex.so",
"c_src/netcdf_nif.c"
], stderr_to_stdout: true)
IO.puts(result)
end
end
defmodule NetcdfNif.Mixfile do
use Mix.Project
def project do
[
app: :netcdf_nif,
version: "0.1.2",
elixir: "~> 1.5",
start_permanent: Mix.env == :prod,
deps: deps(),
package: package(),
compilers: [:netcdf_nif] ++ Mix.compilers,
description: description(),
]
end
defp description do
"""
A simple Erlang/Elixir NIF wrapper for the NetCDF C library
"""
end
defp package do
[
name: :netcdf_nif,
files: ["c_src", "lib", "LICENSE", "mix.exs", "priv/.empty", "README.md", "rebar.config", "src"],
maintainers: ["Przemysław Kamiński"],
licenses: ["MIT"],
links: %{"Sourcehut" => "https://git.sr.ht/~cgenie/netcdf_nif"},
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:ex_doc, ">= 0.0.0", only: :dev, runtime: false},
]
end
end