rake-delphi 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/2 +336 -0
  2. data/Gemfile +2 -1
  3. data/lib/rake/common/logger.rb +1 -1
  4. data/lib/rake/delphi/androidmanifest.rb +57 -0
  5. data/lib/rake/delphi/dcc32.rb +58 -59
  6. data/lib/rake/delphi/dcc32tool.rb +51 -0
  7. data/lib/rake/delphi/dccaarmtool.rb +29 -0
  8. data/lib/rake/delphi/envvariables.rb +19 -22
  9. data/lib/rake/delphi/paclient.rb +251 -0
  10. data/lib/rake/delphi/paclienttool.rb +20 -0
  11. data/lib/rake/delphi/project.rb +4 -2
  12. data/lib/rake/delphi/projectinfo.rb +73 -1
  13. data/lib/rake/delphi/resources.rb +1 -1
  14. data/lib/rake/delphi/tool.rb +8 -1
  15. data/lib/rake/delphi/version.rb +1 -1
  16. data/lib/rake/helpers/gemversion.rb +11 -0
  17. data/lib/rake/helpers/raketask.rb +16 -0
  18. data/lib/rake/helpers/string.rb +13 -0
  19. data/rake-delphi-cygwin.env.cmd +11 -0
  20. data/rake-delphi-cygwin.env.sh +12 -0
  21. data/rake-delphi.gemspec +4 -1
  22. data/test/helpers/consts.rb +6 -1
  23. data/test/helpers/verinfo.rb +22 -3
  24. data/test/resources/testproject-android/AndroidManifest.erb +35 -0
  25. data/test/resources/testproject-android/AndroidManifest.xml +35 -0
  26. data/test/resources/testproject-android/Rakefile.rb +55 -0
  27. data/test/resources/testproject-android/TestProject.cfg +4 -0
  28. data/test/resources/testproject-android/TestProject.dpr +15 -0
  29. data/test/resources/testproject-android/TestProject.rc +62 -0
  30. data/test/resources/testproject-android/TestProject.res +0 -0
  31. data/test/resources/testproject-android/TestProject.xe5.dproj +373 -0
  32. data/test/resources/testproject-android/fmTest.fmx +26 -0
  33. data/test/resources/testproject-android/fmTest.pas +31 -0
  34. data/test/resources/testproject-android/local.resources.txt +1 -0
  35. data/test/resources/testproject-android/release.dcc.cfg +1 -0
  36. data/test/resources/testproject-android/resources.rc +1 -0
  37. data/test/resources/testproject-android/resources.res +0 -0
  38. data/test/resources/testproject/Rakefile.rb +1 -1
  39. data/test/test-delphi-android.rb +192 -0
  40. data/test/test-delphi.rb +3 -11
  41. data/test/test-envvariables.rb +7 -0
  42. data/test/test-gemversion.rb +11 -0
  43. data/test/test-projectinfo-android.rb +81 -0
  44. data/test/test-projectinfo.rb +0 -11
  45. data/test/test-string.rb +41 -0
  46. metadata +92 -6
  47. data/test/resources/testproject/testproject.cfg.1 +0 -8
  48. data/test/resources/testproject/testproject.drc +0 -210
