Skip to content

Commit 64b283b

Browse files
committed
为了避免core对v8的反向依赖,对于要生成的c++代码,添加C#版本的代码生成逻辑。d.ts的生成逻辑挪到v8模块。另外也对js版本的排版进行一些调整(便于前期调试时两边对比)
1 parent 002bbbc commit 64b283b

File tree

11 files changed

+2054
-10
lines changed

11 files changed

+2054
-10
lines changed

unity/upms/core/Editor/Resources/puerts/templates/il2cppbridge.tpl.mjs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ function genBridgeArgs(parameterSignatures) {
3939
function genBridge(bridgeInfo) {
4040
var parameterSignatures = il2cpp_snippets.listToJsArray(bridgeInfo.ParameterSignatures);
4141
let hasVarArgs = parameterSignatures.length > 0 && parameterSignatures[parameterSignatures.length -1][0] == 'V'
42-
return t`
43-
// ${bridgeInfo.CsName}
42+
return t`// ${bridgeInfo.CsName}
4443
static ${il2cpp_snippets.SToCPPType(bridgeInfo.ReturnSignature)} b_${bridgeInfo.Signature}(void* target, ${parameterSignatures.map((S, i) => `${il2cpp_snippets.SToCPPType(S)} p${i}`).map(s => `${s}, `).join('')}MethodInfo* method) {
4544
// PLog("Running b_${bridgeInfo.Signature}");
4645

unity/upms/core/Editor/Resources/puerts/templates/il2cppfieldwrapper.tpl.mjs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@ function genGetField(fieldWrapperInfo) {
1515
if (il2cpp_snippets.isNullableStruct(signature))
1616
{
1717
return `${code}
18-
${invokePapi('add_return')}(info, NullableConverter<${signature}>::toScript(apis, env, TIret, _src));
19-
`;
18+
${invokePapi('add_return')}(info, NullableConverter<${signature}>::toScript(apis, env, TIret, _src));`;
2019
}
2120
else
2221
{
2322
return `${code}
24-
${invokePapi('add_return')}(info, DataTransfer::CopyValueType<${signature}>(apis, env, *_src, TIret));
25-
`;
23+
${invokePapi('add_return')}(info, DataTransfer::CopyValueType<${signature}>(apis, env, *_src, TIret));`;
2624
}
2725

2826
} else {
@@ -57,8 +55,8 @@ static void ifs_${fieldWrapperInfo.Signature}(struct pesapi_ffi* apis, pesapi_ca
5755
${il2cpp_snippets.getThis(fieldWrapperInfo.ThisSignature)}
5856
5957
${ENDIF()}
60-
// ${fieldWrapperInfo.ReturnSignature}
61-
${il2cpp_snippets.JSValToCSVal(fieldWrapperInfo.ReturnSignature, `${invokePapi('get_arg')}(info, 0)`, "p")}
58+
// ${fieldWrapperInfo.ReturnSignature}
59+
${il2cpp_snippets.JSValToCSVal(fieldWrapperInfo.ReturnSignature, `${invokePapi('get_arg')}(info, 0)`, "p")}
6260
SetFieldValue(${il2cpp_snippets.needThis(fieldWrapperInfo) ? 'self, ': 'nullptr, '}fieldInfo, offset, ${['o', 's', 'p', 'a'].indexOf(fieldWrapperInfo.Signature) != -1 ? 'p' : '&p'});
6361
}`;
6462
}

unity/upms/core/Editor/Resources/puerts/templates/il2cppwrapperdef.tpl.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ ${parameterSignatures.map((x, i) => ` pesapi_value _sv${i} = ${invokePapi('ge
3232
3333
${parameterSignatures.map((x, i) => il2cpp_snippets.JSValToCSVal(x, `_sv${i}`, `p${i}`)).join('\n')}
3434
35-
typedef ${il2cpp_snippets.SToCPPType(wrapperInfo.ReturnSignature)} (*FuncToCall)(${il2cpp_snippets.needThis(wrapperInfo) ? 'void*,' : ''}${parameterSignatures.map((S, i) => `${il2cpp_snippets.SToCPPType(S)} p${i}`).map(s => `${s}, `).join('')}const void* method);
35+
typedef ${il2cpp_snippets.SToCPPType(wrapperInfo.ReturnSignature)} (*FuncToCall)(${il2cpp_snippets.needThis(wrapperInfo) ? 'void*, ' : ''}${parameterSignatures.map((S, i) => `${il2cpp_snippets.SToCPPType(S)} p${i}`).map(s => `${s}, `).join('')}const void* method);
3636
${IF(wrapperInfo.ReturnSignature != 'v')}${il2cpp_snippets.SToCPPType(wrapperInfo.ReturnSignature)} ret = ${ENDIF()}((FuncToCall)methodPointer)(${il2cpp_snippets.needThis(wrapperInfo) ? 'self,' : ''} ${parameterSignatures.map((_, i) => `p${i}, `).join('')} method);
3737
3838
${FOR(parameterSignatures, (x, i) => t`

unity/upms/core/Editor/Src/Generator/FileExporter.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ static Dictionary<string, List<KeyValuePair<object, int>>> getConfigure()
6666
}
6767

6868

69+
// ExportDTS has been moved to v8 module (Puerts.V8.Editor.Generator.DTSUnityMenu.ExportDTS)
70+
// to avoid core→v8 reverse dependency.
71+
/*
6972
public static void ExportDTS(string saveTo, ILoader loader = null, bool csharpModuleWillGen = false)
7073
{
7174
var configure = getConfigure();
@@ -98,6 +101,7 @@ public static void ExportDTS(string saveTo, ILoader loader = null, bool csharpMo
98101
99102
Utils.SetFilters(null);
100103
}
104+
*/
101105
}
102106
}
103107

0 commit comments

Comments
 (0)