| ... | ... | @@ -2862,40 +2862,36 @@ pub const LibExeObjStep = struct { |
| 2862 | 2862 | }); |
| 2863 | 2863 | } |
| 2864 | 2864 | |
| 2865 | | if (self.kind == .@"test") { |
| 2866 | | _ = try builder.execFromStep(zig_args.items, step); |
| 2867 | | } else { |
| 2868 | | try zig_args.append("--enable-cache"); |
| 2865 | try zig_args.append("--enable-cache"); |
| 2869 | 2866 | |
| 2870 | | const output_dir_nl = try builder.execFromStep(zig_args.items, &self.step); |
| 2871 | | const build_output_dir = mem.trimRight(u8, output_dir_nl, "\r\n"); |
| 2867 | const output_dir_nl = try builder.execFromStep(zig_args.items, &self.step); |
| 2868 | const build_output_dir = mem.trimRight(u8, output_dir_nl, "\r\n"); |
| 2872 | 2869 | |
| 2873 | | if (self.output_dir) |output_dir| { |
| 2874 | | var src_dir = try std.fs.cwd().openDir(build_output_dir, .{ .iterate = true }); |
| 2875 | | defer src_dir.close(); |
| 2870 | if (self.output_dir) |output_dir| { |
| 2871 | var src_dir = try std.fs.cwd().openDir(build_output_dir, .{ .iterate = true }); |
| 2872 | defer src_dir.close(); |
| 2876 | 2873 | |
| 2877 | | // Create the output directory if it doesn't exist. |
| 2878 | | try std.fs.cwd().makePath(output_dir); |
| 2874 | // Create the output directory if it doesn't exist. |
| 2875 | try std.fs.cwd().makePath(output_dir); |
| 2879 | 2876 | |
| 2880 | | var dest_dir = try std.fs.cwd().openDir(output_dir, .{}); |
| 2881 | | defer dest_dir.close(); |
| 2877 | var dest_dir = try std.fs.cwd().openDir(output_dir, .{}); |
| 2878 | defer dest_dir.close(); |
| 2882 | 2879 | |
| 2883 | | var it = src_dir.iterate(); |
| 2884 | | while (try it.next()) |entry| { |
| 2885 | | // The compiler can put these files into the same directory, but we don't |
| 2886 | | // want to copy them over. |
| 2887 | | if (mem.eql(u8, entry.name, "stage1.id") or |
| 2888 | | mem.eql(u8, entry.name, "llvm-ar.id") or |
| 2889 | | mem.eql(u8, entry.name, "libs.txt") or |
| 2890 | | mem.eql(u8, entry.name, "builtin.zig") or |
| 2891 | | mem.eql(u8, entry.name, "zld.id") or |
| 2892 | | mem.eql(u8, entry.name, "lld.id")) continue; |
| 2880 | var it = src_dir.iterate(); |
| 2881 | while (try it.next()) |entry| { |
| 2882 | // The compiler can put these files into the same directory, but we don't |
| 2883 | // want to copy them over. |
| 2884 | if (mem.eql(u8, entry.name, "stage1.id") or |
| 2885 | mem.eql(u8, entry.name, "llvm-ar.id") or |
| 2886 | mem.eql(u8, entry.name, "libs.txt") or |
| 2887 | mem.eql(u8, entry.name, "builtin.zig") or |
| 2888 | mem.eql(u8, entry.name, "zld.id") or |
| 2889 | mem.eql(u8, entry.name, "lld.id")) continue; |
| 2893 | 2890 | |
| 2894 | | _ = try src_dir.updateFile(entry.name, dest_dir, entry.name, .{}); |
| 2895 | | } |
| 2896 | | } else { |
| 2897 | | self.output_dir = build_output_dir; |
| 2891 | _ = try src_dir.updateFile(entry.name, dest_dir, entry.name, .{}); |
| 2898 | 2892 | } |
| 2893 | } else { |
| 2894 | self.output_dir = build_output_dir; |
| 2899 | 2895 | } |
| 2900 | 2896 | |
| 2901 | 2897 | // This will ensure all output filenames will now have the output_dir available! |