Skip to content

Commit 3b2cabe

Browse files
author
Vizit0r
committed
big commit (and final from my side, i think).
1) added support of all 64bits platform on Delphi (not only intel x64). Also Delphi 10.4 added. 2) InvokeCall.inc fully tested (about tests later on) in Delphi on Win x86 + x64, MacOs x64, Linux x64, Android 32b + 64. IOS not tested (i have no iphone etc), and simulator is very slow). All PS types supported, in params and result. 3) Included folder "Invoke Tests", which contains tests for Delphi VCL (Win) + Delphi FMX(all paltforms) + FPC. 4) FPC failed almost all tests. I have not enough FPC skills and power to find a right way with ugly debugger in FPC Invocation, who is strong enough - finish it pls. 5) about calling scripts methods from Delphi for non-Windows systems - its still not completed, i have no time at the moment for this - but i know the way, and will do this later on. It's not the most important and popular thing, really.
1 parent 4ed89c3 commit 3b2cabe

20 files changed

+5249
-646
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- BEGIN_INCLUDE(manifest) -->
3+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
4+
package="%package%"
5+
android:versionCode="%versionCode%"
6+
android:versionName="%versionName%"
7+
android:installLocation="%installLocation%">
8+
9+
<uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" />
10+
<%uses-permission%>
11+
<uses-feature android:glEsVersion="0x00020000" android:required="True"/>
12+
<application android:persistent="%persistent%"
13+
android:restoreAnyVersion="%restoreAnyVersion%"
14+
android:label="%label%"
15+
android:debuggable="%debuggable%"
16+
android:largeHeap="%largeHeap%"
17+
android:icon="%icon%"
18+
android:theme="%theme%"
19+
android:hardwareAccelerated="%hardwareAccelerated%"
20+
android:resizeableActivity="false"
21+
android:requestLegacyExternalStorage="true">
22+
23+
<%provider%>
24+
<%application-meta-data%>
25+
<%uses-libraries%>
26+
<%services%>
27+
<!-- Our activity is a subclass of the built-in NativeActivity framework class.
28+
This will take care of integrating with our NDK code. -->
29+
<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
30+
android:label="%activityLabel%"
31+
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
32+
android:launchMode="singleTask">
33+
<!-- Tell NativeActivity the name of our .so -->
34+
<meta-data android:name="android.app.lib_name"
35+
android:value="%libNameValue%" />
36+
<intent-filter>
37+
<action android:name="android.intent.action.MAIN" />
38+
<category android:name="android.intent.category.LAUNCHER" />
39+
</intent-filter>
40+
</activity>
41+
<%activity%>
42+
<%receivers%>
43+
</application>
44+
</manifest>
45+
<!-- END_INCLUDE(manifest) -->
Lines changed: 277 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,277 @@
1+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Import Condition="Exists('$(BDS)\bin\CodeGear.Deployment.targets')" Project="$(BDS)\bin\CodeGear.Deployment.targets"/>
3+
<ProjectExtensions>
4+
<ProjectFileVersion>12</ProjectFileVersion>
5+
</ProjectExtensions>
6+
<PropertyGroup>
7+
<DeviceId Condition="'$(Platform)'=='Android'">34556e1a0804</DeviceId>
8+
<DeviceId Condition="'$(Platform)'=='Android64'">34556e1a0804</DeviceId>
9+
<DeviceId Condition="'$(Platform)'=='iOSDevice64'"/>
10+
<DeviceId Condition="'$(Platform)'=='iOSSimulator'">iPhone5</DeviceId>
11+
</PropertyGroup>
12+
<ItemGroup Condition="'$(Platform)'=='iOSDevice64'"/>
13+
<ItemGroup Condition="'$(Platform)'=='Win64'"/>
14+
<ItemGroup Condition="'$(Platform)'=='Linux64'"/>
15+
<ItemGroup Condition="'$(Platform)'=='Win32'">
16+
<DeployFile Include="Win32\Debug\Invoke_Testing.exe" Condition="'$(Config)'=='Debug'">
17+
<RemoteDir>Invoke_Testing\</RemoteDir>
18+
<RemoteName>Invoke_Testing.exe</RemoteName>
19+
<DeployClass>ProjectOutput</DeployClass>
20+
<Operation>0</Operation>
21+
<LocalCommand/>
22+
<RemoteCommand/>
23+
<Overwrite>True</Overwrite>
24+
<Required>True</Required>
25+
</DeployFile>
26+
</ItemGroup>
27+
<ItemGroup Condition="'$(Platform)'=='OSX64'"/>
28+
<ItemGroup Condition="'$(Platform)'=='Android'"/>
29+
<ItemGroup Condition="'$(Platform)'=='iOSSimulator'">
30+
<DeployFile Include="$(BDS)\Redist\iossimulator\libcgunwind.1.0.dylib">
31+
<RemoteDir>Invoke_Testing.app\</RemoteDir>
32+
<RemoteName>libcgunwind.1.0.dylib</RemoteName>
33+
<DeployClass>DependencyModule</DeployClass>
34+
<Operation>1</Operation>
35+
<LocalCommand/>
36+
<RemoteCommand/>
37+
<Overwrite>True</Overwrite>
38+
</DeployFile>
39+
<DeployFile Include="$(BDS)\Redist\iossimulator\libpcre.dylib">
40+
<RemoteDir>Invoke_Testing.app\</RemoteDir>
41+
<RemoteName>libpcre.dylib</RemoteName>
42+
<DeployClass>DependencyModule</DeployClass>
43+
<Operation>1</Operation>
44+
<LocalCommand/>
45+
<RemoteCommand/>
46+
<Overwrite>True</Overwrite>
47+
</DeployFile>
48+
</ItemGroup>
49+
<ItemGroup Condition="'$(Platform)'=='Android64'">
50+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png" Condition="'$(Config)'=='Debug'">
51+
<RemoteDir>Invoke_Testing\res\drawable-xlarge\</RemoteDir>
52+
<RemoteName>splash_image.png</RemoteName>
53+
<DeployClass>Android_SplashImage960</DeployClass>
54+
<Operation>1</Operation>
55+
<LocalCommand/>
56+
<RemoteCommand/>
57+
<Overwrite>True</Overwrite>
58+
</DeployFile>
59+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png" Condition="'$(Config)'=='Debug'">
60+
<RemoteDir>Invoke_Testing\res\drawable-xhdpi\</RemoteDir>
61+
<RemoteName>ic_launcher.png</RemoteName>
62+
<DeployClass>Android_LauncherIcon96</DeployClass>
63+
<Operation>1</Operation>
64+
<LocalCommand/>
65+
<RemoteCommand/>
66+
<Overwrite>True</Overwrite>
67+
</DeployFile>
68+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png" Condition="'$(Config)'=='Debug'">
69+
<RemoteDir>Invoke_Testing\res\drawable-hdpi\</RemoteDir>
70+
<RemoteName>ic_launcher.png</RemoteName>
71+
<DeployClass>Android_LauncherIcon72</DeployClass>
72+
<Operation>1</Operation>
73+
<LocalCommand/>
74+
<RemoteCommand/>
75+
<Overwrite>True</Overwrite>
76+
</DeployFile>
77+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png" Condition="'$(Config)'=='Debug'">
78+
<RemoteDir>Invoke_Testing\res\drawable-xhdpi\</RemoteDir>
79+
<RemoteName>ic_notification.png</RemoteName>
80+
<DeployClass>Android_NotificationIcon48</DeployClass>
81+
<Operation>1</Operation>
82+
<LocalCommand/>
83+
<RemoteCommand/>
84+
<Overwrite>True</Overwrite>
85+
</DeployFile>
86+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png" Condition="'$(Config)'=='Debug'">
87+
<RemoteDir>Invoke_Testing\res\drawable-xxxhdpi\</RemoteDir>
88+
<RemoteName>ic_notification.png</RemoteName>
89+
<DeployClass>Android_NotificationIcon96</DeployClass>
90+
<Operation>1</Operation>
91+
<LocalCommand/>
92+
<RemoteCommand/>
93+
<Overwrite>True</Overwrite>
94+
</DeployFile>
95+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png" Condition="'$(Config)'=='Debug'">
96+
<RemoteDir>Invoke_Testing\res\drawable-large\</RemoteDir>
97+
<RemoteName>splash_image.png</RemoteName>
98+
<DeployClass>Android_SplashImage640</DeployClass>
99+
<Operation>1</Operation>
100+
<LocalCommand/>
101+
<RemoteCommand/>
102+
<Overwrite>True</Overwrite>
103+
</DeployFile>
104+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png" Condition="'$(Config)'=='Debug'">
105+
<RemoteDir>Invoke_Testing\res\drawable-xxhdpi\</RemoteDir>
106+
<RemoteName>ic_notification.png</RemoteName>
107+
<DeployClass>Android_NotificationIcon72</DeployClass>
108+
<Operation>1</Operation>
109+
<LocalCommand/>
110+
<RemoteCommand/>
111+
<Overwrite>True</Overwrite>
112+
</DeployFile>
113+
<DeployFile Include="$(BDS)\lib\android\debug\armeabi-v7a\libnative-activity.so" Condition="'$(Config)'=='Debug'">
114+
<RemoteDir>Invoke_Testing\library\lib\armeabi-v7a\</RemoteDir>
115+
<RemoteName>libInvoke_Testing.so</RemoteName>
116+
<DeployClass>AndroidLibnativeArmeabiv7aFile</DeployClass>
117+
<Operation>1</Operation>
118+
<LocalCommand/>
119+
<RemoteCommand/>
120+
<Overwrite>True</Overwrite>
121+
</DeployFile>
122+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png" Condition="'$(Config)'=='Debug'">
123+
<RemoteDir>Invoke_Testing\res\drawable-normal\</RemoteDir>
124+
<RemoteName>splash_image.png</RemoteName>
125+
<DeployClass>Android_SplashImage470</DeployClass>
126+
<Operation>1</Operation>
127+
<LocalCommand/>
128+
<RemoteCommand/>
129+
<Overwrite>True</Overwrite>
130+
</DeployFile>
131+
<DeployFile Include="$(BDS)\lib\android\debug\mips\libnative-activity.so" Condition="'$(Config)'=='Debug'">
132+
<RemoteDir>Invoke_Testing\library\lib\mips\</RemoteDir>
133+
<RemoteName>libInvoke_Testing.so</RemoteName>
134+
<DeployClass>AndroidLibnativeMipsFile</DeployClass>
135+
<Operation>1</Operation>
136+
<LocalCommand/>
137+
<RemoteCommand/>
138+
<Overwrite>True</Overwrite>
139+
</DeployFile>
140+
<DeployFile Include="$(BDS)\lib\android\debug\armeabi\libnative-activity.so" Condition="'$(Config)'=='Debug'">
141+
<RemoteDir>Invoke_Testing\library\lib\armeabi\</RemoteDir>
142+
<RemoteName>libInvoke_Testing.so</RemoteName>
143+
<DeployClass>AndroidLibnativeArmeabiFile</DeployClass>
144+
<Operation>1</Operation>
145+
<LocalCommand/>
146+
<RemoteCommand/>
147+
<Overwrite>True</Overwrite>
148+
</DeployFile>
149+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png" Condition="'$(Config)'=='Debug'">
150+
<RemoteDir>Invoke_Testing\res\drawable-ldpi\</RemoteDir>
151+
<RemoteName>ic_launcher.png</RemoteName>
152+
<DeployClass>Android_LauncherIcon36</DeployClass>
153+
<Operation>1</Operation>
154+
<LocalCommand/>
155+
<RemoteCommand/>
156+
<Overwrite>True</Overwrite>
157+
</DeployFile>
158+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png" Condition="'$(Config)'=='Debug'">
159+
<RemoteDir>Invoke_Testing\res\drawable-xxhdpi\</RemoteDir>
160+
<RemoteName>ic_launcher.png</RemoteName>
161+
<DeployClass>Android_LauncherIcon144</DeployClass>
162+
<Operation>1</Operation>
163+
<LocalCommand/>
164+
<RemoteCommand/>
165+
<Overwrite>True</Overwrite>
166+
</DeployFile>
167+
<DeployFile Include="Android64\Debug\colors.xml" Condition="'$(Config)'=='Debug'">
168+
<RemoteDir>Invoke_Testing\res\values\</RemoteDir>
169+
<RemoteName>colors.xml</RemoteName>
170+
<DeployClass>Android_Colors</DeployClass>
171+
<Operation>1</Operation>
172+
<LocalCommand/>
173+
<RemoteCommand/>
174+
<Overwrite>True</Overwrite>
175+
</DeployFile>
176+
<DeployFile Include="Android64\Debug\AndroidManifest.xml" Condition="'$(Config)'=='Debug'">
177+
<RemoteDir>Invoke_Testing\</RemoteDir>
178+
<RemoteName>AndroidManifest.xml</RemoteName>
179+
<DeployClass>ProjectAndroidManifest</DeployClass>
180+
<Operation>1</Operation>
181+
<LocalCommand/>
182+
<RemoteCommand/>
183+
<Overwrite>True</Overwrite>
184+
</DeployFile>
185+
<DeployFile Include="Android64\Debug\styles.xml" Condition="'$(Config)'=='Debug'">
186+
<RemoteDir>Invoke_Testing\res\values\</RemoteDir>
187+
<RemoteName>styles.xml</RemoteName>
188+
<DeployClass>AndroidSplashStyles</DeployClass>
189+
<Operation>1</Operation>
190+
<LocalCommand/>
191+
<RemoteCommand/>
192+
<Overwrite>True</Overwrite>
193+
</DeployFile>
194+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png" Condition="'$(Config)'=='Debug'">
195+
<RemoteDir>Invoke_Testing\res\drawable-mdpi\</RemoteDir>
196+
<RemoteName>ic_notification.png</RemoteName>
197+
<DeployClass>Android_NotificationIcon24</DeployClass>
198+
<Operation>1</Operation>
199+
<LocalCommand/>
200+
<RemoteCommand/>
201+
<Overwrite>True</Overwrite>
202+
</DeployFile>
203+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png" Condition="'$(Config)'=='Debug'">
204+
<RemoteDir>Invoke_Testing\res\drawable-hdpi\</RemoteDir>
205+
<RemoteName>ic_notification.png</RemoteName>
206+
<DeployClass>Android_NotificationIcon36</DeployClass>
207+
<Operation>1</Operation>
208+
<LocalCommand/>
209+
<RemoteCommand/>
210+
<Overwrite>True</Overwrite>
211+
</DeployFile>
212+
<DeployFile Include="Android64\Debug\splash_image_def.xml" Condition="'$(Config)'=='Debug'">
213+
<RemoteDir>Invoke_Testing\res\drawable\</RemoteDir>
214+
<RemoteName>splash_image_def.xml</RemoteName>
215+
<DeployClass>AndroidSplashImageDef</DeployClass>
216+
<Operation>1</Operation>
217+
<LocalCommand/>
218+
<RemoteCommand/>
219+
<Overwrite>True</Overwrite>
220+
</DeployFile>
221+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png" Condition="'$(Config)'=='Debug'">
222+
<RemoteDir>Invoke_Testing\res\drawable-mdpi\</RemoteDir>
223+
<RemoteName>ic_launcher.png</RemoteName>
224+
<DeployClass>Android_LauncherIcon48</DeployClass>
225+
<Operation>1</Operation>
226+
<LocalCommand/>
227+
<RemoteCommand/>
228+
<Overwrite>True</Overwrite>
229+
</DeployFile>
230+
<DeployFile Include="Android64\Debug\classes.dex" Condition="'$(Config)'=='Debug'">
231+
<RemoteDir>Invoke_Testing\classes\</RemoteDir>
232+
<RemoteName>classes.dex</RemoteName>
233+
<DeployClass>AndroidClassesDexFile</DeployClass>
234+
<Operation>1</Operation>
235+
<LocalCommand/>
236+
<RemoteCommand/>
237+
<Overwrite>True</Overwrite>
238+
</DeployFile>
239+
<DeployFile Include="$(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png" Condition="'$(Config)'=='Debug'">
240+
<RemoteDir>Invoke_Testing\res\drawable-small\</RemoteDir>
241+
<RemoteName>splash_image.png</RemoteName>
242+
<DeployClass>Android_SplashImage426</DeployClass>
243+
<Operation>1</Operation>
244+
<LocalCommand/>
245+
<RemoteCommand/>
246+
<Overwrite>True</Overwrite>
247+
</DeployFile>
248+
<DeployFile Include="Android64\Debug\libInvoke_Testing.so" Condition="'$(Config)'=='Debug'">
249+
<RemoteDir>Invoke_Testing\library\lib\arm64-v8a\</RemoteDir>
250+
<RemoteName>libInvoke_Testing.so</RemoteName>
251+
<DeployClass>ProjectOutput</DeployClass>
252+
<Operation>1</Operation>
253+
<LocalCommand/>
254+
<RemoteCommand/>
255+
<Overwrite>True</Overwrite>
256+
<Required>True</Required>
257+
</DeployFile>
258+
<DeployFile Include="Android64\Debug\styles-v21.xml" Condition="'$(Config)'=='Debug'">
259+
<RemoteDir>Invoke_Testing\res\values-v21\</RemoteDir>
260+
<RemoteName>styles.xml</RemoteName>
261+
<DeployClass>AndroidSplashStylesV21</DeployClass>
262+
<Operation>1</Operation>
263+
<LocalCommand/>
264+
<RemoteCommand/>
265+
<Overwrite>True</Overwrite>
266+
</DeployFile>
267+
<DeployFile Include="Android64\Debug\strings.xml" Condition="'$(Config)'=='Debug'">
268+
<RemoteDir>Invoke_Testing\res\values\</RemoteDir>
269+
<RemoteName>strings.xml</RemoteName>
270+
<DeployClass>Android_Strings</DeployClass>
271+
<Operation>1</Operation>
272+
<LocalCommand/>
273+
<RemoteCommand/>
274+
<Overwrite>True</Overwrite>
275+
</DeployFile>
276+
</ItemGroup>
277+
</Project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
program Invoke_Testing;
2+
3+
uses
4+
System.StartUpCopy,
5+
FMX.Forms,
6+
Invoke_Testing_unit in 'Invoke_Testing_unit.pas' {Form1};
7+
8+
{$R *.res}
9+
10+
begin
11+
Application.Initialize;
12+
Application.CreateForm(TForm1, Form1);
13+
Application.Run;
14+
end.

0 commit comments

Comments
 (0)