| ... | @@ -811,10 +811,14 @@ fn addCxxKnownPath( | ... | @@ -811,10 +811,14 @@ fn addCxxKnownPath( |
| 811 | if (!std.process.can_spawn) | 811 | if (!std.process.can_spawn) |
| 812 | return error.RequiredLibraryNotFound; | 812 | return error.RequiredLibraryNotFound; |
| 813 | | 813 | |
| 814 | const path_padded = if (ctx.cxx_compiler_arg1.len > 0) | 814 | const path_padded = run: { |
| 815 | b.run(&.{ ctx.cxx_compiler, ctx.cxx_compiler_arg1, b.fmt("-print-file-name={s}", .{objname}) }) | 815 | var args = std.ArrayList([]const u8).init(b.allocator); |
| 816 | else | 816 | try args.append(ctx.cxx_compiler); |
| 817 | b.run(&.{ ctx.cxx_compiler, b.fmt("-print-file-name={s}", .{objname}) }); | 817 | var it = std.mem.tokenizeAny(u8, ctx.cxx_compiler_arg1, &std.ascii.whitespace); |
| | 818 | while (it.next()) |arg| try args.append(arg); |
| | 819 | try args.append(b.fmt("-print-file-name={s}", .{objname})); |
| | 820 | break :run b.run(args.items); |
| | 821 | }; |
| 818 | var tokenizer = mem.tokenizeAny(u8, path_padded, "\r\n"); | 822 | var tokenizer = mem.tokenizeAny(u8, path_padded, "\r\n"); |
| 819 | const path_unpadded = tokenizer.next().?; | 823 | const path_unpadded = tokenizer.next().?; |
| 820 | if (mem.eql(u8, path_unpadded, objname)) { | 824 | if (mem.eql(u8, path_unpadded, objname)) { |