mirror of
https://github.com/Kaveinator/NetickProForUnity.git
synced 2025-10-27 02:09:06 -07:00
auto
This commit is contained in:
12
Netick/Editor/CodeGen/AssemblyInfo.cs
Normal file
12
Netick/Editor/CodeGen/AssemblyInfo.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System.Reflection;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
[assembly: AssemblyTitle("Netick")]
|
||||
[assembly: AssemblyDescription("Networking Solution for Unity.")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Karrar Rahim")]
|
||||
[assembly: AssemblyProduct("Netick")]
|
||||
[assembly: AssemblyCopyright("Karrar Rahim 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
#endif
|
||||
11
Netick/Editor/CodeGen/AssemblyInfo.cs.meta
Normal file
11
Netick/Editor/CodeGen/AssemblyInfo.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de18034130db7804488a3daa659a0cb3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
69
Netick/Editor/CodeGen/CodeGen.cs
Normal file
69
Netick/Editor/CodeGen/CodeGen.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using Mono.Cecil;
|
||||
using Mono.Cecil.Cil;
|
||||
using Unity.CompilationPipeline.Common.Diagnostics;
|
||||
using Unity.CompilationPipeline.Common.ILPostProcessing;
|
||||
using Netick.CodeGen;
|
||||
using Unity.Netick.CodeGen;
|
||||
using ILPPInterface = Unity.CompilationPipeline.Common.ILPostProcessing.ILPostProcessor;
|
||||
|
||||
namespace Unity.Netick.Helper.CodeGen
|
||||
{
|
||||
public sealed class CodeGen : ILPPInterface
|
||||
{
|
||||
private NetickILProcessor _netickILProcessor = new NetickILProcessor();
|
||||
private List<DiagnosticMessage> _diagnostics = new List<DiagnosticMessage>();
|
||||
public override ILPPInterface GetInstance() => this;
|
||||
public override bool WillProcess(ICompiledAssembly compiledAssembly) => compiledAssembly.References.Any(filePath => Path.GetFileNameWithoutExtension(filePath) == CodeGenUtils.RuntimeAssemblyName);
|
||||
|
||||
public override ILPostProcessResult Process(ICompiledAssembly compiledAssembly)
|
||||
{
|
||||
var assemblyDefinition = CodeGenUtils.AssemblyDefinitionFor(compiledAssembly, out var unused);
|
||||
if (assemblyDefinition == null)
|
||||
{
|
||||
_diagnostics.AddError($"Cannot read Netick Runtime assembly definition: {compiledAssembly.Name}");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!Weave(assemblyDefinition))
|
||||
return null;
|
||||
|
||||
var pe = new MemoryStream();
|
||||
var pdb = new MemoryStream();
|
||||
|
||||
var writerParameters = new WriterParameters
|
||||
{
|
||||
SymbolWriterProvider = new PortablePdbWriterProvider(),
|
||||
SymbolStream = pdb,
|
||||
WriteSymbols = true
|
||||
};
|
||||
|
||||
assemblyDefinition.Write(pe, writerParameters);
|
||||
return new ILPostProcessResult(new InMemoryAssembly(pe.ToArray(), pdb.ToArray()), _diagnostics);
|
||||
}
|
||||
|
||||
public bool Weave(AssemblyDefinition assemblyDefinition)
|
||||
{
|
||||
var mainModule = assemblyDefinition.MainModule;
|
||||
var asm = assemblyDefinition.MainModule.Name.Replace(".dll", "");
|
||||
|
||||
if (asm == "Netick" || asm == "Netick.Unity")
|
||||
return false;
|
||||
|
||||
var didProcess = false;
|
||||
|
||||
if (mainModule != null)
|
||||
{
|
||||
var weaver = new UnityCodeGen();
|
||||
weaver.Init(mainModule, _diagnostics);
|
||||
_netickILProcessor.Init(weaver, mainModule);
|
||||
didProcess = _netickILProcessor.ProcessAssembly(assemblyDefinition);
|
||||
}
|
||||
else
|
||||
_diagnostics.AddError($"Cannot get main module from assembly definition: {assemblyDefinition.Name}");
|
||||
return didProcess;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Netick/Editor/CodeGen/CodeGen.cs.meta
Normal file
11
Netick/Editor/CodeGen/CodeGen.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a95e9c733c98e784782672703cd87449
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
25
Netick/Editor/CodeGen/Unity.Netick.Helper.CodeGen.asmdef
Normal file
25
Netick/Editor/CodeGen/Unity.Netick.Helper.CodeGen.asmdef
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"name": "Unity.Netick.Helper.CodeGen",
|
||||
"rootNamespace": "",
|
||||
"references": [],
|
||||
"includePlatforms": [
|
||||
"Editor"
|
||||
],
|
||||
"excludePlatforms": [],
|
||||
"allowUnsafeCode": true,
|
||||
"overrideReferences": true,
|
||||
"precompiledReferences": [
|
||||
"Mono.Cecil.dll",
|
||||
"Mono.Cecil.Mdb.dll",
|
||||
"Mono.Cecil.Pdb.dll",
|
||||
"Mono.Cecil.Rocks.dll",
|
||||
"Netick.dll",
|
||||
"Netick.Unity.dll",
|
||||
"Netick.CodeGen.dll",
|
||||
"Unity.Netick.CodeGen.dll"
|
||||
],
|
||||
"autoReferenced": false,
|
||||
"defineConstraints": [],
|
||||
"versionDefines": [],
|
||||
"noEngineReferences": false
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 71f67db1ca868524aaf401e71f47bf52
|
||||
AssemblyDefinitionImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user