authorgravatar for wozeparrot@gmail.comwozeparrot <wozeparrot@gmail.com> 2020-04-29 12:54:06-04:00
committergravatar for wozeparrot@gmail.comwozeparrot <wozeparrot@gmail.com> 2020-04-29 12:54:06-04:00
logbfb40972a9b1e8eb42b8fb5c2fb967c7cd50930d
tree607ebac20bafc2316052bf54c1e9fa75c3217144
parent15141d865abda09c09d8f6e3385f127527c5232e

build.zig recursive dep support


1 files changed, 18 insertions(+), 14 deletions(-)

lib/std/build.zig+18-14
......@@ -1775,6 +1775,22 @@ pub const LibExeObjStep = struct {
17751775 }
17761776 }
17771777
1778 fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) anyerror!void {
1779 const builder = self.builder;
1780
1781 try zig_args.append("--pkg-begin");
1782 try zig_args.append(pkg.name);
1783 try zig_args.append(builder.pathFromRoot(pkg.path));
1784
1785 if (pkg.dependencies) |dependencies| {
1786 for (dependencies) |sub_pkg| {
1787 try self.makePackageCmd(sub_pkg, zig_args);
1788 }
1789 }
1790
1791 try zig_args.append("--pkg-end");
1792 }
1793
17781794 fn make(step: *Step) !void {
17791795 const self = @fieldParentPtr(LibExeObjStep, "step", step);
17801796 const builder = self.builder;
......@@ -2037,21 +2053,9 @@ pub const LibExeObjStep = struct {
20372053 try zig_args.append("--test-cmd-bin");
20382054 },
20392055 }
2056
20402057 for (self.packages.span()) |pkg| {
2041 try zig_args.append("--pkg-begin");
2042 try zig_args.append(pkg.name);
2043 try zig_args.append(builder.pathFromRoot(pkg.path));
2044
2045 if (pkg.dependencies) |dependencies| {
2046 for (dependencies) |sub_pkg| {
2047 try zig_args.append("--pkg-begin");
2048 try zig_args.append(sub_pkg.name);
2049 try zig_args.append(builder.pathFromRoot(sub_pkg.path));
2050 try zig_args.append("--pkg-end");
2051 }
2052 }
2053
2054 try zig_args.append("--pkg-end");
2058 try self.makePackageCmd(pkg, &zig_args);
20552059 }
20562060
20572061 for (self.include_dirs.span()) |include_dir| {