Add Windows-only build.zig
This commit is contained in:
parent
f54b94a51f
commit
df6b6667ee
3
.gitignore
vendored
3
.gitignore
vendored
@ -12,4 +12,5 @@ t2-output
|
||||
.cxx
|
||||
build
|
||||
kk
|
||||
vc
|
||||
vc
|
||||
/zig-cache
|
50
build.zig
Normal file
50
build.zig
Normal file
@ -0,0 +1,50 @@
|
||||
const std = @import("std");
|
||||
|
||||
const cflags: []const []const u8 = &.{
|
||||
"-Wall",
|
||||
"-Wextra",
|
||||
"-pedantic",
|
||||
"-Wno-switch",
|
||||
"-Wno-unused-function",
|
||||
"-Wno-implicit-fallthrough",
|
||||
"-std=c11",
|
||||
};
|
||||
|
||||
pub fn build(b: *std.build.Builder) void {
|
||||
// Standard release options allow the person running `zig build` to select
|
||||
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
|
||||
const mode = b.standardReleaseOptions();
|
||||
const target = b.standardTargetOptions(.{});
|
||||
|
||||
const lib = b.addStaticLibrary("minifb-zig-port", null);
|
||||
lib.addCSourceFiles(&.{
|
||||
"src/MiniFB_common.c",
|
||||
"src/MiniFB_internal.c",
|
||||
"src/MiniFB_timer.c",
|
||||
"src/windows/WinMiniFB.c",
|
||||
}, cflags);
|
||||
lib.addIncludeDir("src");
|
||||
lib.addIncludeDir("include");
|
||||
lib.linkSystemLibraryName("gdi32");
|
||||
lib.linkLibC();
|
||||
lib.setBuildMode(mode);
|
||||
lib.install();
|
||||
|
||||
addExample(b, "noise", "tests/noise.c", lib, target, mode);
|
||||
addExample(b, "multiple-windows", "tests/multiple_windows.c", lib, target, mode);
|
||||
addExample(b, "input-events", "tests/input_events.c", lib, target, mode);
|
||||
addExample(b, "hidpi", "tests/hidpi.c", lib, target, mode);
|
||||
}
|
||||
|
||||
fn addExample(b: *std.build.Builder, comptime name: []const u8, file: []const u8, lib: *std.build.LibExeObjStep, target: std.zig.CrossTarget, mode: std.builtin.Mode) void {
|
||||
const exe = b.addExecutable(name, null);
|
||||
exe.setBuildMode(mode);
|
||||
exe.setTarget(target);
|
||||
exe.linkLibrary(lib);
|
||||
exe.addIncludeDir("include");
|
||||
exe.addCSourceFile(file, cflags);
|
||||
exe.install();
|
||||
|
||||
const step_name = "run-" ++ name;
|
||||
b.step("run-" ++ name, "Run " ++ name ++ " example").dependOn(&exe.run().step);
|
||||
}
|
Loading…
Reference in New Issue
Block a user