data/2 ADDED
@@ -0,0 +1,336 @@
1
+ Build
2
+ Checking project dependencies...
3
+ Building HW.dproj (Debug, Android)
4
+ brcc32 command line for "HW.vrc"
5
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\cgrc.exe -c65001 HW.vrc -foHW.res
6
+ dcc command line for "HW.dpr"
7
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\dccaarm.exe -$O- --no-config -B -Q -TX.so -AGenerics.Collections=System.Generics.Collections;
8
+ Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG
9
+ -E.\Android\Debug -I"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\debug";"c:\program files (x86)\embarcadero\rad
10
+ studio\12.0\lib\Android\Release" -LE"C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Android" -LN"C:\Users\Public\Documents\RAD
11
+ Studio\12.0\Dcp\Android" -NU.\Android\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files (x86)\embarcadero\rad
12
+ studio\12.0\lib\Android\Release" -R"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" -U"c:\program files (x86)\embarcadero\rad
13
+ studio\12.0\lib\Android\debug";"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" --libpath:"C:\Users\Public\Documents\RAD
14
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\platforms\android-14\arch-arm\usr\lib" --linker:"C:\Users\Public\Documents\RAD
15
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe" -V -VN
16
+ --linker-option:" -L \"C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\sources\cxx-stl\stlport\libs\armeabi-v7a\""
17
+ -NO.\Android\Debug HW.dpr
18
+ Success
19
+ Elapsed time: 00:00:14.5
20
+ Deploy
21
+ paclient command line
22
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --Clean=".\Android\Debug\HW,C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp"
23
+ paclient command line
24
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
25
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android\Debug\HW\res\drawable-ldpi\,1,ic_launcher.png"
26
+ paclient command line
27
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
28
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android\Debug\HW\res\drawable-xhdpi\,1,ic_launcher.png"
29
+ paclient command line
30
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
31
+ studio\12.0\lib\android\debug\classes.dex,.\Android\Debug\HW\classes\,1,classes.dex"
32
+ paclient command line
33
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="C:\Users\Public\Documents\RAD
34
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\prebuilt\android-arm\gdbserver\gdbserver,.\Android\Debug\HW\library\lib\armeabi\,1,gdbserver"
35
+ paclient command line
36
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
37
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android\Debug\HW\res\drawable-mdpi\,1,ic_launcher.png"
38
+ paclient command line
39
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe
40
+ --put="Android\Debug\AndroidManifest.xml,.\Android\Debug\HW\,1,AndroidManifest.xml"
41
+ paclient command line
42
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\,1,libHW.so"
43
+ paclient command line
44
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
45
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android\Debug\HW\res\drawable-hdpi\,1,ic_launcher.png"
46
+ paclient command line
47
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
48
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android\Debug\HW\res\drawable-xxhdpi\,1,ic_launcher.png"
49
+ paclient command line
50
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --stripdebug="C:\Users\Public\Documents\RAD
51
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe,.\Android\Debug\HW\debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\libHW.so"
52
+
53
+ paclient command line
54
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --aaptpackage="C:\Users\Public\Documents\RAD
55
+ Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\build-tools\android-4.2.2\Aapt.exe,.\Android\Debug\HW\library,.\Android\Debug\HW\classes,.\Android\Debug\HW\res,.\Android\Debug\HW\assets,.\Android\Debug\HW\AndroidManifest.xml,C:\Users\Public\Documents\RAD
56
+ Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar,.\Android\Debug\HW\bin\HW-unsigned.apk"
57
+ Failed
58
+ Elapsed time: 00:00:06.7
59
+ Deploy
60
+ paclient command line
61
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --Clean=".\Android\Debug\HW,C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp"
62
+ paclient command line
63
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
64
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android\Debug\HW\res\drawable-ldpi\,1,ic_launcher.png"
65
+ paclient command line
66
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
67
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android\Debug\HW\res\drawable-xhdpi\,1,ic_launcher.png"
68
+ paclient command line
69
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
70
+ studio\12.0\lib\android\debug\classes.dex,.\Android\Debug\HW\classes\,1,classes.dex"
71
+ paclient command line
72
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="C:\Users\Public\Documents\RAD
73
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\prebuilt\android-arm\gdbserver\gdbserver,.\Android\Debug\HW\library\lib\armeabi\,1,gdbserver"
74
+ paclient command line
75
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
76
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android\Debug\HW\res\drawable-mdpi\,1,ic_launcher.png"
77
+ paclient command line
78
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe
79
+ --put="Android\Debug\AndroidManifest.xml,.\Android\Debug\HW\,1,AndroidManifest.xml"
80
+ paclient command line
81
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\,1,libHW.so"
82
+ paclient command line
83
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
84
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android\Debug\HW\res\drawable-hdpi\,1,ic_launcher.png"
85
+ paclient command line
86
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad
87
+ studio\12.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android\Debug\HW\res\drawable-xxhdpi\,1,ic_launcher.png"
88
+ paclient command line
89
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --stripdebug="C:\Users\Public\Documents\RAD
90
+ Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe,.\Android\Debug\HW\debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\libHW.so"
91
+
92
+ paclient command line
93
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --aaptpackage="C:\Users\Public\Documents\RAD
94
+ Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\build-tools\android-4.2.2\Aapt.exe,.\Android\Debug\HW\library,.\Android\Debug\HW\classes,.\Android\Debug\HW\res,.\Android\Debug\HW\assets,.\Android\Debug\HW\AndroidManifest.xml,C:\Users\Public\Documents\RAD
95
+ Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar,.\Android\Debug\HW\bin\HW-unsigned.apk"
96
+ paclient command line
97
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --jarsign="C:\Program
98
+ Files\Java\jdk1.7.0_51\bin\JarSigner.exe,.\Android\Debug\HW\bin\HW-unsigned.apk,androiddebugkey,C:\Users\kriv.RARUS\AppData\Roaming\Embarcadero\BDS\12.0\debug.keystore,MD5withRSA,SHA1,android,android"
99
+
100
+ paclient command line
101
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --zipalign="C:\Users\Public\Documents\RAD
102
+ Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\tools\ZipAlign.exe,.\Android\Debug\HW\bin\HW-unsigned.apk,.\Android\Debug\HW\bin\HW.apk,4"
103
+
104
+ Success
105
+ Elapsed time: 00:00:11.3
106
+ Output
107
+ Build started 11.06.2014 16:04:11.
108
+ __________________________________________________
109
+ Project "C:\OCP\Temp\Android_Hello_Word\HW.dproj" (Build target(s)):
110
+ Target CreateProjectDirectories:
111
+ Creating directory ".\Android\Debug".
112
+ Target BuildVersionResource:
113
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\cgrc.exe -c65001 HW.vrc -foHW.res
114
+ CodeGear Resource Compiler/Binder
115
+ Version 1.2.2 Copyright (c) 2008-2012 Embarcadero Technologies Inc.
116
+
117
+ Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
118
+
119
+ Copyright (C) Microsoft Corporation. All rights reserved.
120
+
121
+
122
+ Deleting file "HW.vrc".
123
+ Target _PasCoreCompile:
124
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\dccaarm.exe -$O- --no-config -B -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG -E.\Android\Debug -I"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\debug";"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" -LE"C:\Users\Public\Documents\RAD Studio\12.0\Bpl\Android" -LN"C:\Users\Public\Documents\RAD Studio\12.0\Dcp\Android" -NU.\Android\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" -R"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" -U"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\debug";"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Android\Release" --libpath:"C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\platforms\android-14\arch-arm\usr\lib" --linker:"C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe" -V -VN --linker-option:" -L \"C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\sources\cxx-stl\stlport\libs\armeabi-v7a\"" -NO.\Android\Debug HW.dpr
125
+ Build succeeded.
126
+ 0 Warning(s)
127
+ 0 Error(s)
128
+ Time Elapsed 00:00:14.45
129
+ Build started 11.06.2014 16:04:53.
130
+ __________________________________________________
131
+ Project "C:\OCP\Temp\Android_Hello_Word\HW.dproj" (Deploy target(s)):
132
+ Target _CleanRemoteDir:
133
+ Cleaning APK Output Directory: .\Android\Debug\HW
134
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --Clean=".\Android\Debug\HW,C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp"
135
+ Platform Assistant Client Version 4.2.0.05
136
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
137
+
138
+ Deleting file(s)...
139
+ Total file(s) deleted: 0 file(s) 0 dir(s)
140
+ Deleting file "C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp".
141
+ Target _DeployFiles:
142
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android\Debug\HW\res\drawable-ldpi\,1,ic_launcher.png"
143
+ Platform Assistant Client Version 4.2.0.05
144
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
145
+
146
+ Copying file(s)...
147
+ Total file(s) copied: 1 file(s) 863 bytes
148
+ Target _DeployFiles:
149
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android\Debug\HW\res\drawable-xhdpi\,1,ic_launcher.png"
150
+ Platform Assistant Client Version 4.2.0.05
151
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
152
+
153
+ Copying file(s)...
154
+ Total file(s) copied: 1 file(s) 1а921 bytes
155
+ Target _DeployFiles:
156
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\lib\android\debug\classes.dex,.\Android\Debug\HW\classes\,1,classes.dex"
157
+ Platform Assistant Client Version 4.2.0.05
158
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
159
+
160
+ Copying file(s)...
161
+ Total file(s) copied: 1 file(s) 1а343а644 bytes
162
+ Target _DeployFiles:
163
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\prebuilt\android-arm\gdbserver\gdbserver,.\Android\Debug\HW\library\lib\armeabi\,1,gdbserver"
164
+ Platform Assistant Client Version 4.2.0.05
165
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
166
+
167
+ Copying file(s)...
168
+ Total file(s) copied: 1 file(s) 268а812 bytes
169
+ Target _DeployFiles:
170
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android\Debug\HW\res\drawable-mdpi\,1,ic_launcher.png"
171
+ Platform Assistant Client Version 4.2.0.05
172
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
173
+
174
+ Copying file(s)...
175
+ Total file(s) copied: 1 file(s) 1а034 bytes
176
+ Target _DeployFiles:
177
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\AndroidManifest.xml,.\Android\Debug\HW\,1,AndroidManifest.xml"
178
+ Platform Assistant Client Version 4.2.0.05
179
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
180
+
181
+ Copying file(s)...
182
+ Total file(s) copied: 1 file(s) 2а343 bytes
183
+ Target _DeployFiles:
184
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\,1,libHW.so"
185
+ Platform Assistant Client Version 4.2.0.05
186
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
187
+
188
+ Copying file(s)...
189
+ Total file(s) copied: 1 file(s) 51а785а360 bytes
190
+ Target _DeployFiles:
191
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android\Debug\HW\res\drawable-hdpi\,1,ic_launcher.png"
192
+ Platform Assistant Client Version 4.2.0.05
193
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
194
+
195
+ Copying file(s)...
196
+ Total file(s) copied: 1 file(s) 1а532 bytes
197
+ Target _DeployFiles:
198
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android\Debug\HW\res\drawable-xxhdpi\,1,ic_launcher.png"
199
+ Platform Assistant Client Version 4.2.0.05
200
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
201
+
202
+ Copying file(s)...
203
+ Total file(s) copied: 1 file(s) 2а674 bytes
204
+ Target __CreateAPKDirs:
205
+ Creating directory ".\Android\Debug\HW\bin".
206
+ Creating directory ".\Android\Debug\HW\assets".
207
+ Target __StripOutputFile:
208
+ Creating directory ".\Android\Debug\HW\debug".
209
+ Copying file from ".\Android\Debug\HW\library\lib\armeabi\libHW.so" to ".\Android\Debug\HW\debug\libHW.so".
210
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --stripdebug="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe,.\Android\Debug\HW\debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\libHW.so"
211
+ Platform Assistant Client Version 4.2.0.05
212
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
213
+
214
+ Target _AndroidPackaging:
215
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --aaptpackage="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\build-tools\android-4.2.2\Aapt.exe,.\Android\Debug\HW\library,.\Android\Debug\HW\classes,.\Android\Debug\HW\res,.\Android\Debug\HW\assets,.\Android\Debug\HW\AndroidManifest.xml,C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar,.\Android\Debug\HW\bin\HW-unsigned.apk"
216
+ Platform Assistant Client Version 4.2.0.05
217
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
218
+
219
+ Build FAILED.
220
+ 0 Warning(s)
221
+ 0 Error(s)
222
+ Time Elapsed 00:00:06.70
223
+ Build started 11.06.2014 16:05:07.
224
+ __________________________________________________
225
+ Project "C:\OCP\Temp\Android_Hello_Word\HW.dproj" (Deploy target(s)):
226
+ Target _CleanRemoteDir:
227
+ Cleaning APK Output Directory: .\Android\Debug\HW
228
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --Clean=".\Android\Debug\HW,C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp"
229
+ Platform Assistant Client Version 4.2.0.05
230
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
231
+
232
+ Deleting file(s)...
233
+ Total file(s) deleted: 2 file(s) 3 dir(s)
234
+ Deleting file "C:\OCP\Temp\Android_Hello_Word\HW._@emb_.tmp".
235
+ Target _DeployFiles:
236
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_36x36.png,.\Android\Debug\HW\res\drawable-ldpi\,1,ic_launcher.png"
237
+ Platform Assistant Client Version 4.2.0.05
238
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
239
+
240
+ Copying file(s)...
241
+ Total file(s) copied: 0 file(s) 0 bytes
242
+ Target _DeployFiles:
243
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_96x96.png,.\Android\Debug\HW\res\drawable-xhdpi\,1,ic_launcher.png"
244
+ Platform Assistant Client Version 4.2.0.05
245
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
246
+
247
+ Copying file(s)...
248
+ Total file(s) copied: 0 file(s) 0 bytes
249
+ Target _DeployFiles:
250
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\lib\android\debug\classes.dex,.\Android\Debug\HW\classes\,1,classes.dex"
251
+ Platform Assistant Client Version 4.2.0.05
252
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
253
+
254
+ Copying file(s)...
255
+ Total file(s) copied: 0 file(s) 0 bytes
256
+ Target _DeployFiles:
257
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\prebuilt\android-arm\gdbserver\gdbserver,.\Android\Debug\HW\library\lib\armeabi\,1,gdbserver"
258
+ Platform Assistant Client Version 4.2.0.05
259
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
260
+
261
+ Copying file(s)...
262
+ Total file(s) copied: 0 file(s) 0 bytes
263
+ Target _DeployFiles:
264
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_48x48.png,.\Android\Debug\HW\res\drawable-mdpi\,1,ic_launcher.png"
265
+ Platform Assistant Client Version 4.2.0.05
266
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
267
+
268
+ Copying file(s)...
269
+ Total file(s) copied: 0 file(s) 0 bytes
270
+ Target _DeployFiles:
271
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\AndroidManifest.xml,.\Android\Debug\HW\,1,AndroidManifest.xml"
272
+ Platform Assistant Client Version 4.2.0.05
273
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
274
+
275
+ Copying file(s)...
276
+ Total file(s) copied: 0 file(s) 0 bytes
277
+ Target _DeployFiles:
278
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="Android\Debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\,1,libHW.so"
279
+ Platform Assistant Client Version 4.2.0.05
280
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
281
+
282
+ Copying file(s)...
283
+ Total file(s) copied: 1 file(s) 51а785а360 bytes
284
+ Target _DeployFiles:
285
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_72x72.png,.\Android\Debug\HW\res\drawable-hdpi\,1,ic_launcher.png"
286
+ Platform Assistant Client Version 4.2.0.05
287
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
288
+
289
+ Copying file(s)...
290
+ Total file(s) copied: 0 file(s) 0 bytes
291
+ Target _DeployFiles:
292
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --put="c:\program files (x86)\embarcadero\rad studio\12.0\bin\Artwork\Android\FM_LauncherIcon_144x144.png,.\Android\Debug\HW\res\drawable-xxhdpi\,1,ic_launcher.png"
293
+ Platform Assistant Client Version 4.2.0.05
294
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
295
+
296
+ Copying file(s)...
297
+ Total file(s) copied: 0 file(s) 0 bytes
298
+ Target __CreateAPKDirs:
299
+ Creating directory ".\Android\Debug\HW\bin".
300
+ Creating directory ".\Android\Debug\HW\assets".
301
+ Target __StripOutputFile:
302
+ Creating directory ".\Android\Debug\HW\debug".
303
+ Copying file from ".\Android\Debug\HW\library\lib\armeabi\libHW.so" to ".\Android\Debug\HW\debug\libHW.so".
304
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --stripdebug="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe,.\Android\Debug\HW\debug\libHW.so,.\Android\Debug\HW\library\lib\armeabi\libHW.so"
305
+ Platform Assistant Client Version 4.2.0.05
306
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
307
+
308
+ Target _AndroidPackaging:
309
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --aaptpackage="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\build-tools\android-4.2.2\Aapt.exe,.\Android\Debug\HW\library,.\Android\Debug\HW\classes,.\Android\Debug\HW\res,.\Android\Debug\HW\assets,.\Android\Debug\HW\AndroidManifest.xml,C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\platforms\android-17\android.jar,.\Android\Debug\HW\bin\HW-unsigned.apk"
310
+ Platform Assistant Client Version 4.2.0.05
311
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
312
+
313
+ Target _AndroidSign:
314
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --jarsign="C:\Program Files\Java\jdk1.7.0_51\bin\JarSigner.exe,.\Android\Debug\HW\bin\HW-unsigned.apk,androiddebugkey,C:\Users\kriv.RARUS\AppData\Roaming\Embarcadero\BDS\12.0\debug.keystore,MD5withRSA,SHA1,android,android"
315
+ Platform Assistant Client Version 4.2.0.05
316
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
317
+
318
+ Target _AndroidZipAlign:
319
+ c:\program files (x86)\embarcadero\rad studio\12.0\bin\paclient.exe --zipalign="C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\adt-bundle-windows-x86-20130522\sdk\tools\ZipAlign.exe,.\Android\Debug\HW\bin\HW-unsigned.apk,.\Android\Debug\HW\bin\HW.apk,4"
320
+ Platform Assistant Client Version 4.2.0.05
321
+ Copyright (c) 2010-2013 Embarcadero Technologies, Inc.
322
+
323
+ Target __DeleteUnsignedAPKFile:
324
+ Deleting file ".\Android\Debug\HW\bin\HW-unsigned.apk".
325
+ Build succeeded.
326
+ 0 Warning(s)
327
+ 0 Error(s)
328
+ Time Elapsed 00:00:11.28
329
+ Search for 'RTL220_UP'
330
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc [6]
331
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(357): RTL220_UP Defined when compiling with Delphi or C++Builder Personalities of BDS 8.0 or higher
332
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(745): {$DEFINE RTL220_UP}
333
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(999): {$IFDEF RTL230_UP} {$DEFINE RTL220_UP} {$ENDIF}
334
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(1000): {$IFDEF RTL220_UP} {$DEFINE RTL210_UP} {$ENDIF}
335
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(1304): {$IFDEF RTL220_UP}
336
+ C:\OCP\lib\Jedi\jcl\source\include\jedi\jedi.inc(1306): {$ENDIF RTL220_UP}
data/Gemfile CHANGED
@@ -5,4 +5,5 @@ gemspec
5
5
  gem 'rake', '~> 10.0.4'
