| ... | ... | @@ -5056,9 +5056,17 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 |
| 5056 | 5056 | } |
| 5057 | 5057 | }.fmtRcEscape; |
| 5058 | 5058 | |
| 5059 | | // 1 is CREATEPROCESS_MANIFEST_RESOURCE_ID which is the default ID used for RT_MANIFEST resources |
| 5059 | // https://learn.microsoft.com/en-us/windows/win32/sbscs/using-side-by-side-assemblies-as-a-resource |
| 5060 | // WinUser.h defines: |
| 5061 | // CREATEPROCESS_MANIFEST_RESOURCE_ID to 1, which is the default |
| 5062 | // ISOLATIONAWARE_MANIFEST_RESOURCE_ID to 2, which must be used for .dlls |
| 5063 | const resource_id: u32 = if (comp.config.output_mode == .Lib and comp.config.link_mode == .dynamic) 2 else 1; |
| 5064 | |
| 5060 | 5065 | // 24 is RT_MANIFEST |
| 5061 | | const input = try std.fmt.allocPrint(arena, "1 24 \"{s}\"", .{fmtRcEscape(src_path)}); |
| 5066 | const resource_type = 24; |
| 5067 | |
| 5068 | const input = try std.fmt.allocPrint(arena, "{} {} \"{s}\"", .{ resource_id, resource_type, fmtRcEscape(src_path) }); |
| 5069 | |
| 5062 | 5070 | try o_dir.writeFile(.{ .sub_path = rc_basename, .data = input }); |
| 5063 | 5071 | |
| 5064 | 5072 | var argv = std.ArrayList([]const u8).init(comp.gpa); |