aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Build/Step/CheckObject.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2023-08-18 11:56:14 +0200
committerJakub Konka <kubkon@jakubkonka.com>2023-08-18 11:56:14 +0200
commit1e899b8769546d9189f21fbb9a5c58c32657fb8a (patch)
tree484881f8e8f6f3457dc14adde89f1988de38361c /lib/std/Build/Step/CheckObject.zig
parent274400c57d97dc4ea8fff5a6f516feac93eca4e0 (diff)
downloadzig-1e899b8769546d9189f21fbb9a5c58c32657fb8a.tar.gz
zig-1e899b8769546d9189f21fbb9a5c58c32657fb8a.zip
check-object: dump contents of LC_BUILD_VERSION and LC_VERSION_MIN_* cmds
Diffstat (limited to 'lib/std/Build/Step/CheckObject.zig')
-rw-r--r--lib/std/Build/Step/CheckObject.zig54
1 files changed, 54 insertions, 0 deletions
diff --git a/lib/std/Build/Step/CheckObject.zig b/lib/std/Build/Step/CheckObject.zig
index f69427ab05..26d3e89552 100644
--- a/lib/std/Build/Step/CheckObject.zig
+++ b/lib/std/Build/Step/CheckObject.zig
@@ -766,6 +766,60 @@ const MachODumper = struct {
});
},
+ .BUILD_VERSION => {
+ const blc = lc.cast(macho.build_version_command).?;
+ try writer.writeByte('\n');
+ try writer.print(
+ \\platform {s}
+ \\minos {d}.{d}.{d}
+ \\sdk {d}.{d}.{d}
+ \\ntools {d}
+ , .{
+ @tagName(blc.platform),
+ blc.minos >> 16,
+ @as(u8, @truncate(blc.minos >> 8)),
+ @as(u8, @truncate(blc.minos)),
+ blc.sdk >> 16,
+ @as(u8, @truncate(blc.sdk >> 8)),
+ @as(u8, @truncate(blc.sdk)),
+ blc.ntools,
+ });
+ for (lc.getBuildVersionTools()) |tool| {
+ try writer.writeByte('\n');
+ switch (tool.tool) {
+ .CLANG, .SWIFT, .LD, .LLD, .ZIG => try writer.print("tool {s}\n", .{@tagName(tool.tool)}),
+ else => |x| try writer.print("tool {d}\n", .{@intFromEnum(x)}),
+ }
+ try writer.print(
+ \\version {d}.{d}.{d}
+ , .{
+ tool.version >> 16,
+ @as(u8, @truncate(tool.version >> 8)),
+ @as(u8, @truncate(tool.version)),
+ });
+ }
+ },
+
+ .VERSION_MIN_MACOSX,
+ .VERSION_MIN_IPHONEOS,
+ .VERSION_MIN_WATCHOS,
+ .VERSION_MIN_TVOS,
+ => {
+ const vlc = lc.cast(macho.version_min_command).?;
+ try writer.writeByte('\n');
+ try writer.print(
+ \\version {d}.{d}.{d}
+ \\sdk {d}.{d}.{d}
+ , .{
+ vlc.version >> 16,
+ @as(u8, @truncate(vlc.version >> 8)),
+ @as(u8, @truncate(vlc.version)),
+ vlc.sdk >> 16,
+ @as(u8, @truncate(vlc.sdk >> 8)),
+ @as(u8, @truncate(vlc.sdk)),
+ });
+ },
+
else => {},
}
}