diff --git a/README.md b/README.md index 1653c7a1c27a5b5b067162c865e88c6ea75bc146..8beceaf6c4f61f604916be33fe25f98db563dd6a 100644 --- a/README.md +++ b/README.md @@ -67,9 +67,7 @@ pub fn build(b: *Builder) void { const exe = b.addExecutable("zigmod", "src/main.zig"); exe.setTarget(target); exe.setBuildMode(mode); -+ for (deps.packages) |pkg| { -+ exe.addPackage(pkg); -+ } ++ deps.addAllTo(exe); for (deps.system_libs) |lib| { exe.linkSystemLibrary(lib); } diff --git a/src/cmd_fetch.zig b/src/cmd_fetch.zig index f7aeafe42f45b10a906279df0ded349c59d8ebf0..3dc49259de7379d0ef0557723b2f93abc538b941 100644 --- a/src/cmd_fetch.zig +++ b/src/cmd_fetch.zig @@ -20,11 +20,19 @@ pub fn execute(args: [][]u8) !void { const w = f.writer(); try w.print("const std = @import(\"std\");\n", .{}); - try w.print("const Pkg = std.build.Pkg;\n", .{}); + try w.print("const build = std.build;\n", .{}); try w.print("\n", .{}); try w.print("const home = \"{}\";\n", .{home}); try w.print("const cache = home ++ \"/.cache/zigmod/deps\";\n", .{}); try w.print("\n", .{}); + try w.print("{}\n", .{ + \\pub fn addAllTo(exe: build.LibExeObjStep) void { + \\ for (packages) |pkg| { + \\ exe.addPackage(pkg); + \\ } + \\} + }); + try w.print("\n", .{}); try w.print("pub const packages = ", .{}); try print_deps(w, dir, try u.ModFile.init(gpa, "./zig.mod"), 0); try w.print(";\n", .{}); @@ -68,7 +76,7 @@ fn print_deps(w: std.fs.File.Writer, dir: []const u8, m: u.ModFile, tabs: i32) a try w.print("null", .{}); return; } - try u.print_all(w, .{"&[_]Pkg{"}, true); + try u.print_all(w, .{"&[_]build.Pkg{"}, true); const t = " "; const r = try u.repeat(t, tabs); for (m.deps) |d| { @@ -77,7 +85,7 @@ fn print_deps(w: std.fs.File.Writer, dir: []const u8, m: u.ModFile, tabs: i32) a const np = try u.concat(&[_][]const u8{p, "/zig.mod"}); const n = try u.ModFile.init(gpa, np); - try w.print("{}\n", .{try u.concat(&[_][]const u8{r,t,"Pkg{"})}); + try w.print("{}\n", .{try u.concat(&[_][]const u8{r,t,"build.Pkg{"})}); try w.print("{}\n", .{try u.concat(&[_][]const u8{r,t,t,".name = \"",n.name,"\","})}); try w.print("{}\n", .{try u.concat(&[_][]const u8{r,t,t,".path = cache ++ \"/",dcpath,"/",n.main,"\","})}); try w.print("{}", .{try u.concat(&[_][]const u8{r,t,t,".dependencies = "})});