authorgravatar for frmdstryr@protonmail.comfrmdstryr <frmdstryr@protonmail.com> 2020-01-31 13:02:12-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2020-02-02 15:21:27-05:00
log32291ab70249c874e6941292de8611e619c838e5
treed31c96bbd686f91ebfc79869e2b2381aaed8aa5e
parent4f2652d504c796bbba6d7ccf6a699dc01055e3e7

Add support for dependent packages when using build.zig


1 files changed, 20 insertions(+), 5 deletions(-)

lib/std/build.zig+20-5
......@@ -1075,9 +1075,10 @@ pub const CrossTarget = std.Target.Cross;
10751075/// Deprecated. Use `std.Target`.
10761076pub const Target = std.Target;
10771077
1078const Pkg = struct {
1078pub const Pkg = struct {
10791079 name: []const u8,
10801080 path: []const u8,
1081 dependencies: ?[]Pkg = null,
10811082};
10821083
10831084const CSourceFile = struct {
......@@ -1742,6 +1743,10 @@ pub const LibExeObjStep = struct {
17421743 self.framework_dirs.append(self.builder.dupe(dir_path)) catch unreachable;
17431744 }
17441745
1746 pub fn addPackage(self: *LibExeObjStep, package: Pkg) void {
1747 self.packages.append(package) catch unreachable;
1748 }
1749
17451750 pub fn addPackagePath(self: *LibExeObjStep, name: []const u8, pkg_index_path: []const u8) void {
17461751 self.packages.append(Pkg{
17471752 .name = self.builder.dupe(name),
......@@ -2091,10 +2096,20 @@ pub const LibExeObjStep = struct {
20912096 },
20922097 }
20932098 for (self.packages.toSliceConst()) |pkg| {
2094 zig_args.append("--pkg-begin") catch unreachable;
2095 zig_args.append(pkg.name) catch unreachable;
2096 zig_args.append(builder.pathFromRoot(pkg.path)) catch unreachable;
2097 zig_args.append("--pkg-end") catch unreachable;
2099 try zig_args.append("--pkg-begin");
2100 try zig_args.append(pkg.name);
2101 try zig_args.append(builder.pathFromRoot(pkg.path));
2102
2103 if (pkg.dependencies) |dependencies| {
2104 for (dependencies) |sub_pkg| {
2105 try zig_args.append("--pkg-begin");
2106 try zig_args.append(sub_pkg.name);
2107 try zig_args.append(builder.pathFromRoot(sub_pkg.path));
2108 try zig_args.append("--pkg-end");
2109 }
2110 }
2111
2112 try zig_args.append("--pkg-end");
20982113 }
20992114
21002115 for (self.include_dirs.toSliceConst()) |include_dir| {