diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-05-16 14:24:51 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-16 14:24:51 -0400 |
| commit | f2ceb023f47b827fb9d689d4d46310b752148fa2 (patch) | |
| tree | afca912a35b1fb891b051349b5edc7d8784faf8f /lib/std | |
| parent | eda03354dc865fc18b8bc5862eb837fd8a6e979c (diff) | |
| parent | 9d79f3984474deb5db73c3edd555b8646ad135b1 (diff) | |
| download | zig-f2ceb023f47b827fb9d689d4d46310b752148fa2.tar.gz zig-f2ceb023f47b827fb9d689d4d46310b752148fa2.zip | |
Merge pull request #5217 from wozeparrot/master
build.zig recursive dep support
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/build.zig | 32 |
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| { |
