fix: fix compile error on hybridclr v9.0.0
parent
2b3ebc54a0
commit
f5023252f1
|
|
@ -18,33 +18,27 @@
|
|||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
using HybridCLR.Editor.Commands;
|
||||
using HybridCLR.Editor;
|
||||
using Obfuz.Settings;
|
||||
using HybridCLR;
|
||||
using HybridCLR.CodeGen.AOT;
|
||||
using HybridCLR.CodeGen.MethodBridge;
|
||||
using HybridCLR.Commands;
|
||||
using HybridCLR.Installer;
|
||||
using HybridCLR.Meta;
|
||||
using HybridCLR.Mod;
|
||||
using HybridCLR.Utils;
|
||||
using Obfuz;
|
||||
using Obfuz.Settings;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using System.Reflection;
|
||||
using System;
|
||||
using System.IO;
|
||||
using HybridCLR.Editor.Link;
|
||||
using HybridCLR.Editor.Meta;
|
||||
using UnityEditor.Build;
|
||||
using HybridCLR.Editor.Installer;
|
||||
using HybridCLR.Editor.MethodBridge;
|
||||
using System.Linq;
|
||||
using Analyzer = HybridCLR.Editor.MethodBridge.Analyzer;
|
||||
using HybridCLR.Editor.Settings;
|
||||
using Obfuz.Utils;
|
||||
using FileUtil = Obfuz.Utils.FileUtil;
|
||||
using IAssemblyResolver = HybridCLR.Editor.Meta.IAssemblyResolver;
|
||||
using CombinedAssemblyResolver = HybridCLR.Editor.Meta.CombinedAssemblyResolver;
|
||||
using MetaUtil = HybridCLR.Editor.Meta.MetaUtil;
|
||||
using AssemblyCache = HybridCLR.Editor.Meta.AssemblyCache;
|
||||
using HybridCLR.Editor.AOT;
|
||||
using Analyzer2 = HybridCLR.Editor.AOT.Analyzer;
|
||||
using System.Reflection;
|
||||
using UnityEditor;
|
||||
using UnityEditor.Build;
|
||||
using UnityEngine;
|
||||
using CombinedAssemblyResolver = HybridCLR.Mod.CombinedAssemblyResolver;
|
||||
using IAssemblyResolver = HybridCLR.Mod.IAssemblyResolver;
|
||||
|
||||
namespace Obfuz4HybridCLR
|
||||
{
|
||||
|
|
@ -67,7 +61,6 @@ namespace Obfuz4HybridCLR
|
|||
BuildTarget target = EditorUserBuildSettings.activeBuildTarget;
|
||||
CompileDllCommand.CompileDll(target);
|
||||
Il2CppDefGeneratorCommand.GenerateIl2CppDef();
|
||||
GeneratePolymorphicCodesWhenEnable();
|
||||
LinkGeneratorCommand.GenerateLinkXml(target);
|
||||
StripAOTDllCommand.GenerateStripedAOTDlls(target);
|
||||
|
||||
|
|
@ -87,23 +80,6 @@ namespace Obfuz4HybridCLR
|
|||
ObfuscateUtil.ObfuscateHotUpdateAssemblies(target, obfuscatedHotUpdateDllPath);
|
||||
}
|
||||
|
||||
[MenuItem("HybridCLR/ObfuzExtension/GeneratePolymorphicCodes")]
|
||||
public static void GeneratePolymorphicCodes()
|
||||
{
|
||||
ObfuscateUtil.GeneratePolymorphicCodes($"{SettingsUtil.LocalIl2CppDir}/libil2cpp");
|
||||
}
|
||||
|
||||
private static void GeneratePolymorphicCodesWhenEnable()
|
||||
{
|
||||
PolymorphicDllSettings settings = ObfuzSettings.Instance.polymorphicDllSettings;
|
||||
if (!settings.enable)
|
||||
{
|
||||
UnityEngine.Debug.LogWarning("Polymorphic code generation is disabled.");
|
||||
return;
|
||||
}
|
||||
GeneratePolymorphicCodes();
|
||||
}
|
||||
|
||||
public static IAssemblyResolver CreateObfuscatedHotUpdateAssemblyResolver(BuildTarget target, List<string> obfuscatedHotUpdateAssemblies, string obfuscatedHotUpdateDllPath)
|
||||
{
|
||||
return new FixedSetAssemblyResolver(obfuscatedHotUpdateDllPath, obfuscatedHotUpdateAssemblies);
|
||||
|
|
@ -130,7 +106,7 @@ namespace Obfuz4HybridCLR
|
|||
}
|
||||
AssemblyReferenceDeepCollector collector = new AssemblyReferenceDeepCollector(MetaUtil.CreateAOTAssemblyResolver(target), aotAssemblyNames);
|
||||
|
||||
var methodBridgeAnalyzer = new Analyzer(new Analyzer.Options
|
||||
var methodBridgeAnalyzer = new MethodBridgeAnalyzer(new MethodBridgeAnalyzer.Options
|
||||
{
|
||||
MaxIterationCount = Math.Min(20, SettingsUtil.HybridCLRSettings.maxMethodBridgeGenericIteration),
|
||||
Collector = collector,
|
||||
|
|
@ -146,19 +122,12 @@ namespace Obfuz4HybridCLR
|
|||
|
||||
var calliAnalyzer = new CalliAnalyzer(cache, hotUpdateDlls);
|
||||
calliAnalyzer.Run();
|
||||
var pinvokeAnalyzer = new PInvokeAnalyzer(cache, hotUpdateDlls);
|
||||
pinvokeAnalyzer.Run();
|
||||
var callPInvokeMethodSignatures = pinvokeAnalyzer.PInvokeMethodSignatures;
|
||||
|
||||
string templateFile = $"{SettingsUtil.TemplatePathInPackage}/MethodBridge.cpp.tpl";
|
||||
string outputFile = $"{SettingsUtil.GeneratedCppDir}/MethodBridge.cpp";
|
||||
|
||||
var callNativeMethodSignatures = calliAnalyzer.CalliMethodSignatures.Concat(pinvokeAnalyzer.PInvokeMethodSignatures).ToList();
|
||||
var callNativeMethodSignatures = calliAnalyzer.CalliMethodSignatures.ToList();
|
||||
|
||||
var generateMethodBridgeMethod = typeof(MethodBridgeGeneratorCommand).GetMethod("GenerateMethodBridgeCppFile", BindingFlags.NonPublic | BindingFlags.Static);
|
||||
generateMethodBridgeMethod.Invoke(null, new object[] { methodBridgeAnalyzer.GenericMethods, reversePInvokeAnalyzer.ReversePInvokeMethods, callNativeMethodSignatures, templateFile, outputFile });
|
||||
|
||||
MethodBridgeGeneratorCommand.CleanIl2CppBuildCache();
|
||||
MethodBridgeGeneratorCommand.GenerateMethodBridgeCppFile(methodBridgeAnalyzer.GenericMethods, reversePInvokeAnalyzer.ReversePInvokeMethods, callNativeMethodSignatures, outputFile);
|
||||
}
|
||||
|
||||
public static void GenerateAOTGenericReference(BuildTarget target, string obfuscatedHotUpdateDllPath)
|
||||
|
|
@ -168,7 +137,7 @@ namespace Obfuz4HybridCLR
|
|||
|
||||
AssemblyReferenceDeepCollector collector = new AssemblyReferenceDeepCollector(
|
||||
CreateObfuscatedHotUpdateAndAOTAssemblyResolver(target, hotUpdateDllNames, ObfuzSettings.Instance.assemblySettings.GetAssembliesToObfuscate(), obfuscatedHotUpdateDllPath), hotUpdateDllNames);
|
||||
var analyzer = new Analyzer2(new Analyzer2.Options
|
||||
var analyzer = new AOTReferenceAnalyzer(new AOTReferenceAnalyzer.Options
|
||||
{
|
||||
MaxIterationCount = Math.Min(20, gs.maxGenericReferenceIteration),
|
||||
Collector = collector,
|
||||
|
|
@ -176,7 +145,7 @@ namespace Obfuz4HybridCLR
|
|||
|
||||
analyzer.Run();
|
||||
|
||||
var writer = new GenericReferenceWriter();
|
||||
var writer = new AOTGenericReferenceWriter();
|
||||
writer.Write(analyzer.AotGenericTypes.ToList(), analyzer.AotGenericMethods.ToList(), $"{Application.dataPath}/{gs.outputAOTGenericReferenceFile}");
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue