| ... | ... | @@ -811,6 +811,11 @@ pub const Target = union(enum) { |
| 811 | 811 | } |
| 812 | 812 | }; |
| 813 | 813 | |
| 814 | const Pkg = struct { |
| 815 | name: []const u8, |
| 816 | path: []const u8, |
| 817 | }; |
| 818 | |
| 814 | 819 | pub const LibExeObjStep = struct { |
| 815 | 820 | step: Step, |
| 816 | 821 | builder: *Builder, |
| ... | ... | @@ -853,11 +858,6 @@ pub const LibExeObjStep = struct { |
| 853 | 858 | source_files: ArrayList([]const u8), |
| 854 | 859 | object_src: []const u8, |
| 855 | 860 | |
| 856 | | const Pkg = struct { |
| 857 | | name: []const u8, |
| 858 | | path: []const u8, |
| 859 | | }; |
| 860 | | |
| 861 | 861 | const Kind = enum { |
| 862 | 862 | Exe, |
| 863 | 863 | Lib, |
| ... | ... | @@ -1667,6 +1667,7 @@ pub const TestStep = struct { |
| 1667 | 1667 | exec_cmd_args: ?[]const ?[]const u8, |
| 1668 | 1668 | include_dirs: ArrayList([]const u8), |
| 1669 | 1669 | lib_paths: ArrayList([]const u8), |
| 1670 | packages: ArrayList(Pkg), |
| 1670 | 1671 | object_files: ArrayList([]const u8), |
| 1671 | 1672 | no_rosegment: bool, |
| 1672 | 1673 | output_path: ?[]const u8, |
| ... | ... | @@ -1687,6 +1688,7 @@ pub const TestStep = struct { |
| 1687 | 1688 | .exec_cmd_args = null, |
| 1688 | 1689 | .include_dirs = ArrayList([]const u8).init(builder.allocator), |
| 1689 | 1690 | .lib_paths = ArrayList([]const u8).init(builder.allocator), |
| 1691 | .packages = ArrayList(Pkg).init(builder.allocator), |
| 1690 | 1692 | .object_files = ArrayList([]const u8).init(builder.allocator), |
| 1691 | 1693 | .no_rosegment = false, |
| 1692 | 1694 | .output_path = null, |
| ... | ... | @@ -1702,6 +1704,13 @@ pub const TestStep = struct { |
| 1702 | 1704 | self.lib_paths.append(path) catch unreachable; |
| 1703 | 1705 | } |
| 1704 | 1706 | |
| 1707 | pub fn addPackagePath(self: *TestStep, name: []const u8, pkg_index_path: []const u8) void { |
| 1708 | self.packages.append(Pkg{ |
| 1709 | .name = name, |
| 1710 | .path = pkg_index_path, |
| 1711 | }) catch unreachable; |
| 1712 | } |
| 1713 | |
| 1705 | 1714 | pub fn setVerbose(self: *TestStep, value: bool) void { |
| 1706 | 1715 | self.verbose = value; |
| 1707 | 1716 | } |
| ... | ... | @@ -1878,6 +1887,13 @@ pub const TestStep = struct { |
| 1878 | 1887 | try zig_args.append(lib_path); |
| 1879 | 1888 | } |
| 1880 | 1889 | |
| 1890 | for (self.packages.toSliceConst()) |pkg| { |
| 1891 | zig_args.append("--pkg-begin") catch unreachable; |
| 1892 | zig_args.append(pkg.name) catch unreachable; |
| 1893 | zig_args.append(builder.pathFromRoot(pkg.path)) catch unreachable; |
| 1894 | zig_args.append("--pkg-end") catch unreachable; |
| 1895 | } |
| 1896 | |
| 1881 | 1897 | if (self.no_rosegment) { |
| 1882 | 1898 | try zig_args.append("--no-rosegment"); |
| 1883 | 1899 | } |