6
6
  gem 'xml-simple'
7
7
  gem 'rubyzip', '~> 0.9.9'
8
- gem 'inifile
8
+ gem 'inifile'
9
+ gem 'apktools', :group => :development
@@ -3,7 +3,7 @@
3
3
  module Rake
4
4
  module Delphi
5
5
  class Logger
6
- NORMAL = 0
6
+ NORMAL = INFO = 0
7
7
  VERBOSE = 1
8
8
  DEBUG = 2
9
9
  TRACE = 3
@@ -0,0 +1,57 @@
1
+ # vim: set shiftwidth=2 tabstop=2 expandtab:
2
+ # encoding: utf-8
3
+
4
+ require 'erb'
5
+ require 'rake/helpers/raketask'
6
+ require 'rake/helpers/gemversion'
7
+ require 'rake/common/chdirtask'
8
+
9
+ module Rake
10
+ module Delphi
11
+ class AndroidManifestInfo
12
+ def initialize(owner)
13
+ @owner = owner
14
+ @version = '1.3.2.4'
15
+ end
16
+
17
+ def get_binding
18
+ binding
19
+ end
20
+
21
+ def version
22
+ Gem::VersionImproved.new(@version)
23
+ end
24
+
25
+ def libname
26
+ @owner.dccTask.dpr.pathmap('%n')
27
+ end
28
+ end
29
+
30
+ class AndroidManifestTask < Rake::Task
31
+ attr_reader :output, :dccTask
32
+ public
33
+ def initialize(name, application)
34
+ super
35
+ self.needed = false
36
+ @template = 'AndroidManifest.erb'
37
+ @output = 'AndroidManifest.xml'
38
+ @template_obj = AndroidManifestInfo.new(self)
39
+ end
40
+
41
+ def execute(args = nil)
42
+ super
43
+ paclientTaskName = name.gsub(/:manifest$/, '')
44
+ @dccTask = application[paclientTaskName].dccTask
45
+ ChDir.new(self, File.dirname(@dccTask.dpr)) do |dir|
46
+ RakeFileUtils.verbose(Logger.debug?) do
47
+ erb = ERB.new(IO.read(@template))
48
+ text = erb.result(@template_obj.get_binding)
49
+ File.open(@output, 'w') do |f|
50
+ f.write(text)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end # class AndroidManifestTask
56
+ end
57
+ end
@@ -5,54 +5,24 @@ require 'rake/common/chdirtask'
5
5
  require 'rake/common/logger'
