From 9cf8f195174931fc0fc38d47c9af72f65b630568 Mon Sep 17 00:00:00 2001 From: walon Date: Sun, 3 Sep 2023 21:03:01 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E5=A4=8DUnity=202020=E7=9A=84?= =?UTF-8?q?il2cpp=E5=9C=A8=E4=B8=8D=E5=90=8C=E7=9B=AE=E5=BD=95=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E5=90=8C=E5=90=8DThreadPool=E6=96=87=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=81=B6=E5=8F=91=E7=94=9F=E6=88=90?= =?UTF-8?q?=E7=9A=84=E5=90=8C=E4=B8=80=E4=B8=AAlump=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=AD=E5=8C=85=E5=90=AB=E8=BF=99=E4=B8=A4=E4=B8=AA=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=97=B6=EF=BC=8C=E5=87=BA=E7=8E=B0=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=96=B9=E5=BC=8F=E4=B8=BA=E7=BB=99=E6=AF=8F=E4=B8=AA?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=94=9F=E6=88=90=E4=B8=80=E4=B8=AAlump?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...Lil2cppSourceCodeToXcodeproj2021OrOlder.cs | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2021OrOlder.cs b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2021OrOlder.cs index 477368b..0622298 100644 --- a/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2021OrOlder.cs +++ b/Editor/BuildProcessors/AddLil2cppSourceCodeToXcodeproj2021OrOlder.cs @@ -5,6 +5,7 @@ using System.IO; using System.Linq; using System.Text; using UnityEditor; +using System.Reflection; #if (UNITY_2020 || UNITY_2021) && UNITY_IOS using UnityEditor.Build; using UnityEditor.Callbacks; @@ -199,24 +200,20 @@ namespace HybridCLR.Editor private static List CreateLumps(string libil2cppDir, string outputDir) { BashUtil.RecreateDir(outputDir); - var cppFiles = Directory.GetFiles(libil2cppDir, "*.cpp", SearchOption.AllDirectories); - int maxCppFilePerLump = 50; + string il2cppConfigFile = $"{libil2cppDir}/il2cpp-config.h"; var lumpFiles = new List(); - for (int i = 0; i < (cppFiles.Length + maxCppFilePerLump - 1) / maxCppFilePerLump; i++) + int lumpFileIndex = 0; + foreach (var cppDir in Directory.GetDirectories(libil2cppDir, "*", SearchOption.AllDirectories).Concat(new string[] {libil2cppDir})) { - var lumpFile = new LumpFile($"{outputDir}/lump_{i}.cpp", il2cppConfigFile); - for (int j = 0; j < maxCppFilePerLump; j++) + var lumpFile = new LumpFile($"{outputDir}/lump_{Path.GetFileName(cppDir)}_{lumpFileIndex}.cpp", il2cppConfigFile); + foreach (var file in Directory.GetFiles(cppDir, "*.cpp", SearchOption.TopDirectoryOnly)) { - int index = i * maxCppFilePerLump + j; - if (index >= cppFiles.Length) - { - break; - } - lumpFile.cppFiles.Add(cppFiles[index]); + lumpFile.cppFiles.Add(file); } lumpFile.SaveFile(); lumpFiles.Add(lumpFile); + ++lumpFileIndex; } var mmFiles = Directory.GetFiles(libil2cppDir, "*.mm", SearchOption.AllDirectories);