Packages

Interfaces Elixir with C/C++ code in a user-friendly way! Based on Erlang-ports. Provides a few Mix-tasks to kickstart the development process.

Current section

Files

Jump to
cure lib compile.cure.ex
Raw

lib/compile.cure.ex

defmodule Mix.Tasks.Compile.Cure do
use Mix.Task
@shortdoc "Uses Makefile (in c_src directory) to compile your C-source code."
@source_dir Path.expand("../../c_src")
@doc """
Compiles the C-files located in the ./c_src directory.
"""
def run(_args) do
if File.exists? @source_dir do
if Mix.shell.cmd("make all -C " <> @source_dir) != 0 do
raise Mix.Error,
message: "Could not run make all -C " <> @source_dir
<> ". Make sure you have gcc and make installed."
end
else
IO.puts "Compile.cure: Could not find a c_src directory."
end
end
end