6
6
  require 'rake/delphi/envvariables'
7
7
  require 'rake/delphi/resources'
8
- require 'rake/delphi/tool'
8
+ require 'rake/delphi/dcc32tool'
9
+ require 'rake/delphi/dccaarmtool'
10
+ require 'rake/helpers/string'
9
11
  require 'rake/helpers/rake'
10
12
  require 'rake/helpers/raketask'
11
13
 
12
14
  module Rake
13
15
  module Delphi
14
- class Dcc32Tool < CustomDelphiTool
15
- def self.toolName
16
- 'bin/dcc32.exe'
17
- end
18
-
19
- def delphidir
20
- @@delphidir
21
- end
22
-
23
- def delphilib
24
- ENV['BDSLIB']
25
- end
26
-
27
- def readLibraryPaths(platform)
28
- warn "WARNING! You are using Delphi XE or above but no platform defined!" if ENV['DELPHI_VERSION'].to_i >= 14 && ! platform
29
-
30
- platform = platform.to_s != '' ? '\\' + platform : ''
31
- # platform not used for old Delphis 'SearchPath'
32
- libpaths = self.class.readUserOption('Library' + platform, 'Search Path', self.version).split(';') \
33
- | self.class.readUserOption('Library', 'SearchPath', self.version).split(';')
34
- Logger.trace(Logger::TRACE, libpaths)
35
- dev = EnvVariables.new(self.class.rootForVersion(self.version) + '\Environment Variables', self.delphidir)
36
- libpaths.map! do |lp|
37
- unless lp.to_s.empty?
38
- lp = dev.expand(lp)
39
- end
40
- lp
41
- end
42
- Logger.trace(Logger::TRACE, libpaths)
43
- return libpaths
44
- end
45
- end
46
-
47
16
  class Dcc32Task < Rake::Task
