Skip to content

Commit 208372e

Browse files
committed
[new] add MethodBridge.cpp.tpl. MethodBridgeGeneratorCommand doesn't generate and override from same file
1 parent dd8d812 commit 208372e

2 files changed

Lines changed: 36 additions & 3 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <codegen/il2cpp-codegen-metadata.h>
2+
#if HYBRIDCLR_UNITY_2023_OR_NEW
3+
#include <codegen/il2cpp-codegen.h>
4+
#elif HYBRIDCLR_UNITY_2022
5+
#include <codegen/il2cpp-codegen-il2cpp.h>
6+
#elif HYBRIDCLR_UNITY_2020 || HYBRIDCLR_UNITY_2021
7+
#include <codegen/il2cpp-codegen-common-big.h>
8+
#else
9+
#include <codegen/il2cpp-codegen-common.h>
10+
#endif
11+
12+
#include "vm/ClassInlines.h"
13+
#include "vm/Object.h"
14+
#include "vm/Class.h"
15+
#include "vm/ScopedThreadAttacher.h"
16+
17+
#include "../metadata/MetadataUtil.h"
18+
19+
20+
#include "../interpreter/InterpreterModule.h"
21+
#include "../interpreter/MethodBridge.h"
22+
#include "../interpreter/Interpreter.h"
23+
#include "../interpreter/MemoryUtil.h"
24+
#include "../interpreter/InstrinctDef.h"
25+
26+
using namespace hybridclr::interpreter;
27+
using namespace hybridclr::metadata;
28+
29+
//!!!{{CODE
30+
31+
32+
//!!!}}CODE

Editor/Commands/MethodBridgeGeneratorCommand.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public static void CleanIl2CppBuildCache()
3131
Directory.Delete(il2cppBuildCachePath, true);
3232
}
3333

34-
private static void GenerateMethodBridgeCppFile(IReadOnlyCollection<GenericMethod> genericMethods, List<RawReversePInvokeMethodInfo> reversePInvokeMethods, IReadOnlyCollection<RawCalliMethodSignatureInfo> calliMethodSignatures, string outputFile)
34+
private static void GenerateMethodBridgeCppFile(IReadOnlyCollection<GenericMethod> genericMethods, List<RawReversePInvokeMethodInfo> reversePInvokeMethods, IReadOnlyCollection<RawCalliMethodSignatureInfo> calliMethodSignatures, string tempFile, string outputFile)
3535
{
36-
string templateCode = File.ReadAllText(outputFile, Encoding.UTF8);
36+
string templateCode = File.ReadAllText(tempFile, Encoding.UTF8);
3737
var g = new Generator(new Generator.Options()
3838
{
3939
TemplateCode = templateCode,
@@ -84,9 +84,10 @@ public static void GenerateMethodBridgeAndReversePInvokeWrapper(BuildTarget targ
8484
var calliAnalyzer = new CalliAnalyzer(cache, hotUpdateDlls);
8585
calliAnalyzer.Run();
8686

87+
string templateFile = $"{SettingsUtil.TemplatePathInPackage}/MethodBridge.cpp.tpl";
8788
string outputFile = $"{SettingsUtil.GeneratedCppDir}/MethodBridge.cpp";
8889

89-
GenerateMethodBridgeCppFile(methodBridgeAnalyzer.GenericMethods, reversePInvokeAnalyzer.ReversePInvokeMethods, calliAnalyzer.CalliMethodSignatures, outputFile);
90+
GenerateMethodBridgeCppFile(methodBridgeAnalyzer.GenericMethods, reversePInvokeAnalyzer.ReversePInvokeMethods, calliAnalyzer.CalliMethodSignatures, templateFile, outputFile);
9091

9192
CleanIl2CppBuildCache();
9293
}

0 commit comments

Comments
 (0)