From aea02409bb9a60f838e09f422ea04ec36c58c04a Mon Sep 17 00:00:00 2001 From: tony <57042389+tonydnewell@users.noreply.github.com> Date: Mon, 16 Jan 2023 10:10:46 +0000 Subject: [PATCH] Use x86 protoc binaries on arm64 Windows (#32017) --- src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs | 5 +++++ src/csharp/Grpc.Tools/ProtoToolsPlatform.cs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs b/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs index e98f6e93fa3..51b65c5bee8 100644 --- a/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs +++ b/src/csharp/Grpc.Tools.Tests/ProtoToolsPlatformTaskTest.cs @@ -79,6 +79,11 @@ namespace Grpc.Tools.Tests { Assert.AreEqual("x64", _task.Cpu); } + // On windows arm64, x86 is used until a native protoc is shipped + else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) + { + Assert.AreEqual("x86", _task.Cpu); + } else { Assert.AreEqual("arm64", _task.Cpu); diff --git a/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs b/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs index 2bccb0c3ba9..0bb57317b45 100644 --- a/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs +++ b/src/csharp/Grpc.Tools/ProtoToolsPlatform.cs @@ -65,6 +65,11 @@ namespace Grpc.Tools { Cpu = "x64"; } + // Use x86 on Windows arm64 until a native protoc is shipped + else if (Os == "windows" && Cpu == "arm64") + { + Cpu = "x86"; + } return true; }