48
17
  attr_accessor :systempath, :mainicon, :_source, :exeoutput, :bin
18
+ attr_reader :dccTool
49
19
 
50
20
  private
51
21
  @@symbols = [:quiet, :assertions, :build, :optimization, :debug, :defines,
52
22
  :debuginfo, :localsymbols, :console, :warnings, :hints, :altercfg,
53
23
  :includepaths, :writeableconst,
54
24
  :map, :dcuoutput, :bploutput, :aliases, :platform, :namespaces,
55
- :dcpoutput, :dcu, :uselibrarypath, :uselibrarypath, :usecfg]
25
+ :dcpoutput, :dcu, :uselibrarypath, :uselibrarypath, :usecfg, :dcc_options]
56
26
  public
57
27
  @@symbols.map do |sym|
58
28
  attr_accessor sym unless method_defined?(sym)
@@ -66,18 +36,30 @@ module Rake
66
36
  @rc_task = application.define_task(RCTask, shortname + ':rc')
67
37
  enhance([@rc_template_task, @rc_task])
68
38
  @platform = nil
69
- @dcc32Tool = Dcc32Tool.new
39
+ @platform_stripped = nil
40
+ @dccToolClass = nil
41
+ recreate_dcc_tool
42
+ end
43
+
44
+ def recreate_dcc_tool(checkExistance = false)
45
+ @dccToolClass ||= Dcc32Tool
46
+ @dccToolClass.reinit
47
+ @dccTool = @dccToolClass.new(checkExistance)
70
48
  end
