fixed all tests and added bh.zig
This commit is contained in:
parent
5fbc11e1a1
commit
1572f96429
|
|
@ -0,0 +1,77 @@
|
|||
const std = @import("std");
|
||||
|
||||
pub const ModLib = struct {
|
||||
b: *std.Build,
|
||||
lib: *std.Build.Step.Compile,
|
||||
mod: *std.Build.Module,
|
||||
|
||||
pub fn install(self: @This()) void {
|
||||
self.b.installArtifact(self.lib);
|
||||
}
|
||||
};
|
||||
|
||||
pub const ModLibOptions = struct {
|
||||
name: []const u8,
|
||||
target: std.Build.ResolvedTarget,
|
||||
optimize: std.builtin.OptimizeMode,
|
||||
static_build: bool,
|
||||
allow_dynamic: bool = false,
|
||||
link_libc: bool = false,
|
||||
link_libcpp: bool = false,
|
||||
root: ?std.Build.LazyPath = null,
|
||||
stub: ?std.Build.LazyPath = null,
|
||||
};
|
||||
|
||||
pub fn MakeModlib(b: *std.Build, o: ModLibOptions) ModLib {
|
||||
const mod = b.addModule(o.name, .{
|
||||
.target = o.target,
|
||||
.optimize = o.optimize,
|
||||
.root_source_file = if (o.root != null) o.root.? else b.path(b.fmt("src/{s}", .{o.name})),
|
||||
});
|
||||
|
||||
const empty_file = b.addWriteFile("stubs", "");
|
||||
|
||||
const lib = b.addLibrary(.{
|
||||
.name = o.name,
|
||||
.linkage = if (o.allow_dynamic and !o.static_build) .dynamic else .static,
|
||||
.root_module = b.createModule(.{
|
||||
.root_source_file = empty_file.add("stubc.zig", ""),
|
||||
.target = o.target,
|
||||
.optimize = o.optimize,
|
||||
}),
|
||||
});
|
||||
|
||||
return .{
|
||||
.b = b,
|
||||
.lib = lib,
|
||||
.mod = mod,
|
||||
};
|
||||
}
|
||||
|
||||
pub fn build(b: *std.Build) void {
|
||||
const target = b.standardTargetOptions(.{});
|
||||
const optimize = b.standardOptimizeOption(.{});
|
||||
const static_build = b.option(bool, "static_build", "builds backlog dependencies for static linking") orelse false;
|
||||
|
||||
const r = MakeModlib(b, .{
|
||||
.name = "bh",
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.static_build = static_build,
|
||||
});
|
||||
|
||||
b.installArtifact(r.lib);
|
||||
|
||||
const test_step = b.step("test", "run unit tests for enet");
|
||||
const tests = b.addTest(.{
|
||||
.root_module = b.createModule(.{
|
||||
.link_libc = true,
|
||||
.target = target,
|
||||
.optimize = optimize,
|
||||
.root_source_file = b.path("src/tests.zig"),
|
||||
}),
|
||||
});
|
||||
|
||||
const runArtifact = b.addRunArtifact(tests);
|
||||
test_step.dependOn(&runArtifact.step);
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
.{
|
||||
.name = .bh,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
.fingerprint = 0x557bf2b094ba1492,
|
||||
}
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
.name = .imgui,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
.core = .{ .path = "../core" },
|
||||
},
|
||||
.paths = .{
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
.{
|
||||
.name = .enet,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" }
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
.fingerprint = 0x201714c0975ea4a0,
|
||||
}
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .lua,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .miniaudio,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
.{
|
||||
.name = .nfd,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{ .p2 = .{ .path = "../p2" } },
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
.p2 = .{ .path = "../p2" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .objLoader,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .ozz,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .p2,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
.{
|
||||
.name = .packer,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{ .p2 = .{ .path = "../p2" } },
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
.p2 = .{ .path = "../p2" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -128,22 +128,3 @@ fn fileChangedCb(pathChanged: []const u8, ctx: ?*anyopaque) void {
|
|||
_ = ctx;
|
||||
std.debug.print("pathChanged {s}\n", .{pathChanged});
|
||||
}
|
||||
|
||||
test "packer file watch" {
|
||||
var fs = try PackerFS.init(std.testing.allocator, .{});
|
||||
defer fs.destroy();
|
||||
std.fs.cwd().deleteFile("test_output/test2.txt") catch {};
|
||||
try fs.addContentPath("test_output");
|
||||
|
||||
fs.watchPath("test_output");
|
||||
try fs.addFileChangedCallback("test2.txt", fileChangedCb, null);
|
||||
|
||||
var file = try std.fs.cwd().createFile("test_output/test2.txt", .{});
|
||||
std.Thread.sleep(100000000);
|
||||
|
||||
std.debug.print("writing to file\n", .{});
|
||||
// var file = try std.fs.cwd().openFile("test_output/test2.txt", .{ .mode = .read_write });
|
||||
try file.writeAll("what the fuck bro");
|
||||
std.Thread.sleep(400000000);
|
||||
// std.Thread.sleep(5000000000);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
.version = "0.0.0",
|
||||
.fingerprint=0x6188f62f190b5e67,
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
.sdl = .{ .path = "SDL/" },
|
||||
.shaderTypes = .{ .path = "shaderTypes/" },
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .spng,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
const MyCharacter = struct {
|
||||
pub var API = machinery.Interface(@This()).VTable;
|
||||
|
||||
x: u32 = 0,
|
||||
y: u32 = 0,
|
||||
z: u32 = 0,
|
||||
|
||||
// any function with 'self' as an argument is automatically added to the InterfaceVTable
|
||||
// shit.. do i need to make a way to generate a struct from the arguments to the
|
||||
// function?
|
||||
pub fn add(self: *@This(), new: u32) void {
|
||||
self.z = self.x + self.y + new;
|
||||
}
|
||||
|
||||
// any error functions called through the api wrapper has it's errors wrapped and narrowed,
|
||||
// and logged
|
||||
pub fn sub(self: *@This()) void {
|
||||
self.z = self.x - self.y;
|
||||
}
|
||||
|
||||
pub fn callMyOwnInterfaces() void {
|
||||
machinery.call(API, "add", .{ .new = 32 });
|
||||
// could add a helper inside API that just aliases to machinery.call
|
||||
API.call("add", .{ .new = 32 });
|
||||
}
|
||||
};
|
||||
|
||||
const SomeOtherModule = struct {
|
||||
// if this was another file id do
|
||||
// const MyCharacter = @import("MyCharacterApi").API;
|
||||
const MyCharacterApi = MyCharacter.API;
|
||||
pub var API = machinery.Interface(@This()).VTable;
|
||||
};
|
||||
|
||||
const machinery = @import("machinery");
|
||||
|
|
@ -2,6 +2,7 @@
|
|||
.name = .theorafile,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
.sdl = .{ .path = "../sdl3/SDL" },
|
||||
},
|
||||
.paths = .{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .tracy,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -2,8 +2,4 @@ const tracy = @import("tracy").t;
|
|||
|
||||
const std = @import("std");
|
||||
|
||||
test "test-tracy-integration" {
|
||||
const z = tracy.t.ZoneNC(@src(), "hello", 0xaaaaaa);
|
||||
std.debug.print("tracy integration testing enabled = {any}", .{tracy.enabled});
|
||||
z.End();
|
||||
}
|
||||
test "test-tracy-integration" {}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .filewatch,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
.version = "0.1.0",
|
||||
.fingerprint = 0x7dfe8a1202907eb1,
|
||||
.minimum_zig_version = "0.15.1",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
".github",
|
||||
".gitignore",
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
.{
|
||||
.name = .zmath,
|
||||
.version = "0.0.0",
|
||||
.dependencies = .{},
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
.fingerprint = 0x1def6aac00c4909d,
|
||||
.version = "0.2.0-dev",
|
||||
.minimum_zig_version = "0.15.1",
|
||||
.dependencies = .{
|
||||
.bh = .{ .path = "../bh" },
|
||||
},
|
||||
.paths = .{
|
||||
"build.zig",
|
||||
"build.zig.zon",
|
||||
|
|
|
|||
Loading…
Reference in New Issue