diff options
| author | Alec Goncharow <alec@goncharow.dev> | 2024-09-08 20:11:39 -0400 |
|---|---|---|
| committer | Alec Goncharow <alec@goncharow.dev> | 2024-09-08 20:11:39 -0400 |
| commit | 0048221026e22efad5b8539618dd54ce650956ba (patch) | |
| tree | 72af499d6566d557566bc8a6a55b9d8557d7d98a /build.zig | |
| parent | e510e859a46835e0b1add6221ac9482a2402cd7a (diff) | |
compiles again
Diffstat (limited to 'build.zig')
| -rw-r--r-- | build.zig | 68 |
1 files changed, 55 insertions, 13 deletions
@@ -1,6 +1,33 @@ const std = @import("std"); -const raySdk = @import("raylib/src/build.zig"); +const raySdk = @import("raylib"); + +pub const Options = struct { + raudio: bool = true, + rmodels: bool = true, + rshapes: bool = true, + rtext: bool = true, + rtextures: bool = true, + platform_drm: bool = false, + shared: bool = false, + linux_display_backend: LinuxDisplayBackend = .X11, + opengl_version: OpenglVersion = .auto, +}; + +pub const OpenglVersion = enum { + auto, + gl_1_1, + gl_2_1, + gl_3_3, + gl_4_3, + gles_2, + gles_3, +}; + +pub const LinuxDisplayBackend = enum { + X11, + Wayland, +}; // Although this function looks imperative, note that its job is to // declaratively construct a build graph that will be executed by an external @@ -16,23 +43,38 @@ pub fn build(b: *std.Build) !void { // 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 defaults = raySdk.Options{}; - const options = raySdk.Options{ + const defaults = Options{}; + const options = Options{ .platform_drm = b.option(bool, "platform_drm", "Compile raylib in native mode (no X11)") orelse defaults.platform_drm, .raudio = b.option(bool, "raudio", "Compile with audio support") orelse defaults.raudio, .rmodels = b.option(bool, "rmodels", "Compile with models support") orelse defaults.rmodels, .rtext = b.option(bool, "rtext", "Compile with text support") orelse defaults.rtext, .rtextures = b.option(bool, "rtextures", "Compile with textures support") orelse defaults.rtextures, .rshapes = b.option(bool, "rshapes", "Compile with shapes support") orelse defaults.rshapes, - .raygui = b.option(bool, "raygui", "Compile with raygui support") orelse defaults.raygui, + .shared = b.option(bool, "shared", "Compile as shared library") orelse defaults.shared, + .linux_display_backend = b.option(LinuxDisplayBackend, "linux_display_backend", "Linux display backend to use") orelse defaults.linux_display_backend, + .opengl_version = b.option(OpenglVersion, "opengl_version", "OpenGL version to use") orelse defaults.opengl_version, }; - const raylib = try raySdk.addRaylib(b, target, optimize, options); + + const raylib = b.dependency("raylib", .{ + .target = target, + .optimize = optimize, + .raudio = options.raudio, + .rmodels = options.rmodels, + .rshapes = options.rshapes, + .rtext = options.rtext, + .rtextures = options.rtextures, + .platform_drm = options.platform_drm, + .shared = options.shared, + .linux_display_backend = options.linux_display_backend, + .opengl_version = options.opengl_version, + }); const lib = b.addStaticLibrary(.{ - .name = "zigdown", + .name = "shipit", // In this case the main source file is merely a path, however, in more // complicated build scripts, this could be a generated file. - .root_source_file = .{ .path = "src/root.zig" }, + .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, }); @@ -46,7 +88,7 @@ pub fn build(b: *std.Build) !void { .name = "zig-raylib", // In this case the main source file is merely a path, however, in more // complicated build scripts, this could be a generated file. - .root_source_file = .{ .path = "src/main.zig" }, + .root_source_file = b.path("src/main.zig"), .target = target, .optimize = optimize, }); @@ -56,15 +98,15 @@ pub fn build(b: *std.Build) !void { .name = "zig-raylib", // In this case the main source file is merely a path, however, in more // complicated build scripts, this could be a generated file. - .root_source_file = .{ .path = "src/main.zig" }, + .root_source_file = b.path("src/main.zig"), .target = target, .optimize = optimize, }); const check = b.step("check", "Check if it compiles"); check.dependOn(&exe_check.step); - exe.addIncludePath(.{ .path = "raylib/src" }); - exe.linkLibrary(raylib); + exe.addIncludePath(b.path("raylib/src")); + exe.linkLibrary(raylib.artifact("raylib")); // This declares intent for the executable to be installed into the // standard location when the user invokes the "install" step (the default @@ -97,14 +139,14 @@ pub fn build(b: *std.Build) !void { // Creates a step for unit testing. This only builds the test executable // but does not run it. const lib_unit_tests = b.addTest(.{ - .root_source_file = .{ .path = "src/root.zig" }, + .root_source_file = b.path("src/root.zig"), .target = target, .optimize = optimize, }); const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests); const unit_tests = b.addTest(.{ - .root_source_file = .{ .path = "src/main.zig" }, + .root_source_file = b.path("src/main.zig"), .target = target, .optimize = optimize, }); |