71
49
 
72
50
  # used in tests
73
51
  def reenable
74
52
  # recreate Dcc32Tool to reinitialize paths to tool
75
- @dcc32Tool = Dcc32Tool.new(true)
53
+ recreate_dcc_tool(true)
76
54
  super
77
55
  end
78
56
 
79
57
  def versionInfoClass
80
- @dcc32Tool.versionInfoClass
58
+ @dccTool.versionInfoClass
59
+ end
60
+
61
+ def createVersionInfo
62
+ versionInfoClass.new(self)
81
63
  end
82
64
 
83
65
  def dcu=(value)
@@ -92,6 +74,35 @@ module Rake
92
74
  enhance([dcu_task])
93
75
  end
94
76
 
77
+ def platform=(value)
78
+ @platform = value
79
+ Logger.trace(Logger::DEBUG, 'PLATFORM set: ' + value)
80
+ # strip digits from platform name Android
81
+ @platform_stripped = @platform
82
+ @platform_stripped = @platform.gsub(/\d/, '') if @platform.downcase.starts_with?('android')
83
+ @dccToolClass = nil
84
+ post_needed = false
85
+ if @platform_stripped.downcase.to_sym == :android
86
+ # set dccaarm compiler tool for Android platform
87
+ @dccToolClass = DccARMTool
88
+ post_needed = true
89
+ end
90
+ recreate_dcc_tool
91
+ Logger.trace(Logger::DEBUG, 'DCC tool set: ' + @dccToolClass.to_s)
92
+ # enable appropriate PAClientTask
93
+ application[name + ':post'].needed = post_needed
94
+ # for XE and above set default aliases and namespaces
95
+ if ENV['DELPHI_VERSION'].to_i >= 14
96
+ @aliases = 'Generics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE'
97
+ @namespaces = 'Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap'
98
+ Logger.trace(Logger::TRACE, 'Aliases and namespaces are set for Delphi XE')
99
+ end
100
+ end
101
+
102
+ def exeoutput
103
+ return @exeoutput || @bin
104
+ end
105
+
95
106
  private
