You've already forked lazarus-ccr
More advances for the android sdk bindings gen
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1680 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -130,8 +130,8 @@
|
|||||||
<IsVisibleTab Value="True"/>
|
<IsVisibleTab Value="True"/>
|
||||||
<EditorIndex Value="2"/>
|
<EditorIndex Value="2"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="219"/>
|
<TopLine Value="206"/>
|
||||||
<CursorPos X="65" Y="247"/>
|
<CursorPos X="48" Y="229"/>
|
||||||
<UsageCount Value="20"/>
|
<UsageCount Value="20"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
</Unit8>
|
</Unit8>
|
||||||
@ -165,7 +165,7 @@
|
|||||||
<Filename Value="../../../p-tools/turbochessclock4android/android/src/com/pascal/turbochessclock/AndroidView.java"/>
|
<Filename Value="../../../p-tools/turbochessclock4android/android/src/com/pascal/turbochessclock/AndroidView.java"/>
|
||||||
<EditorIndex Value="3"/>
|
<EditorIndex Value="3"/>
|
||||||
<WindowIndex Value="0"/>
|
<WindowIndex Value="0"/>
|
||||||
<TopLine Value="157"/>
|
<TopLine Value="183"/>
|
||||||
<CursorPos X="39" Y="177"/>
|
<CursorPos X="39" Y="177"/>
|
||||||
<UsageCount Value="10"/>
|
<UsageCount Value="10"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
@ -175,123 +175,123 @@
|
|||||||
<JumpHistory Count="30" HistoryIndex="29">
|
<JumpHistory Count="30" HistoryIndex="29">
|
||||||
<Position1>
|
<Position1>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="144" Column="33" TopLine="110"/>
|
<Caret Line="175" Column="35" TopLine="150"/>
|
||||||
</Position1>
|
</Position1>
|
||||||
<Position2>
|
<Position2>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="90" Column="143" TopLine="78"/>
|
<Caret Line="21" Column="31" TopLine="40"/>
|
||||||
</Position2>
|
</Position2>
|
||||||
<Position3>
|
<Position3>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="22" Column="24" TopLine="1"/>
|
<Caret Line="98" Column="42" TopLine="75"/>
|
||||||
</Position3>
|
</Position3>
|
||||||
<Position4>
|
<Position4>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="116" Column="21" TopLine="96"/>
|
<Caret Line="84" Column="3" TopLine="77"/>
|
||||||
</Position4>
|
</Position4>
|
||||||
<Position5>
|
<Position5>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="175" Column="35" TopLine="150"/>
|
<Caret Line="89" Column="1" TopLine="77"/>
|
||||||
</Position5>
|
</Position5>
|
||||||
<Position6>
|
<Position6>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="21" Column="31" TopLine="40"/>
|
<Caret Line="114" Column="29" TopLine="91"/>
|
||||||
</Position6>
|
</Position6>
|
||||||
<Position7>
|
<Position7>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="../../../p-tools/turbochessclock4android/androidview.pas"/>
|
||||||
<Caret Line="98" Column="42" TopLine="75"/>
|
<Caret Line="421" Column="3" TopLine="395"/>
|
||||||
</Position7>
|
</Position7>
|
||||||
<Position8>
|
<Position8>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="84" Column="3" TopLine="77"/>
|
<Caret Line="157" Column="85" TopLine="124"/>
|
||||||
</Position8>
|
</Position8>
|
||||||
<Position9>
|
<Position9>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="89" Column="1" TopLine="77"/>
|
<Caret Line="127" Column="88" TopLine="104"/>
|
||||||
</Position9>
|
</Position9>
|
||||||
<Position10>
|
<Position10>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="114" Column="29" TopLine="91"/>
|
<Caret Line="151" Column="31" TopLine="129"/>
|
||||||
</Position10>
|
</Position10>
|
||||||
<Position11>
|
<Position11>
|
||||||
<Filename Value="../../../p-tools/turbochessclock4android/androidview.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="421" Column="3" TopLine="395"/>
|
<Caret Line="24" Column="24" TopLine="1"/>
|
||||||
</Position11>
|
</Position11>
|
||||||
<Position12>
|
<Position12>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="157" Column="85" TopLine="124"/>
|
<Caret Line="25" Column="34" TopLine="1"/>
|
||||||
</Position12>
|
</Position12>
|
||||||
<Position13>
|
<Position13>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="127" Column="88" TopLine="104"/>
|
<Caret Line="123" Column="82" TopLine="97"/>
|
||||||
</Position13>
|
</Position13>
|
||||||
<Position14>
|
<Position14>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="151" Column="31" TopLine="129"/>
|
<Caret Line="18" Column="26" TopLine="1"/>
|
||||||
</Position14>
|
</Position14>
|
||||||
<Position15>
|
<Position15>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="24" Column="24" TopLine="1"/>
|
<Caret Line="124" Column="120" TopLine="101"/>
|
||||||
</Position15>
|
</Position15>
|
||||||
<Position16>
|
<Position16>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="25" Column="34" TopLine="1"/>
|
<Caret Line="66" Column="44" TopLine="40"/>
|
||||||
</Position16>
|
</Position16>
|
||||||
<Position17>
|
<Position17>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="123" Column="82" TopLine="97"/>
|
<Caret Line="21" Column="27" TopLine="1"/>
|
||||||
</Position17>
|
</Position17>
|
||||||
<Position18>
|
<Position18>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="18" Column="26" TopLine="1"/>
|
<Caret Line="88" Column="3" TopLine="80"/>
|
||||||
</Position18>
|
</Position18>
|
||||||
<Position19>
|
<Position19>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="124" Column="120" TopLine="101"/>
|
<Caret Line="128" Column="3" TopLine="66"/>
|
||||||
</Position19>
|
</Position19>
|
||||||
<Position20>
|
<Position20>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="66" Column="44" TopLine="40"/>
|
<Caret Line="19" Column="61" TopLine="1"/>
|
||||||
</Position20>
|
</Position20>
|
||||||
<Position21>
|
<Position21>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="21" Column="27" TopLine="1"/>
|
<Caret Line="21" Column="37" TopLine="2"/>
|
||||||
</Position21>
|
</Position21>
|
||||||
<Position22>
|
<Position22>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="88" Column="3" TopLine="80"/>
|
<Caret Line="39" Column="18" TopLine="38"/>
|
||||||
</Position22>
|
</Position22>
|
||||||
<Position23>
|
<Position23>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="128" Column="3" TopLine="66"/>
|
<Caret Line="301" Column="70" TopLine="267"/>
|
||||||
</Position23>
|
</Position23>
|
||||||
<Position24>
|
<Position24>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="19" Column="61" TopLine="1"/>
|
<Caret Line="22" Column="35" TopLine="1"/>
|
||||||
</Position24>
|
</Position24>
|
||||||
<Position25>
|
<Position25>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="21" Column="37" TopLine="2"/>
|
<Caret Line="237" Column="100" TopLine="196"/>
|
||||||
</Position25>
|
</Position25>
|
||||||
<Position26>
|
<Position26>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="39" Column="18" TopLine="38"/>
|
<Caret Line="189" Column="3" TopLine="148"/>
|
||||||
</Position26>
|
</Position26>
|
||||||
<Position27>
|
<Position27>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="301" Column="70" TopLine="267"/>
|
<Caret Line="247" Column="65" TopLine="219"/>
|
||||||
</Position27>
|
</Position27>
|
||||||
<Position28>
|
<Position28>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="22" Column="35" TopLine="1"/>
|
<Caret Line="246" Column="49" TopLine="223"/>
|
||||||
</Position28>
|
</Position28>
|
||||||
<Position29>
|
<Position29>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="237" Column="100" TopLine="196"/>
|
<Caret Line="154" Column="16" TopLine="145"/>
|
||||||
</Position29>
|
</Position29>
|
||||||
<Position30>
|
<Position30>
|
||||||
<Filename Value="android_sdk_bindings_gen.pas"/>
|
<Filename Value="android_sdk_bindings_gen.pas"/>
|
||||||
<Caret Line="189" Column="3" TopLine="148"/>
|
<Caret Line="211" Column="20" TopLine="188"/>
|
||||||
</Position30>
|
</Position30>
|
||||||
</JumpHistory>
|
</JumpHistory>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
|
@ -15,7 +15,7 @@ type
|
|||||||
private
|
private
|
||||||
FSourceFile, FPasOutputClasses, FPasOutputIDs, FPasOutputImpl: TStringList;
|
FSourceFile, FPasOutputClasses, FPasOutputIDs, FPasOutputImpl: TStringList;
|
||||||
FJavaOutputIDs, FJavaOutputMethods: TStringList;
|
FJavaOutputIDs, FJavaOutputMethods: TStringList;
|
||||||
FClassName: string; // Class name of the class currently being parsed
|
FClassName, FClassNamePas: string; // Class name of the class currently being parsed
|
||||||
FClassNum, FMethodNum: Integer;
|
FClassNum, FMethodNum: Integer;
|
||||||
procedure ProcessModelFile(ASourceFile, APasOutputFile, AJavaOutputFile: string);
|
procedure ProcessModelFile(ASourceFile, APasOutputFile, AJavaOutputFile: string);
|
||||||
procedure ProcessModelLine(ASourceLine: string);
|
procedure ProcessModelLine(ASourceLine: string);
|
||||||
@ -132,16 +132,17 @@ begin
|
|||||||
FPasOutputClasses.Add('');
|
FPasOutputClasses.Add('');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FClassName := GetPascalTypeName(lCurWord);
|
FClassNamePas := GetPascalTypeName(lCurWord);
|
||||||
|
FClassName := lCurWord;
|
||||||
lParentClassName := GetNextWord(ASourceLine, lReaderPos);
|
lParentClassName := GetNextWord(ASourceLine, lReaderPos);
|
||||||
lParentClassName := GetPascalTypeName(lParentClassName);
|
lParentClassName := GetPascalTypeName(lParentClassName);
|
||||||
FPasOutputClasses.Add(Format(' %s = class(%s)', [FClassName, lParentClassName]));
|
FPasOutputClasses.Add(Format(' %s = class(%s)', [FClassNamePas, lParentClassName]));
|
||||||
FPasOutputClasses.Add(' public');
|
FPasOutputClasses.Add(' public');
|
||||||
lCurWord := GetNextWord(ASourceLine, lReaderPos);
|
lCurWord := GetNextWord(ASourceLine, lReaderPos);
|
||||||
Inc(FClassNum);
|
Inc(FClassNum);
|
||||||
FMethodNum := 0;
|
FMethodNum := 0;
|
||||||
|
|
||||||
FPasOutputIDs.Add(' // ' + FClassName);
|
FPasOutputIDs.Add(' // ' + FClassNamePas);
|
||||||
FJavaOutputIDs.Add(' // ' + FClassName);
|
FJavaOutputIDs.Add(' // ' + FClassName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -151,7 +152,7 @@ var
|
|||||||
lReaderPos: Integer = 1;
|
lReaderPos: Integer = 1;
|
||||||
lParamNum: Integer = 1;
|
lParamNum: Integer = 1;
|
||||||
lCurWord, lParentClassName: string;
|
lCurWord, lParentClassName: string;
|
||||||
lMethodReturn, lMethodName, lParamType, lParamName: string;
|
lMethodReturn, lMethodReturnPas, lMethodName, lParamType, lParamTypePas, lParamName: string;
|
||||||
DeclarationBase, TmpStr, lIDString: string;
|
DeclarationBase, TmpStr, lIDString: string;
|
||||||
FPasOutputImplCurLine: Integer;
|
FPasOutputImplCurLine: Integer;
|
||||||
lJavaParamVar, lJavaParams, lJavaParamSelf: string;
|
lJavaParamVar, lJavaParams, lJavaParamSelf: string;
|
||||||
@ -162,7 +163,7 @@ begin
|
|||||||
|
|
||||||
// Method type and name
|
// Method type and name
|
||||||
lMethodReturn := GetNextWord(ASourceLine, lReaderPos);
|
lMethodReturn := GetNextWord(ASourceLine, lReaderPos);
|
||||||
lMethodReturn := GetPascalTypeName(lMethodReturn);
|
lMethodReturnPas := GetPascalTypeName(lMethodReturn);
|
||||||
lMethodName := GetNextWord(ASourceLine, lReaderPos);
|
lMethodName := GetNextWord(ASourceLine, lReaderPos);
|
||||||
|
|
||||||
if lMethodReturn = 'void' then DeclarationBase := 'procedure '
|
if lMethodReturn = 'void' then DeclarationBase := 'procedure '
|
||||||
@ -170,7 +171,7 @@ begin
|
|||||||
|
|
||||||
// Beginning of the implementation part
|
// Beginning of the implementation part
|
||||||
FPasOutputImplCurLine := FPasOutputImpl.Count;
|
FPasOutputImplCurLine := FPasOutputImpl.Count;
|
||||||
lIDString := 'amkUI_' + FClassName + '_' + lMethodName;
|
lIDString := 'amkUI_' + FClassNamePas + '_' + lMethodName;
|
||||||
|
|
||||||
FPasOutputImpl.Add('begin');
|
FPasOutputImpl.Add('begin');
|
||||||
FPasOutputImpl.Add(' vAndroidPipesComm.SendByte(ShortInt(amkUICommand));');
|
FPasOutputImpl.Add(' vAndroidPipesComm.SendByte(ShortInt(amkUICommand));');
|
||||||
@ -195,12 +196,12 @@ begin
|
|||||||
|
|
||||||
repeat
|
repeat
|
||||||
lParamType := GetNextWord(ASourceLine, lReaderPos);
|
lParamType := GetNextWord(ASourceLine, lReaderPos);
|
||||||
lParamType := GetPascalTypeName(lParamType);
|
lParamTypePas := GetPascalTypeName(lParamType);
|
||||||
lParamName := GetNextWord(ASourceLine, lReaderPos);
|
lParamName := GetNextWord(ASourceLine, lReaderPos);
|
||||||
|
|
||||||
if lParamName = '' then Break;
|
if lParamName = '' then Break;
|
||||||
|
|
||||||
TmpStr := TmpStr + lParamName + ': ' + lParamType + '; ';
|
TmpStr := TmpStr + lParamName + ': ' + lParamTypePas + '; ';
|
||||||
|
|
||||||
// Pascal parameter sending
|
// Pascal parameter sending
|
||||||
FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Integer(' + lParamName + '));');
|
FPasOutputImpl.Add(' vAndroidPipesComm.SendInt(Integer(' + lParamName + '));');
|
||||||
@ -226,12 +227,12 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
TmpStr := TmpStr + '): ' + lMethodReturn + ';';
|
TmpStr := TmpStr + '): ' + lMethodReturnPas + ';';
|
||||||
FPasOutputImpl.Add(' Result := Boolean(vAndroidPipesComm.WaitForIntReturn());');
|
FPasOutputImpl.Add(' Result := Boolean(vAndroidPipesComm.WaitForIntReturn());');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
FPasOutputClasses.Add(' ' + DeclarationBase + TmpStr);
|
FPasOutputClasses.Add(' ' + DeclarationBase + TmpStr);
|
||||||
FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassName + '.' + TmpStr);
|
FPasOutputImpl.Insert(FPasOutputImplCurLine, DeclarationBase + FClassNamePas + '.' + TmpStr);
|
||||||
FPasOutputImpl.Add('end;');
|
FPasOutputImpl.Add('end;');
|
||||||
FPasOutputImpl.Add('');
|
FPasOutputImpl.Add('');
|
||||||
|
|
||||||
@ -243,7 +244,7 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');');
|
FJavaOutputMethods.Add(' lResult_' + lMethodReturn + ' = ' + lJavaParamSelf + '.' + lMethodName + '(' + lJavaParams + ');');
|
||||||
FJavaOutputMethods.Add(' MyAndroidPipesComm.SendIntResult(lResult_' + lMethodReturn + ');');
|
FJavaOutputMethods.Add(' MyAndroidPipesComm.SendIntResult(lResult_' + lMethodReturn + ');');
|
||||||
end;
|
end;
|
||||||
FJavaOutputMethods.Add(' break;');
|
FJavaOutputMethods.Add(' break;');
|
||||||
@ -329,9 +330,9 @@ end;
|
|||||||
procedure TAndroidSDKBindingsGen.GenerateAllBindings(AInputDir, APasOutputDir,
|
procedure TAndroidSDKBindingsGen.GenerateAllBindings(AInputDir, APasOutputDir,
|
||||||
AJavaOutputDir: string);
|
AJavaOutputDir: string);
|
||||||
begin
|
begin
|
||||||
ProcessModelFile(IncludeTrailingPathDelimiter(AInputDir) + 'android_view.txt',
|
ProcessModelFile(IncludeTrailingPathDelimiter(AInputDir) + 'android_all.txt',
|
||||||
IncludeTrailingPathDelimiter(APasOutputDir) + 'android_view.pas',
|
IncludeTrailingPathDelimiter(APasOutputDir) + 'android_all.pas',
|
||||||
IncludeTrailingPathDelimiter(AJavaOutputDir) + 'android_view.java');
|
IncludeTrailingPathDelimiter(AJavaOutputDir) + 'android_all.java');
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
Reference in New Issue
Block a user