Skip to content

Commit 468c6ac

Browse files
authored
build: glue builder and build.zig cleanup (#11)
Signed-off-by: Guillaume Ballet <[email protected]>
1 parent e6a8734 commit 468c6ac

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

Diff for: build.zig

+15-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ const Builder = std.Build;
33

44
const zkvmTarget = struct {
55
name: []const u8,
6-
set_pie: bool,
6+
set_pie: bool = false,
7+
build_glue: bool = false,
78
};
89

910
const zkvm_targets: []const zkvmTarget = &.{
@@ -142,12 +143,10 @@ fn build_zkvm_targets(b: *Builder) !void {
142143
zeam_state_transition.addImport("ssz", ssz);
143144

144145
for (zkvm_targets) |zkvm_target| {
145-
var module_root_path: [256]u8 = undefined;
146-
_ = try std.fmt.bufPrintZ(&module_root_path, "pkgs/state-transition-runtime/src/{s}/lib.zig", .{zkvm_target.name});
147146
const zkvm_module = b.addModule("zkvm", .{
148147
.optimize = optimize,
149148
.target = target,
150-
.root_source_file = b.path(&module_root_path),
149+
.root_source_file = b.path(b.fmt("pkgs/state-transition-runtime/src/{s}/lib.zig", .{zkvm_target.name})),
151150
});
152151

153152
// target has to be riscv5 runtime provable/verifiable on zkVMs
@@ -164,13 +163,21 @@ fn build_zkvm_targets(b: *Builder) !void {
164163
exe.root_module.addImport("@zeam/state-transition", zeam_state_transition);
165164
exe.root_module.addImport("zkvm", zkvm_module);
166165
exe.root_module.addImport("params", params);
167-
var start_s_path: [256]u8 = undefined;
168-
exe.addAssemblyFile(b.path(try std.fmt.bufPrint(&start_s_path, "pkgs/state-transition-runtime/src/{s}/start.s", .{zkvm_target.name})));
166+
exe.addAssemblyFile(b.path(b.fmt("pkgs/state-transition-runtime/src/{s}/start.s", .{zkvm_target.name})));
169167
if (zkvm_target.set_pie) {
170168
exe.pie = true;
171169
}
172-
var linker_script_path: [256]u8 = undefined;
173-
exe.setLinkerScript(b.path(try std.fmt.bufPrint(&linker_script_path, "pkgs/state-transition-runtime/src/{s}/{s}.ld", .{ zkvm_target.name, zkvm_target.name })));
170+
exe.setLinkerScript(b.path(b.fmt("pkgs/state-transition-runtime/src/{s}/{s}.ld", .{ zkvm_target.name, zkvm_target.name })));
174171
b.installArtifact(exe);
172+
173+
// build the library connecting to the zkvm
174+
if (zkvm_target.build_glue) {
175+
_ = b.addSystemCommand(&.{
176+
"cargo",
177+
"-C",
178+
b.fmt("pkgs/state-transition-runtime/src/{s}/host", .{zkvm_target.name}),
179+
"build",
180+
});
181+
}
175182
}
176183
}

0 commit comments

Comments
 (0)