From b17751b8a8915559a158f3cd67a9dd7e82799997 Mon Sep 17 00:00:00 2001 From: walon Date: Thu, 4 May 2023 16:23:07 +0800 Subject: [PATCH] =?UTF-8?q?[new]=20=E6=96=B0=E5=A2=9E=20MsvcStdextWorkarou?= =?UTF-8?q?nd.cs=20=E8=A7=A3=E5=86=B32020=20vs=E4=B8=8Bstdext=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BuildProcessors/MsvcStdextWorkaround.cs | 28 +++++++++++++++++++ .../MsvcStdextWorkaround.cs.meta | 11 ++++++++ 2 files changed, 39 insertions(+) create mode 100644 Editor/BuildProcessors/MsvcStdextWorkaround.cs create mode 100644 Editor/BuildProcessors/MsvcStdextWorkaround.cs.meta diff --git a/Editor/BuildProcessors/MsvcStdextWorkaround.cs b/Editor/BuildProcessors/MsvcStdextWorkaround.cs new file mode 100644 index 0000000..6bc6041 --- /dev/null +++ b/Editor/BuildProcessors/MsvcStdextWorkaround.cs @@ -0,0 +1,28 @@ +#if UNITY_EDITOR +using System; +using UnityEditor.Build; +using UnityEditor.Build.Reporting; + +public class MsvcStdextWorkaround : IPreprocessBuildWithReport +{ + const string kWorkaroundFlag = "/D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS"; + + public int callbackOrder => 0; + + public void OnPreprocessBuild(BuildReport report) + { + var clEnv = Environment.GetEnvironmentVariable("_CL_"); + + if (string.IsNullOrEmpty(clEnv)) + { + Environment.SetEnvironmentVariable("_CL_", kWorkaroundFlag); + } + else if (!clEnv.Contains(kWorkaroundFlag)) + { + clEnv += " " + kWorkaroundFlag; + Environment.SetEnvironmentVariable("_CL_", clEnv); + } + } +} + +#endif // UNITY_EDITOR diff --git a/Editor/BuildProcessors/MsvcStdextWorkaround.cs.meta b/Editor/BuildProcessors/MsvcStdextWorkaround.cs.meta new file mode 100644 index 0000000..ef28c51 --- /dev/null +++ b/Editor/BuildProcessors/MsvcStdextWorkaround.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8bff6cadf0b8db54b87ba51b24d080f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: