authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-05-16 14:24:51-04:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2020-05-16 14:24:51-04:00
logf2ceb023f47b827fb9d689d4d46310b752148fa2
treeafca912a35b1fb891b051349b5edc7d8784faf8f
parenteda03354dc865fc18b8bc5862eb837fd8a6e979c
parent9d79f3984474deb5db73c3edd555b8646ad135b1
signature Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #5217 from wozeparrot/master

build.zig recursive dep support

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

lib/std/build.zig+18-14
......@@ -1810,6 +1810,22 @@ pub const LibExeObjStep = struct {
18101810 }
18111811 }
18121812
1813 fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) error{OutOfMemory}!void {
1814 const builder = self.builder;
1815
1816 try zig_args.append("--pkg-begin");
1817 try zig_args.append(pkg.name);
1818 try zig_args.append(builder.pathFromRoot(pkg.path));
1819
1820 if (pkg.dependencies) |dependencies| {
1821 for (dependencies) |sub_pkg| {
1822 try self.makePackageCmd(sub_pkg, zig_args);
1823 }
1824 }
1825
1826 try zig_args.append("--pkg-end");
1827 }
1828
18131829 fn make(step: *Step) !void {
18141830 const self = @fieldParentPtr(LibExeObjStep, "step", step);
18151831 const builder = self.builder;
......@@ -2076,21 +2092,9 @@ pub const LibExeObjStep = struct {
20762092 try zig_args.append("--test-cmd-bin");
20772093 },
20782094 }
2079 for (self.packages.span()) |pkg| {
2080 try zig_args.append("--pkg-begin");
2081 try zig_args.append(pkg.name);
2082 try zig_args.append(builder.pathFromRoot(pkg.path));
2083
2084 if (pkg.dependencies) |dependencies| {
2085 for (dependencies) |sub_pkg| {
2086 try zig_args.append("--pkg-begin");
2087 try zig_args.append(sub_pkg.name);
2088 try zig_args.append(builder.pathFromRoot(sub_pkg.path));
2089 try zig_args.append("--pkg-end");
2090 }
2091 }
20922095
2093 try zig_args.append("--pkg-end");
2096 for (self.packages.span()) |pkg| {
2097 try self.makePackageCmd(pkg, &zig_args);
20942098 }
20952099
20962100 for (self.include_dirs.span()) |include_dir| {