defmodule Zig.Assembler do
@moduledoc """
Assembles the staging directory for zig content.
The staging directory contains:
- `build.zig` for the library file.
"""
alias Zig.Builder
@doc "staging directory for the zigler assembly"
def directory(module) do
Path.join(System.tmp_dir(), to_string(module))
end
def assemble(module, opts) do
directory = directory(module)
File.mkdir_p!(directory)
opts = Keyword.take(opts, [:to, :from, :link_lib, :build_opts, :stage1, :include_dir, :c_src, :packages])
opts = Keyword.merge([to: directory], opts)
Builder.build(module, opts)
end
end