96
107
  def initvars
97
108
  @exeoutput = nil
@@ -101,19 +112,7 @@ module Rake
101
112
  end
102
113
 
103
114
  def delphilibs
104
- return [@dcc32Tool.delphilib] | @dcc32Tool.readLibraryPaths(@platform)
105
- end
106
-
107
- def platform=(value)
108
- @platform = value
109
- Logger.trace(Logger::DEBUG, 'PLATFORM set: ' + value)
110
- ENV['PLATFORM'] = @platform
111
- # for XE and above set default aliases and namespaces
112
- if ENV['DELPHI_VERSION'].to_i >= 14
113
- @aliases = 'Generics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE'
114
- @namespaces = 'Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;Vcl'
115
- Logger.trace(Logger::TRACE, 'Aliases and namespaces are set for Delphi XE')
116
- end
115
+ return [@dccTool.delphilib] | @dccTool.readLibraryPaths(@platform, @platform_stripped)
117
116
  end
118
117
 
119
118
  def _paths(ppaths)
@@ -168,10 +167,6 @@ module Rake
168
167
  return @namespaces ? Rake.quotepath('-NS', @namespaces) : ''
169
168
  end
170
169
 
171
- def exeoutput
172
- return @exeoutput || @bin
173
- end
174
-
175
170
  def dcuoutput
