Define the platform ID = 10, and simple mappings between platform ID & name.
Reviewed By: MaskRay, cishida
Differential Revision: https://reviews.llvm.org/D85594
PLATFORM_MACCATALYST = 6,
PLATFORM_IOSSIMULATOR = 7,
PLATFORM_TVOSSIMULATOR = 8,
- PLATFORM_WATCHOSSIMULATOR = 9
+ PLATFORM_WATCHOSSIMULATOR = 9,
+ PLATFORM_DRIVERKIT = 10,
};
// Values for tools enum in build_tool_version.
case MachO::PLATFORM_IOSSIMULATOR: return "iossimulator";
case MachO::PLATFORM_TVOSSIMULATOR: return "tvossimulator";
case MachO::PLATFORM_WATCHOSSIMULATOR: return "watchossimulator";
+ case MachO::PLATFORM_DRIVERKIT: return "driverkit";
default:
std::string ret;
raw_string_ostream ss(ret);
macCatalyst = MachO::PLATFORM_MACCATALYST,
iOSSimulator = MachO::PLATFORM_IOSSIMULATOR,
tvOSSimulator = MachO::PLATFORM_TVOSSIMULATOR,
- watchOSSimulator = MachO::PLATFORM_WATCHOSSIMULATOR
+ watchOSSimulator = MachO::PLATFORM_WATCHOSSIMULATOR,
+ driverKit = MachO::PLATFORM_DRIVERKIT,
};
using PlatformSet = SmallSet<PlatformKind, 3>;
} // end namespace MachO.
} // end namespace llvm.
-#endif // LLVM_TEXTAPI_MACHO_PLATFORM_H
\ No newline at end of file
+#endif // LLVM_TEXTAPI_MACHO_PLATFORM_H
case MachO::PLATFORM_IOSSIMULATOR: return "iossimulator";
case MachO::PLATFORM_TVOSSIMULATOR: return "tvossimulator";
case MachO::PLATFORM_WATCHOSSIMULATOR: return "watchossimulator";
+ case MachO::PLATFORM_DRIVERKIT: return "driverkit";
}
llvm_unreachable("Invalid Mach-O platform type");
}
case MachO::PLATFORM_IOSSIMULATOR: /* silence warning */ break;
case MachO::PLATFORM_TVOSSIMULATOR: /* silence warning */ break;
case MachO::PLATFORM_WATCHOSSIMULATOR: /* silence warning */ break;
+ case MachO::PLATFORM_DRIVERKIT: /* silence warning */ break;
}
llvm_unreachable("Invalid mach-o platform type");
}
case Triple::WatchOS:
return Target.isSimulatorEnvironment() ? PlatformKind::watchOSSimulator
: PlatformKind::watchOS;
- // TODO: add bridgeOS once in llvm::Triple
+ // TODO: add bridgeOS & driverKit once in llvm::Triple
}
llvm_unreachable("Unknown Target Triple");
}
return "tvOS Simulator";
case PlatformKind::watchOSSimulator:
return "watchOS Simulator";
+ case PlatformKind::driverKit:
+ return "driverKit";
}
llvm_unreachable("Unknown llvm.MachO.PlatformKind enum");
}
.Case("ios-simulator", PlatformKind::iOSSimulator)
.Case("tvos-simulator", PlatformKind::tvOSSimulator)
.Case("watchos-simulator", PlatformKind::watchOSSimulator)
+ .Case("driverkit", PlatformKind::driverKit)
.Default(PlatformKind::unknown);
if (Platform == PlatformKind::unknown) {
case PlatformKind::watchOSSimulator:
OS << "watchos-simulator";
break;
+ case PlatformKind::driverKit:
+ OS << "driverkit";
+ break;
}
}
case PlatformKind::macCatalyst:
OS << "iosmac";
break;
+ case PlatformKind::driverKit:
+ OS << "driverkit";
+ break;
}
}
stripWhitespace(Buffer.c_str()));
}
+TEST(TBDv4, Target_i386_driverkit) {
+ static const char TBDv4i386DriverKit[] = "--- !tapi-tbd\n"
+ "tbd-version: 4\n"
+ "targets: [ i386-driverkit ]\n"
+ "install-name: Test.dylib\n"
+ "...\n";
+
+ Expected<TBDFile> Result =
+ TextAPIReader::get(MemoryBufferRef(TBDv4i386DriverKit, "Test.tbd"));
+ EXPECT_TRUE(!!Result);
+ TBDFile File = std::move(Result.get());
+ EXPECT_EQ(FileType::TBD_V4, File->getFileType());
+ EXPECT_EQ(ArchitectureSet(AK_i386), File->getArchitectures());
+ EXPECT_EQ(File->getPlatforms().size(), 1U);
+ EXPECT_EQ(PlatformKind::driverKit, *File->getPlatforms().begin());
+
+ SmallString<4096> Buffer;
+ raw_svector_ostream OS(Buffer);
+ auto WriteResult = TextAPIWriter::writeToStream(OS, *File);
+ EXPECT_TRUE(!WriteResult);
+ EXPECT_EQ(stripWhitespace(TBDv4i386DriverKit),
+ stripWhitespace(Buffer.c_str()));
+}
+
TEST(TBDv4, Swift_1) {
static const char TBDv4SwiftVersion1[] = "--- !tapi-tbd\n"
"tbd-version: 4\n"