This repository was archived by the owner on Jun 11, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.zig
More file actions
116 lines (95 loc) · 4.15 KB
/
Copy pathbuild.zig
File metadata and controls
116 lines (95 loc) · 4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
const std = @import("std");
const ecs_build = @import("zevy_ecs");
const buildtools = @import("zevy_buildtools");
const rlz = @import("raylib_zig");
const ModuleImport = struct {
name: []const u8,
module: *std.Build.Module,
};
pub fn build(b: *std.Build) !void {
const target = b.standardTargetOptions(.{});
const optimize = b.standardOptimizeOption(.{});
const known_folders_dep = b.dependency("known_folders", .{
.target = target,
.optimize = optimize,
});
const xml_dep = b.dependency("xml", .{
.target = target,
.optimize = optimize,
});
const zevy_ecs_dep = b.dependency("zevy_ecs", .{
.target = target,
.optimize = optimize,
});
const zevy_mem_dep = b.dependency("zevy_mem", .{
.target = target,
.optimize = optimize,
});
const zevy_reflect_dep = b.dependency("zevy_reflect", .{
.target = target,
.optimize = optimize,
});
var raylib_dep_args = rlz.Options{
.linkage = .dynamic,
.opengl_version = rlz.OpenglVersion.gl_4_3,
};
if (target.result.abi == .android or target.result.abi == .androideabi) {
raylib_dep_args.linkage = .static;
raylib_dep_args.opengl_version = .gles_3;
}
//const os_tag = @import("builtin").os.tag;
const raylib_dep = b.dependency("raylib_zig", .{
.target = target,
.optimize = optimize,
.linkage = raylib_dep_args.linkage,
.opengl_version = raylib_dep_args.opengl_version,
});
const raylib_artifact = raylib_dep.artifact("raylib"); // raylib C library
//raylib_artifact.root_module.addCMacro("SUPPORT_FILEFORMAT_JPG", "");
const mod = b.addModule("zevy_raylib", .{
.root_source_file = b.path("src/root.zig"),
.target = target,
.optimize = optimize,
.imports = &.{
.{ .name = "known_folders", .module = known_folders_dep.module("known-folders") },
.{ .name = "zevy_ecs", .module = zevy_ecs_dep.module("zevy_ecs") },
.{ .name = "raylib", .module = raylib_dep.module("raylib") },
.{ .name = "raygui", .module = raylib_dep.module("raygui") },
.{ .name = "xml", .module = xml_dep.module("xml") },
.{ .name = "zevy_reflect", .module = zevy_reflect_dep.module("zevy_reflect") },
.{ .name = "zevy_mem", .module = zevy_mem_dep.module("zevy_mem") },
},
});
mod.linkLibrary(raylib_artifact);
const embed_opts: buildtools.embed.EmbedAssetsOptions = .{
.assets_dir = "embedded_assets/",
};
const embed_assets_mod = buildtools.embed.addEmbeddedAssetsModule(b, target, optimize, mod, embed_opts) catch |err| {
std.debug.panic("Failed to add embedded assets module: {s}\n", .{@errorName(err)});
};
const example_embed_opts: buildtools.embed.EmbedAssetsOptions = .{
.assets_dir = "example_embed_assets/",
.import_name = "example_embedded",
};
const example_embed_assets_mod = buildtools.embed.addEmbeddedAssetsModule(b, target, optimize, mod, example_embed_opts) catch |err| {
std.debug.panic("Failed to add example embedded assets module: {s}\n", .{@errorName(err)});
};
const mod_tests = b.addTest(.{
.root_module = mod,
});
const run_mod_tests = b.addRunArtifact(mod_tests);
// A top level step for running all tests. dependOn can be called multiple
// times and since the two run steps do not depend on one another, this will
// make the two of them run in parallel.
const test_step = b.step("test", "Run tests");
test_step.dependOn(&run_mod_tests.step);
_ = buildtools.examples.setupExamples(b, &.{
.{ .name = "raylib", .module = raylib_dep.module("raylib") },
.{ .name = "raygui", .module = raylib_dep.module("raygui") },
.{ .name = "zevy_raylib", .module = mod },
.{ .name = "zevy_ecs", .module = zevy_ecs_dep.module("zevy_ecs") },
.{ .name = embed_opts.import_name, .module = embed_assets_mod },
.{ .name = example_embed_opts.import_name, .module = example_embed_assets_mod },
}, target, optimize);
try buildtools.fetch.addFetchStep(b, b.path("build.zig.zon"));
}