@@ -11,15 +11,8 @@ const Dep = struct {
11
11
};
12
12
13
13
const Options = struct {
14
- sys : Sys ,
15
14
target : std.Build.ResolvedTarget ,
16
15
optimize : std.builtin.OptimizeMode ,
17
-
18
- const Sys = struct {
19
- lua : ? []const u8 ,
20
-
21
- const release : Sys = .{ .lua = null };
22
- };
23
16
};
24
17
25
18
fn extensionlessBasename (path : []const u8 ) []const u8 {
@@ -31,42 +24,10 @@ fn extensionlessBasename(path: []const u8) []const u8 {
31
24
pub fn build (b : * std.Build ) ! void {
32
25
const target = b .standardTargetOptions (.{});
33
26
const optimize = b .standardOptimizeOption (.{});
34
- const lua_dir = b .option ([]const u8 , "lua-dir" , "directory containing the system Lua library" );
35
-
36
- const assets = b .createModule (.{
37
- .root_source_file = b .addWriteFile ("module.zig" ,
38
- \\pub const lua = @import("lua");
39
- \\pub const @"test" = @import("test");
40
- \\
41
- ).files .items [0 ].getPath (),
42
- });
43
- {
44
- const lua_files : []const []const u8 = &.{
45
- "lua/core/test.lua" ,
46
- "lua/core/event.lua" ,
47
- };
48
- const ef = e .addEmbedFiles (b );
49
- for (lua_files ) | file | ef .addFile (b .path (file ), extensionlessBasename (file ), null );
50
- assets .addImport ("lua" , ef .module );
51
- }
52
- {
53
- const lua_test_files : []const []const u8 = &.{
54
- "lua/test/monome_spec.lua" ,
55
- "lua/test/async_spec.lua" ,
56
- "lua/test/timer_spec.lua" ,
57
- "lua/test/osc_spec.lua" ,
58
- };
59
- const ef = e .addEmbedFiles (b );
60
- for (lua_test_files ) | file | ef .addFile (b .path (file ), extensionlessBasename (file ), null );
61
- assets .addImport ("test" , ef .module );
62
- }
63
27
64
28
const deps = createImports (b , .{
65
29
.target = target ,
66
30
.optimize = optimize ,
67
- .sys = .{
68
- .lua = lua_dir ,
69
- },
70
31
});
71
32
72
33
const lib = b .addSharedLibrary (.{
@@ -77,7 +38,6 @@ pub fn build(b: *std.Build) !void {
77
38
.link_libc = true ,
78
39
});
79
40
for (deps ) | dep | dep .addImport (& lib .root_module );
80
- lib .root_module .addImport ("assets" , assets );
81
41
const lib_install = b .addInstallFileWithDir (
82
42
lib .getEmittedBin (),
83
43
.lib ,
@@ -94,7 +54,6 @@ pub fn build(b: *std.Build) !void {
94
54
.optimize = optimize ,
95
55
});
96
56
for (deps ) | dep | dep .addImport (& exe .root_module );
97
- exe .root_module .addImport ("assets" , assets );
98
57
b .installArtifact (exe );
99
58
100
59
const tests = b .addTest (.{
@@ -103,7 +62,6 @@ pub fn build(b: *std.Build) !void {
103
62
.root_source_file = b .path ("src/main.zig" ),
104
63
});
105
64
for (deps ) | dep | dep .addImport (& tests .root_module );
106
- tests .root_module .addImport ("assets" , assets );
107
65
const tests_run = b .addRunArtifact (tests );
108
66
109
67
const tests_step = b .step ("test" , "test seamstress" );
@@ -131,8 +89,6 @@ pub fn build(b: *std.Build) !void {
131
89
dep .addImport (& root_comp_check .root_module );
132
90
dep .addImport (& comp_check .root_module );
133
91
}
134
- root_comp_check .root_module .addImport ("assets" , assets );
135
- comp_check .root_module .addImport ("assets" , assets );
136
92
const check = b .step ("check" , "check for compile errors" );
137
93
check .dependOn (& comp_check .step );
138
94
check .dependOn (& root_comp_check .step );
@@ -156,12 +112,10 @@ pub fn build(b: *std.Build) !void {
156
112
.link_libc = true ,
157
113
});
158
114
const target_deps = createImports (b , .{
159
- .sys = Options .Sys .release ,
160
115
.target = t ,
161
116
.optimize = .ReleaseFast ,
162
117
});
163
118
for (target_deps ) | dep | dep .addImport (& release_exe .root_module );
164
- release_exe .root_module .addImport ("assets" , assets );
165
119
166
120
const target_output = b .addInstallArtifact (release_exe , .{
167
121
.dest_dir = .{ .override = .{
@@ -179,6 +133,56 @@ fn createImports(b: *std.Build, options: Options) []const Dep {
179
133
var list : std .ArrayListUnmanaged (Dep ) = .{};
180
134
list .ensureTotalCapacity (b .allocator , 5 ) catch @panic ("OOM" );
181
135
136
+ const assets = b .createModule (.{
137
+ .root_source_file = b .addWriteFile ("module.zig" ,
138
+ \\pub const lua = @import("lua");
139
+ \\pub const @"test" = @import("test");
140
+ \\pub const version = @import("version").version;
141
+ \\
142
+ ).files .items [0 ].getPath (),
143
+ });
144
+ {
145
+ const lua_files : []const []const u8 = &.{
146
+ "lua/core/test.lua" ,
147
+ "lua/core/event.lua" ,
148
+ };
149
+ const ef = e .addEmbedFiles (b );
150
+ for (lua_files ) | file | ef .addFile (b .path (file ), extensionlessBasename (file ), null );
151
+ assets .addImport ("lua" , ef .module );
152
+ }
153
+ {
154
+ const lua_test_files : []const []const u8 = &.{
155
+ "lua/test/monome_spec.lua" ,
156
+ "lua/test/async_spec.lua" ,
157
+ "lua/test/timer_spec.lua" ,
158
+ "lua/test/osc_spec.lua" ,
159
+ };
160
+ const ef = e .addEmbedFiles (b );
161
+ for (lua_test_files ) | file | ef .addFile (b .path (file ), extensionlessBasename (file ), null );
162
+ assets .addImport ("test" , ef .module );
163
+ }
164
+ {
165
+ const ef = e .addEmbedFiles (b );
166
+ ef .addFile (b .path ("version.txt" ), "semver-str" , null );
167
+ const wf_module = b .addWriteFile ("version.zig" ,
168
+ \\const semver_str = str: {
169
+ \\ const str = @import("semver-str").@"semver-str";
170
+ \\ if (std.mem.indexOfAny(u8, &str, "\r\n \t")) |idx| break :str str[0..idx];
171
+ \\ break :str &str;
172
+ \\};
173
+ \\const std = @import("std");
174
+ \\
175
+ \\pub const version = std.SemanticVersion.parse(semver_str) catch |err| {
176
+ \\ @compileLog("string: ", semver_str);
177
+ \\ @compileLog("error: ", err);
178
+ \\ @compileError("semantic version string failed to parse!");
179
+ \\};
180
+ ).files .items [0 ].getPath ();
181
+ const version = b .createModule (.{ .root_source_file = wf_module });
182
+ version .addImport ("semver-str" , ef .module );
183
+ assets .addImport ("version" , version );
184
+ }
185
+
182
186
const ziglua = b .dependency ("ziglua" , .{
183
187
.target = options .target ,
184
188
.optimize = options .optimize ,
@@ -196,6 +200,7 @@ fn createImports(b: *std.Build, options: Options) []const Dep {
196
200
list .appendAssumeCapacity (.{ .module = xev .module ("xev" ), .name = "xev" });
197
201
list .appendAssumeCapacity (.{ .module = zosc .module ("zosc" ), .name = "zosc" });
198
202
list .appendAssumeCapacity (.{ .module = @"known-folders" .module ("known-folders" ), .name = "known-folders" });
203
+ list .appendAssumeCapacity (.{ .module = assets , .name = "assets" });
199
204
200
205
return list .items ;
201
206
}
0 commit comments