176
171
  return @dcuoutput || @dcu || @_source.pathmap('%d%sdcu')
177
172
  end
@@ -202,7 +197,7 @@ module Rake
202
197
  end
203
198
 
204
199
  def _source
205
- return Rake.quotepath('', @_source)
200
+ return Rake.quotepath('', @_source.pathmap('%f'))
206
201
  end
207
202
 
208
203
  def defines
@@ -215,13 +210,17 @@ module Rake
215
210
 
216
211
  def build_args
217
212
  args = []
218
- args << build? << console? << warnings? << hints? << quiet? << debug? << alldebuginfo << map
213
+ args << @dccTool.options << dcc_options << build? << console? << warnings? << hints? << quiet? << debug? << alldebuginfo << map
219
214
  args << defines << writeableconst << aliases << namespaces
220
215
  args << _source << outputs << implicitpaths
221
216
  args.flatten
222
217
  end
223
218
 
224
219
  public
220
+ def dpr
221
+ @_source
222
+ end
223
+
225
224
  def init(properties)
226
225
  Logger.trace(Logger::TRACE, properties)
227
226
  properties.map do |key, value|
@@ -275,7 +274,7 @@ module Rake
275
274
 
276
275
  def execute(opts=nil)
277
276
  super
278
- @dcc32Tool.class.checkToolFailure(@dcc32Tool.toolpath)
277
+ @dccTool.class.checkToolFailure(@dccTool.toolpath)
279
278
  fail "Could not find #{_source} to compile" unless @_source && File.exists?(@_source)
280
279
  init_libs
281
280
  args = build_args
@@ -283,7 +282,7 @@ module Rake
283
282
  # so escape $
284
283
  args.map! { |a| a.gsub('$', '\$') if a.kind_of?(String) } unless application.windows?
285
284
  args.compact!
286
- cmd = Rake.quotepath('', @dcc32Tool.toolpath)
285
+ cmd = Rake.quotepath('', @dccTool.toolpath)
287
286
  cmd << ([''] | args).join(' ')
288
287
  ChDir.new(self, File.dirname(@_source)) do |dir|
289
288
  RakeFileUtils.verbose(Logger.debug?) do