From a4fdb9742421f105cbacad5441e0a723af2a251f Mon Sep 17 00:00:00 2001 From: PopSlime Date: Wed, 16 Nov 2022 17:45:52 +0800 Subject: [PATCH] Fix IL2CPP incompatibility. --- Assets/MsvcStdextWorkaround.cs | 24 ++++++++++++++++++++++++ Assets/MsvcStdextWorkaround.cs.meta | 11 +++++++++++ 2 files changed, 35 insertions(+) create mode 100644 Assets/MsvcStdextWorkaround.cs create mode 100644 Assets/MsvcStdextWorkaround.cs.meta diff --git a/Assets/MsvcStdextWorkaround.cs b/Assets/MsvcStdextWorkaround.cs new file mode 100644 index 0000000..5bfb57c --- /dev/null +++ b/Assets/MsvcStdextWorkaround.cs @@ -0,0 +1,24 @@ +#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 \ No newline at end of file diff --git a/Assets/MsvcStdextWorkaround.cs.meta b/Assets/MsvcStdextWorkaround.cs.meta new file mode 100644 index 0000000..0f67275 --- /dev/null +++ b/Assets/MsvcStdextWorkaround.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ed0687e714ce1042921c0057f42039f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: