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;...@@ -1075,9 +1075,10 @@ pub const CrossTarget = std.Target.Cross;
1075/// Deprecated. Use `std.Target`.1075/// Deprecated. Use `std.Target`.
1076pub const Target = std.Target;1076pub const Target = std.Target;
10771077
1078const Pkg = struct {1078pub const Pkg = struct {
1079 name: []const u8,1079 name: []const u8,
1080 path: []const u8,1080 path: []const u8,
1081 dependencies: ?[]Pkg = null,
1081};1082};
10821083
1083const CSourceFile = struct {1084const CSourceFile = struct {
...@@ -1742,6 +1743,10 @@ pub const LibExeObjStep = struct {...@@ -1742,6 +1743,10 @@ pub const LibExeObjStep = struct {
1742 self.framework_dirs.append(self.builder.dupe(dir_path)) catch unreachable;1743 self.framework_dirs.append(self.builder.dupe(dir_path)) catch unreachable;
1743 }1744 }
17441745
1746 pub fn addPackage(self: *LibExeObjStep, package: Pkg) void {
1747 self.packages.append(package) catch unreachable;
1748 }
1749
1745 pub fn addPackagePath(self: *LibExeObjStep, name: []const u8, pkg_index_path: []const u8) void {1750 pub fn addPackagePath(self: *LibExeObjStep, name: []const u8, pkg_index_path: []const u8) void {
1746 self.packages.append(Pkg{1751 self.packages.append(Pkg{
1747 .name = self.builder.dupe(name),1752 .name = self.builder.dupe(name),
...@@ -2091,10 +2096,20 @@ pub const LibExeObjStep = struct {...@@ -2091,10 +2096,20 @@ pub const LibExeObjStep = struct {
2091 },2096 },
2092 }2097 }
2093 for (self.packages.toSliceConst()) |pkg| {2098 for (self.packages.toSliceConst()) |pkg| {
2094 zig_args.append("--pkg-begin") catch unreachable;2099 try zig_args.append("--pkg-begin");
2095 zig_args.append(pkg.name) catch unreachable;2100 try zig_args.append(pkg.name);
2096 zig_args.append(builder.pathFromRoot(pkg.path)) catch unreachable;2101 try zig_args.append(builder.pathFromRoot(pkg.path));
2097 zig_args.append("--pkg-end") catch unreachable;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");
2098 }2113 }
20992114
2100 for (self.include_dirs.toSliceConst()) |include_dir| {2115 for (self.include_dirs.toSliceConst()) |include_dir| {