Used to build the -M flags to pass to build-exe.
pub const CliModule = struct
pub const CliModule = struct {
name: []const u8,
root_path: []const u8,
deps: Deps = .empty,
const Deps = std.array_hash_map.String(*CliModule);
fn lower(cm: *const CliModule, arena: Allocator, gpa: Allocator, argv: *std.ArrayList([]const u8)) !void {
try argv.ensureUnusedCapacity(gpa, 2 * cm.deps.count() + 1);
for (cm.deps.keys(), cm.deps.values()) |name, dep| {
argv.appendAssumeCapacity("--dep");
if (mem.eql(u8, name, dep.name)) {
argv.appendAssumeCapacity(dep.name);
} else {
argv.appendAssumeCapacity(try arena.print("{s}={s}", .{ name, dep.name }));
}
}
argv.appendAssumeCapacity(try arena.print("-M{s}={s}", .{ cm.name, cm.root_path }));
}
}