Unity/C++: Significant re-factoring of Unity header management (see description)

Extract resource handling to UnityResource
Add API header resource helpers
Fix UnityVersion ToString() when Min == Max
Replace fixed list of Il2Cpp header reserved names with parsed names from actual selected headers (solves TypeInfo/MemberInfo problems in 5.3.0-5.3.4 (metadata v16-20))
Use CppDeclarationGenerator when initializing CppTypeCollection to ensure all Il2Cpp header symbols are reserved
Process API headers in CppTypeCollection.FromUnityHeaders
Move #define IS_32BIT handling to UnityHeaders
Update tests
This commit is contained in:
Katy Coe
2020-07-22 19:01:33 +02:00
parent 53909c539c
commit deeb8daa97
12 changed files with 216 additions and 142 deletions

View File

@@ -37,7 +37,7 @@ namespace Il2CppInspector.Outputs
writeHeader();
writeSectionHeader("IL2CPP internal types");
writeCode(model.UnityHeaderText);
writeCode(model.UnityHeaders.GetTypeHeaderText(model.WordSize));
writeCode("namespace app {");
writeLine("");
@@ -133,15 +133,10 @@ namespace Il2CppInspector.Outputs
private void writeHeader() {
writeLine("// Generated C++ file by Il2CppInspector - http://www.djkaty.com - https://github.com/djkaty");
writeLine("// Target Unity version: " + model.UnityHeader);
writeLine("// Target Unity version: " + model.UnityHeaders);
writeLine("");
}
private void writeUnityHeaders() {
var prefix = (model.Package.BinaryImage.Bits == 32) ? "#define IS_32BIT\n" : "";
writeCode(prefix + model.UnityHeader.GetHeaderText());
}
private void writeTypesForGroup(string header, string group) {
writeSectionHeader(header);
foreach (var cppType in model.GetDependencyOrderedCppTypeGroup(group))