aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-05-16 14:24:51 -0400
committerGitHub <noreply@github.com>2020-05-16 14:24:51 -0400
commitf2ceb023f47b827fb9d689d4d46310b752148fa2 (patch)
treeafca912a35b1fb891b051349b5edc7d8784faf8f /lib
parenteda03354dc865fc18b8bc5862eb837fd8a6e979c (diff)
parent9d79f3984474deb5db73c3edd555b8646ad135b1 (diff)
downloadzig-f2ceb023f47b827fb9d689d4d46310b752148fa2.tar.gz
zig-f2ceb023f47b827fb9d689d4d46310b752148fa2.zip
Merge pull request #5217 from wozeparrot/master
build.zig recursive dep support
Diffstat (limited to 'lib')
-rw-r--r--lib/std/build.zig32
1 files changed, 18 insertions, 14 deletions
diff --git a/lib/std/build.zig b/lib/std/build.zig
index a2da6315fe..08b014dbdd 100644
--- a/lib/std/build.zig
+++ b/lib/std/build.zig
@@ -1810,6 +1810,22 @@ pub const LibExeObjStep = struct {
}
}
+ fn makePackageCmd(self: *LibExeObjStep, pkg: Pkg, zig_args: *ArrayList([]const u8)) error{OutOfMemory}!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;
@@ -2076,21 +2092,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");
+ for (self.packages.span()) |pkg| {
+ try self.makePackageCmd(pkg, &zig_args);
}
for (self.include_dirs.span()) |include_dir| {