[change] 移除DHE相关代码
parent
bc6e285b92
commit
e7fac5b0b8
|
@ -1,56 +0,0 @@
|
|||
using HybridCLR.Editor.DHE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HybridCLR.Editor.Commands
|
||||
{
|
||||
public static class DifferentialHybridExecutionCommand
|
||||
{
|
||||
[MenuItem("HybridCLR/Generate/DHEAssemblyList", priority = 110)]
|
||||
public static void GenerateAssemblyList()
|
||||
{
|
||||
var options = new AssemblyListGenerator.Options()
|
||||
{
|
||||
DifferentialHybridAssembyList = (HybridCLRSettings.Instance.differentialHybridAssemblies ?? Array.Empty<string>()).ToList(),
|
||||
OutputFile = $"{SettingsUtil.LocalIl2CppDir}/libil2cpp/hybridclr/Il2CppCompatibleDef.cpp",
|
||||
};
|
||||
|
||||
var g = new AssemblyListGenerator(options);
|
||||
g.Generate();
|
||||
}
|
||||
|
||||
|
||||
[MenuItem("HybridCLR/Generate/DHEAssemblyOptionDatas", priority = 111)]
|
||||
public static void GenerateAssemblyOptionDatas()
|
||||
{
|
||||
GenerateAssemblyOptionDatas(true);
|
||||
}
|
||||
|
||||
public static void GenerateAssemblyOptionDatas(bool compileDll)
|
||||
{
|
||||
if (compileDll)
|
||||
{
|
||||
CompileDllCommand.CompileDllActiveBuildTarget();
|
||||
}
|
||||
string[] differentialHybridAssemblyList = HybridCLRSettings.Instance.differentialHybridAssemblies;
|
||||
if (differentialHybridAssemblyList == null || differentialHybridAssemblyList.Length == 0)
|
||||
{
|
||||
Debug.Log("[DifferentialHybridExecutionCommand.GenerateAssemblyOptionDatas] differentialHybridAssemblies is empty. skip generation.");
|
||||
return;
|
||||
}
|
||||
var options = new AssemblyOptionDataGenerator.Options()
|
||||
{
|
||||
DifferentialHybridAssembyList = differentialHybridAssemblyList.ToList(),
|
||||
OutputDir = $"{SettingsUtil.ProjectDir}/{HybridCLRSettings.Instance.differentialHybridOptionOutputDir}",
|
||||
};
|
||||
|
||||
var g = new AssemblyOptionDataGenerator(options);
|
||||
g.Generate();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 998b5f512dc60924e953a558ed250e15
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -16,8 +16,6 @@ namespace HybridCLR.Editor.Commands
|
|||
public static void GenerateAll()
|
||||
{
|
||||
Il2CppDefGeneratorCommand.GenerateIl2CppDef();
|
||||
DifferentialHybridExecutionCommand.GenerateAssemblyList();
|
||||
DifferentialHybridExecutionCommand.GenerateAssemblyOptionDatas();
|
||||
// 顺序随意
|
||||
ReversePInvokeWrapperGeneratorCommand.GenerateReversePInvokeWrapper();
|
||||
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 1e6e11530acf7134796d0a439a6bbe61
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,44 +0,0 @@
|
|||
using HybridCLR.Editor.Template;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HybridCLR.Editor.DHE
|
||||
{
|
||||
public class AssemblyListGenerator
|
||||
{
|
||||
public class Options
|
||||
{
|
||||
public string OutputFile { get; set; }
|
||||
|
||||
public List<string> DifferentialHybridAssembyList { get; set; }
|
||||
}
|
||||
|
||||
private readonly Options _options;
|
||||
public AssemblyListGenerator(Options options)
|
||||
{
|
||||
_options = options;
|
||||
}
|
||||
|
||||
public void Generate()
|
||||
{
|
||||
var frr = new FileRegionReplace(File.ReadAllText(_options.OutputFile));
|
||||
|
||||
List<string> lines = new List<string>();
|
||||
foreach (var ass in _options.DifferentialHybridAssembyList)
|
||||
{
|
||||
lines.Add($"\t\t\"{ass}\",");
|
||||
}
|
||||
|
||||
frr.Replace("DHE", string.Join("\n", lines));
|
||||
|
||||
frr.Commit(_options.OutputFile);
|
||||
Debug.Log($"output:{_options.OutputFile}");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: d6be260bc9a8a40468a82b9ea49b89a1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -1,68 +0,0 @@
|
|||
using dnlib.DotNet;
|
||||
using HybridCLR.Editor.Commands;
|
||||
using HybridCLR.Editor.Meta;
|
||||
using HybridCLR.Runtime;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace HybridCLR.Editor.DHE
|
||||
{
|
||||
public class AssemblyOptionDataGenerator
|
||||
{
|
||||
public class Options
|
||||
{
|
||||
public string OutputDir { get; set; }
|
||||
|
||||
public List<string> DifferentialHybridAssembyList { get; set; }
|
||||
}
|
||||
|
||||
private readonly Options _options;
|
||||
|
||||
public AssemblyOptionDataGenerator(Options options)
|
||||
{
|
||||
_options = options;
|
||||
}
|
||||
|
||||
public void Generate()
|
||||
{
|
||||
foreach(string assName in _options.DifferentialHybridAssembyList)
|
||||
{
|
||||
using (var assCollector = new AssemblyCache(MetaUtil.CreateBuildTargetAssemblyResolver(EditorUserBuildSettings.activeBuildTarget)))
|
||||
{
|
||||
var ass = assCollector.LoadModule(assName);
|
||||
|
||||
var dhaOptions = new DifferentialHybridAssemblyOptions()
|
||||
{
|
||||
notChangeMethodTokens = new List<uint>(),
|
||||
};
|
||||
|
||||
foreach (var type in ass.GetTypes())
|
||||
{
|
||||
foreach (var method in type.Methods)
|
||||
{
|
||||
var attr = method.CustomAttributes.Where(a => a.AttributeType.FullName == "HybridCLR.Runtime.UnchangedAttribute").FirstOrDefault();
|
||||
if (attr != null)
|
||||
{
|
||||
if ((bool)attr.ConstructorArguments[0].Value)
|
||||
{
|
||||
dhaOptions.notChangeMethodTokens.Add(method.MDToken.Raw);
|
||||
Debug.Log($"Unchanged method:{method.MDToken.Raw} {method}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
string outOptionFile = $"{_options.OutputDir}/{assName}.dhao.bytes";
|
||||
File.WriteAllBytes(outOptionFile, dhaOptions.Marshal());
|
||||
Debug.Log($"[AssemblyOptionDataGenerator] assembly:{ass} output:{outOptionFile}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 4a4eda50e51d72d499b439da236a8371
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -20,8 +20,6 @@ namespace HybridCLR.Editor
|
|||
private SerializedProperty _externalHotUpdateAssembliyDirs;
|
||||
private SerializedProperty _strippedAOTDllOutputRootDir;
|
||||
private SerializedProperty _patchAOTAssemblies;
|
||||
private SerializedProperty _differentialHybridAssemblies;
|
||||
private SerializedProperty _differentialHybridOptionOutputDir;
|
||||
private SerializedProperty _collectAssetReferenceTypes;
|
||||
private SerializedProperty _outputLinkFile;
|
||||
private SerializedProperty _outputAOTGenericReferenceFile;
|
||||
|
@ -50,8 +48,6 @@ namespace HybridCLR.Editor
|
|||
_externalHotUpdateAssembliyDirs = _serializedObject.FindProperty("externalHotUpdateAssembliyDirs");
|
||||
_strippedAOTDllOutputRootDir = _serializedObject.FindProperty("strippedAOTDllOutputRootDir");
|
||||
_patchAOTAssemblies = _serializedObject.FindProperty("patchAOTAssemblies");
|
||||
_differentialHybridAssemblies = _serializedObject.FindProperty("differentialHybridAssemblies");
|
||||
_differentialHybridOptionOutputDir = _serializedObject.FindProperty("differentialHybridOptionOutputDir");
|
||||
_collectAssetReferenceTypes = _serializedObject.FindProperty("collectAssetReferenceTypes");
|
||||
_outputLinkFile = _serializedObject.FindProperty("outputLinkFile");
|
||||
_outputAOTGenericReferenceFile = _serializedObject.FindProperty("outputAOTGenericReferenceFile");
|
||||
|
@ -141,8 +137,6 @@ namespace HybridCLR.Editor
|
|||
EditorGUILayout.PropertyField(_externalHotUpdateAssembliyDirs);
|
||||
EditorGUILayout.PropertyField(_strippedAOTDllOutputRootDir);
|
||||
EditorGUILayout.PropertyField(_patchAOTAssemblies);
|
||||
EditorGUILayout.PropertyField(_differentialHybridAssemblies);
|
||||
EditorGUILayout.PropertyField(_differentialHybridOptionOutputDir);
|
||||
EditorGUILayout.PropertyField(_collectAssetReferenceTypes);
|
||||
EditorGUILayout.PropertyField(_outputLinkFile);
|
||||
EditorGUILayout.PropertyField(_outputAOTGenericReferenceFile);
|
||||
|
|
|
@ -38,12 +38,6 @@ namespace HybridCLR.Editor
|
|||
[Header("补充元数据AOT dlls")]
|
||||
public string[] patchAOTAssemblies;
|
||||
|
||||
[Header("差分混合热更新 dlls")]
|
||||
public string[] differentialHybridAssemblies;
|
||||
|
||||
[Header("差分混合热更新配置数据输出目录")]
|
||||
public string differentialHybridOptionOutputDir = "HybridCLRData/DifferentialHybridOptionDatas";
|
||||
|
||||
[Header("生成link.xml时扫描asset中引用的类型")]
|
||||
public bool collectAssetReferenceTypes;
|
||||
|
||||
|
|
Loading…
Reference in New Issue