From f5d1f57593c98fe5f3ebdc62ab176cb96d3d9da1 Mon Sep 17 00:00:00 2001 From: Alex Lorenz Date: Tue, 2 Jul 2019 21:37:00 +0000 Subject: [PATCH] [triple] add 'macCatalyst' environment type Mac Catalyst is a new deployment platform in macOS Catalina. Differential Revision: https://reviews.llvm.org/D64097 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364971 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ADT/Triple.h | 9 +++++++-- lib/Support/Triple.cpp | 2 ++ unittests/ADT/TripleTest.cpp | 11 +++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h index 3da2659c6cd..78fc4d7b624 100644 --- a/include/llvm/ADT/Triple.h +++ b/include/llvm/ADT/Triple.h @@ -214,8 +214,9 @@ public: Itanium, Cygnus, CoreCLR, - Simulator, // Simulator variants of other systems, e.g., Apple's iOS - LastEnvironmentType = Simulator + Simulator, // Simulator variants of other systems, e.g., Apple's iOS + MacCatalyst, + LastEnvironmentType = MacCatalyst }; enum ObjectFormatType { UnknownObjectFormat, @@ -485,6 +486,10 @@ public: return getEnvironment() == Triple::Simulator; } + bool isMacCatalystEnvironment() const { + return getEnvironment() == Triple::MacCatalyst; + } + bool isOSNetBSD() const { return getOS() == Triple::NetBSD; } diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp index eacfe3b6bf0..54264903320 100644 --- a/lib/Support/Triple.cpp +++ b/lib/Support/Triple.cpp @@ -239,6 +239,7 @@ StringRef Triple::getEnvironmentTypeName(EnvironmentType Kind) { case Cygnus: return "cygnus"; case CoreCLR: return "coreclr"; case Simulator: return "simulator"; + case MacCatalyst: return "maccatalyst"; } llvm_unreachable("Invalid EnvironmentType!"); @@ -541,6 +542,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { .StartsWith("cygnus", Triple::Cygnus) .StartsWith("coreclr", Triple::CoreCLR) .StartsWith("simulator", Triple::Simulator) + .StartsWith("maccatalyst", Triple::MacCatalyst) .Default(Triple::UnknownEnvironment); } diff --git a/unittests/ADT/TripleTest.cpp b/unittests/ADT/TripleTest.cpp index b0f13d84af4..5b00a011ab3 100644 --- a/unittests/ADT/TripleTest.cpp +++ b/unittests/ADT/TripleTest.cpp @@ -1237,6 +1237,17 @@ TEST(TripleTest, getOSVersion) { EXPECT_EQ((unsigned)3, Minor); EXPECT_EQ((unsigned)0, Micro); EXPECT_TRUE(T.isSimulatorEnvironment()); + EXPECT_FALSE(T.isMacCatalystEnvironment()); + + T = Triple("x86_64-apple-ios13.0-maccatalyst"); + EXPECT_TRUE(T.isiOS()); + T.getiOSVersion(Major, Minor, Micro); + EXPECT_EQ((unsigned)13, Major); + EXPECT_EQ((unsigned)0, Minor); + EXPECT_EQ((unsigned)0, Micro); + EXPECT_TRUE(T.getEnvironment() == Triple::MacCatalyst); + EXPECT_TRUE(T.isMacCatalystEnvironment()); + EXPECT_FALSE(T.isSimulatorEnvironment()); } TEST(TripleTest, FileFormat) { -- 2.40.0