From bfb40972a9b1e8eb42b8fb5c2fb967c7cd50930d Mon Sep 17 00:00:00 2001 From: wozeparrot Date: Wed, 29 Apr 2020 12:54:06 -0400 Subject: build.zig recursive dep support --- lib/std/build.zig | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'lib') diff --git a/lib/std/build.zig b/lib/std/build.zig index 85a65393ec..bd419882ef 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -1775,6 +1775,22 @@ pub const LibExeObjStep = struct { } } + fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) anyerror!void { + const builder = self.builder; + + try zig_args.append("--pkg-begin"); + try zig_args.append(pkg.name); + try zig_args.append(builder.pathFromRoot(pkg.path)); + + if (pkg.dependencies) |dependencies| { + for (dependencies) |sub_pkg| { + try self.makePackageCmd(sub_pkg, zig_args); + } + } + + try zig_args.append("--pkg-end"); + } + fn make(step: *Step) !void { const self = @fieldParentPtr(LibExeObjStep, "step", step); const builder = self.builder; @@ -2037,21 +2053,9 @@ pub const LibExeObjStep = struct { try zig_args.append("--test-cmd-bin"); }, } + for (self.packages.span()) |pkg| { - try zig_args.append("--pkg-begin"); - try zig_args.append(pkg.name); - try zig_args.append(builder.pathFromRoot(pkg.path)); - - if (pkg.dependencies) |dependencies| { - for (dependencies) |sub_pkg| { - try zig_args.append("--pkg-begin"); - try zig_args.append(sub_pkg.name); - try zig_args.append(builder.pathFromRoot(sub_pkg.path)); - try zig_args.append("--pkg-end"); - } - } - - try zig_args.append("--pkg-end"); + try self.makePackageCmd(pkg, &zig_args); } for (self.include_dirs.span()) |include_dir| { -- cgit v1.2.3 From 9d79f3984474deb5db73c3edd555b8646ad135b1 Mon Sep 17 00:00:00 2001 From: wozeparrot Date: Thu, 30 Apr 2020 12:14:17 -0400 Subject: switch anyerror to OutOfMemory --- lib/std/build.zig | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/std/build.zig b/lib/std/build.zig index bd419882ef..dc4564ac14 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -1775,7 +1775,7 @@ pub const LibExeObjStep = struct { } } - fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) anyerror!void { + fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) error{OutOfMemory}!void { const builder = self.builder; try zig_args.append("--pkg-begin"); @@ -2053,7 +2053,7 @@ pub const LibExeObjStep = struct { try zig_args.append("--test-cmd-bin"); }, } - + for (self.packages.span()) |pkg| { try self.makePackageCmd(pkg, &zig_args); } -- cgit v1.2.3