diff options
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/target.zig | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/std/target.zig b/lib/std/target.zig index 1b8e7c1519..65e9f75457 100644 --- a/lib/std/target.zig +++ b/lib/std/target.zig @@ -1483,6 +1483,27 @@ pub const Target = struct { => return result, } } + + /// Return whether or not the given host target is capable of executing natively executables + /// of the other target. + pub fn canExecBinariesOf(host_target: std.Target, binary_target: std.Target) bool { + if (host_target.os.tag != binary_target.os.tag) + return false; + + if (host_target.cpu.arch == binary_target.cpu.arch) + return true; + + if (host_target.cpu.arch == .x86_64 and binary_target.cpu.arch == .i386) + return true; + + if (host_target.cpu.arch == .aarch64 and binary_target.cpu.arch == .arm) + return true; + + if (host_target.cpu.arch == .aarch64_be and binary_target.cpu.arch == .armeb) + return true; + + return false; + } }; test "" { |
