update zig build to latest master (#2910)

also, adds package manager support
This commit is contained in:
star-tek-mb
2023-02-05 17:03:03 +05:00
committed by GitHub
parent 60d0ab418a
commit ff70a04bf5
3 changed files with 47 additions and 20 deletions

View File

@@ -1,6 +1,6 @@
const std = @import("std");
pub fn addRaylib(b: *std.build.Builder, target: std.zig.CrossTarget) *std.build.LibExeObjStep {
pub fn addRaylib(b: *std.build.Builder, target: std.zig.CrossTarget, optimize: std.builtin.OptimizeMode) *std.build.LibExeObjStep {
const raylib_flags = &[_][]const u8{
"-std=gnu99",
"-D_GNU_SOURCE",
@@ -8,8 +8,11 @@ pub fn addRaylib(b: *std.build.Builder, target: std.zig.CrossTarget) *std.build.
"-fno-sanitize=undefined", // https://github.com/raysan5/raylib/issues/1891
};
const raylib = b.addStaticLibrary("raylib", null);
raylib.setTarget(target);
const raylib = b.addStaticLibrary(.{
.name = "raylib",
.target = target,
.optimize = optimize,
});
raylib.linkLibC();
raylib.addIncludePath(srcdir ++ "/external/glfw/include");
@@ -106,8 +109,12 @@ pub fn build(b: *std.build.Builder) void {
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
// Standard optimization options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not
// set a preferred release mode, allowing the user to decide how to optimize.
const optimize = b.standardOptimizeOption(.{});
const lib = addRaylib(b, target);
const lib = addRaylib(b, target, optimize);
lib.setOutputDir(srcdir);
lib.install();
}