Skip to content

Commit ea1c151

Browse files
committed
build: move version source of truth to version.txt
1 parent 2ff880e commit ea1c151

File tree

3 files changed

+53
-53
lines changed

3 files changed

+53
-53
lines changed

build.zig

Lines changed: 51 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,8 @@ const Dep = struct {
1111
};
1212

1313
const Options = struct {
14-
sys: Sys,
1514
target: std.Build.ResolvedTarget,
1615
optimize: std.builtin.OptimizeMode,
17-
18-
const Sys = struct {
19-
lua: ?[]const u8,
20-
21-
const release: Sys = .{ .lua = null };
22-
};
2316
};
2417

2518
fn extensionlessBasename(path: []const u8) []const u8 {
@@ -31,42 +24,10 @@ fn extensionlessBasename(path: []const u8) []const u8 {
3124
pub fn build(b: *std.Build) !void {
3225
const target = b.standardTargetOptions(.{});
3326
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-
}
6327

6428
const deps = createImports(b, .{
6529
.target = target,
6630
.optimize = optimize,
67-
.sys = .{
68-
.lua = lua_dir,
69-
},
7031
});
7132

7233
const lib = b.addSharedLibrary(.{
@@ -77,7 +38,6 @@ pub fn build(b: *std.Build) !void {
7738
.link_libc = true,
7839
});
7940
for (deps) |dep| dep.addImport(&lib.root_module);
80-
lib.root_module.addImport("assets", assets);
8141
const lib_install = b.addInstallFileWithDir(
8242
lib.getEmittedBin(),
8343
.lib,
@@ -94,7 +54,6 @@ pub fn build(b: *std.Build) !void {
9454
.optimize = optimize,
9555
});
9656
for (deps) |dep| dep.addImport(&exe.root_module);
97-
exe.root_module.addImport("assets", assets);
9857
b.installArtifact(exe);
9958

10059
const tests = b.addTest(.{
@@ -103,7 +62,6 @@ pub fn build(b: *std.Build) !void {
10362
.root_source_file = b.path("src/main.zig"),
10463
});
10564
for (deps) |dep| dep.addImport(&tests.root_module);
106-
tests.root_module.addImport("assets", assets);
10765
const tests_run = b.addRunArtifact(tests);
10866

10967
const tests_step = b.step("test", "test seamstress");
@@ -131,8 +89,6 @@ pub fn build(b: *std.Build) !void {
13189
dep.addImport(&root_comp_check.root_module);
13290
dep.addImport(&comp_check.root_module);
13391
}
134-
root_comp_check.root_module.addImport("assets", assets);
135-
comp_check.root_module.addImport("assets", assets);
13692
const check = b.step("check", "check for compile errors");
13793
check.dependOn(&comp_check.step);
13894
check.dependOn(&root_comp_check.step);
@@ -156,12 +112,10 @@ pub fn build(b: *std.Build) !void {
156112
.link_libc = true,
157113
});
158114
const target_deps = createImports(b, .{
159-
.sys = Options.Sys.release,
160115
.target = t,
161116
.optimize = .ReleaseFast,
162117
});
163118
for (target_deps) |dep| dep.addImport(&release_exe.root_module);
164-
release_exe.root_module.addImport("assets", assets);
165119

166120
const target_output = b.addInstallArtifact(release_exe, .{
167121
.dest_dir = .{ .override = .{
@@ -179,6 +133,56 @@ fn createImports(b: *std.Build, options: Options) []const Dep {
179133
var list: std.ArrayListUnmanaged(Dep) = .{};
180134
list.ensureTotalCapacity(b.allocator, 5) catch @panic("OOM");
181135

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+
182186
const ziglua = b.dependency("ziglua", .{
183187
.target = options.target,
184188
.optimize = options.optimize,
@@ -196,6 +200,7 @@ fn createImports(b: *std.Build, options: Options) []const Dep {
196200
list.appendAssumeCapacity(.{ .module = xev.module("xev"), .name = "xev" });
197201
list.appendAssumeCapacity(.{ .module = zosc.module("zosc"), .name = "zosc" });
198202
list.appendAssumeCapacity(.{ .module = @"known-folders".module("known-folders"), .name = "known-folders" });
203+
list.appendAssumeCapacity(.{ .module = assets, .name = "assets" });
199204

200205
return list.items;
201206
}

src/seamstress.zig

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -313,13 +313,7 @@ pub fn panicCleanup(l: *Lua) void {
313313
};
314314
}
315315

316-
pub const version: std.SemanticVersion = .{
317-
.major = 2,
318-
.minor = 0,
319-
.patch = 0,
320-
.pre = "prealpha",
321-
.build = "241129",
322-
};
316+
pub const version = @import("assets").version;
323317

324318
const xev = @import("xev");
325319
const ziglua = @import("ziglua");

version.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2.0.0-alpha+build.250103

0 commit comments

Comments
 (0)