| ... | ... | @@ -735,7 +735,11 @@ fn addCxxKnownPath( |
| 735 | 735 | ) !void { |
| 736 | 736 | if (!std.process.can_spawn) |
| 737 | 737 | return error.RequiredLibraryNotFound; |
| 738 | | const path_padded = b.exec(&.{ ctx.cxx_compiler, b.fmt("-print-file-name={s}", .{objname}) }); |
| 738 | |
| 739 | const path_padded = if (ctx.cxx_compiler_arg1.len > 0) |
| 740 | b.exec(&.{ ctx.cxx_compiler, ctx.cxx_compiler_arg1, b.fmt("-print-file-name={s}", .{objname}) }) |
| 741 | else |
| 742 | b.exec(&.{ ctx.cxx_compiler, b.fmt("-print-file-name={s}", .{objname}) }); |
| 739 | 743 | var tokenizer = mem.tokenizeAny(u8, path_padded, "\r\n"); |
| 740 | 744 | const path_unpadded = tokenizer.next().?; |
| 741 | 745 | if (mem.eql(u8, path_unpadded, objname)) { |
| ... | ... | @@ -778,6 +782,7 @@ const CMakeConfig = struct { |
| 778 | 782 | cmake_static_library_prefix: []const u8, |
| 779 | 783 | cmake_static_library_suffix: []const u8, |
| 780 | 784 | cxx_compiler: []const u8, |
| 785 | cxx_compiler_arg1: []const u8, |
| 781 | 786 | lld_include_dir: []const u8, |
| 782 | 787 | lld_libraries: []const u8, |
| 783 | 788 | clang_libraries: []const u8, |
| ... | ... | @@ -844,6 +849,7 @@ fn parseConfigH(b: *std.Build, config_h_text: []const u8) ?CMakeConfig { |
| 844 | 849 | .cmake_static_library_prefix = undefined, |
| 845 | 850 | .cmake_static_library_suffix = undefined, |
| 846 | 851 | .cxx_compiler = undefined, |
| 852 | .cxx_compiler_arg1 = "", |
| 847 | 853 | .lld_include_dir = undefined, |
| 848 | 854 | .lld_libraries = undefined, |
| 849 | 855 | .clang_libraries = undefined, |
| ... | ... | @@ -875,6 +881,10 @@ fn parseConfigH(b: *std.Build, config_h_text: []const u8) ?CMakeConfig { |
| 875 | 881 | .prefix = "#define ZIG_CXX_COMPILER ", |
| 876 | 882 | .field = "cxx_compiler", |
| 877 | 883 | }, |
| 884 | .{ |
| 885 | .prefix = "#define ZIG_CXX_COMPILER_ARG1 ", |
| 886 | .field = "cxx_compiler_arg1", |
| 887 | }, |
| 878 | 888 | .{ |
| 879 | 889 | .prefix = "#define ZIG_LLD_INCLUDE_PATH ", |
| 880 | 890 | .field = "lld_include_dir", |
| ... | ... | @@ -917,7 +927,8 @@ fn parseConfigH(b: *std.Build, config_h_text: []const u8) ?CMakeConfig { |
| 917 | 927 | var it = mem.splitScalar(u8, line, '"'); |
| 918 | 928 | _ = it.first(); // skip the stuff before the quote |
| 919 | 929 | const quoted = it.next().?; // the stuff inside the quote |
| 920 | | @field(ctx, mapping.field) = toNativePathSep(b, quoted); |
| 930 | const trimmed = mem.trim(u8, quoted, " "); |
| 931 | @field(ctx, mapping.field) = toNativePathSep(b, trimmed); |
| 921 | 932 | } |
| 922 | 933 | } |
| 923 | 934 | if (mem.startsWith(u8, line, "#define ZIG_LLVM_LINK_MODE ")) { |