PROPOSAL: IR
This is a proposal of a custom IR to run wasm. At the moment only `ir.zig` has some parts related to this IR. The idea of the IR is to be a subset of the one defined in wasm. There are some gaps (mostly in wasm instructions that have opcode 0xFC) but in wasm they don't use all of the opcodes for some reason so maybe we could try to utilize them and be a superset of wasm.
This commit is contained in:
parent
b7854d7325
commit
874134f3ff
5 changed files with 317 additions and 5 deletions
29
build.zig
29
build.zig
|
|
@ -55,14 +55,22 @@ pub fn build(b: *std.Build) void {
|
|||
}, .flags = &[_][]const u8{ "-D_GLFW_X11", "-Wall", "-Wextra" } });
|
||||
glfw.linkLibC();
|
||||
|
||||
const mods = b.addModule("mods", .{
|
||||
.root_source_file = b.path("src/mods/mods.zig"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
});
|
||||
|
||||
const exe = b.addExecutable(.{
|
||||
.root_source_file = b.path("src/main.zig"),
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.name = "sideros",
|
||||
});
|
||||
exe.root_module.addImport("mods", mods);
|
||||
exe.addIncludePath(b.path("ext/glfw/include"));
|
||||
|
||||
|
||||
exe.linkSystemLibrary("vulkan");
|
||||
compileAllShaders(b, exe);
|
||||
exe.linkLibrary(glfw);
|
||||
|
|
@ -70,6 +78,27 @@ pub fn build(b: *std.Build) void {
|
|||
|
||||
b.installArtifact(exe);
|
||||
|
||||
// TODO: This does not generate documentation correctly?
|
||||
const install_docs = b.addInstallDirectory(.{
|
||||
.source_dir = exe.getEmittedDocs(),
|
||||
.install_dir = .prefix,
|
||||
.install_subdir = "docs",
|
||||
});
|
||||
const docs_step = b.step("docs", "Generate documentation");
|
||||
docs_step.dependOn(&install_docs.step);
|
||||
|
||||
// NOTE: This is a hack to generate documentation
|
||||
const mods_lib = b.addStaticLibrary(.{
|
||||
.root_module = mods,
|
||||
.name = "mods",
|
||||
});
|
||||
const mods_docs = b.addInstallDirectory(.{
|
||||
.source_dir = mods_lib.getEmittedDocs(),
|
||||
.install_dir = .prefix,
|
||||
.install_subdir = "docs/mods",
|
||||
});
|
||||
docs_step.dependOn(&mods_docs.step);
|
||||
|
||||
const run_cmd = b.addRunArtifact(exe);
|
||||
run_cmd.step.dependOn(b.getInstallStep());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue