rhodes 3.2.1 → 3.2.2.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. data/CHANGELOG +7 -0
  2. data/Manifest.txt +36 -0
  3. data/lib/extensions/barcode/ext/barcode/platform/android/jni/src/barcode.cpp +24 -3
  4. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/CaptureActivity.java +11 -280
  5. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/google/zxing/client/android/camera/CameraManager.java +11 -4
  6. data/lib/extensions/barcode/ext/barcode/platform/android/src/com/rhomobile/barcode/Barcode.java +2 -1
  7. data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +36 -0
  8. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.h +25 -0
  9. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.mm +195 -0
  10. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.h +59 -0
  11. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.m +346 -0
  12. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewFactory.h +7 -0
  13. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewFactory.mm +58 -0
  14. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewFactoryRegister.mm +18 -0
  15. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewManager.h +16 -0
  16. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewManager.mm +32 -0
  17. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +9 -2
  18. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h +45 -0
  19. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h +7 -1
  20. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h +21 -4
  21. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h +32 -2
  22. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/ZBarSDK.h +1 -0
  23. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar.h +26 -5
  24. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h +1 -0
  25. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h +2 -3
  26. data/lib/extensions/barcode/ext/barcode/platform/iphone/ZBarSDK/libzbar.a +0 -0
  27. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode.i +3 -2
  28. data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +7 -4
  29. data/lib/extensions/barcode/ext/barcode/shared/src/zbar.c +2 -2
  30. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +1 -1
  31. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraNewService.java +7 -2
  32. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraOldService.java +5 -1
  33. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSemiService.java +8 -1
  34. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraService.java +4 -2
  35. data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +11 -6
  36. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +21 -13
  37. data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +33 -11
  38. data/platform/android/build/android.rake +63 -1
  39. data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +4 -0
  40. data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +4 -0
  41. data/platform/iphone/icon.png +0 -0
  42. data/platform/iphone/rbuild/iphone.rake +6 -4
  43. data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +4 -1
  44. data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +4 -1
  45. data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +4 -0
  46. data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +4 -0
  47. data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
  48. data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
  49. data/platform/wp7/IronRuby/bin/Silverlight3Release/Microsoft.Dynamic.dll +0 -0
  50. data/platform/wp7/IronRuby/bin/Silverlight3Release/Microsoft.Scripting.Core.dll +0 -0
  51. data/platform/wp7/IronRuby/bin/Silverlight3Release/Microsoft.Scripting.dll +0 -0
  52. data/res/generators/rhogen.rb +191 -0
  53. data/res/generators/templates/extension/app/MontanaTest/controller.rb +20 -0
  54. data/res/generators/templates/extension/app/MontanaTest/index.erb +17 -0
  55. data/res/generators/templates/extension/extensions/montana/ext.yml +4 -0
  56. data/res/generators/templates/extension/extensions/montana/ext/build +17 -0
  57. data/res/generators/templates/extension/extensions/montana/ext/build.bat +36 -0
  58. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/Rakefile +77 -0
  59. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/ext_build.files +1 -0
  60. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/jni/src/montana.cpp +28 -0
  61. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/android/src/com/montana/Montana.java +10 -0
  62. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/bb/Montana.files +1 -0
  63. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/bb/Rakefile +97 -0
  64. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/bb/montana.jdp +48 -0
  65. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/bb/src/com/montana/Montana.java +118 -0
  66. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Classes/Montana.h +4 -0
  67. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Classes/Montana.m +24 -0
  68. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Montana.xcodeproj/project.pbxproj +300 -0
  69. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Montana_Prefix.pch +7 -0
  70. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Rakefile +74 -0
  71. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/wm/Montana.vcproj +331 -0
  72. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/wm/Rakefile +62 -0
  73. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/wm/src/montana_wm.cpp +40 -0
  74. data/res/generators/templates/extension/extensions/montana/ext/montana/platform/wm/src/montana_wm.h +2 -0
  75. data/res/generators/templates/extension/extensions/montana/ext/montana/shared/ruby/montana.i +15 -0
  76. data/res/generators/templates/extension/extensions/montana/ext/montana/shared/ruby/montana_wrap.c +2287 -0
  77. data/res/generators/templates/extension/extensions/montana/ext/montana/shared/src/montana.c +20 -0
  78. data/res/generators/templates/extension/extensions/montana/montana.rb +13 -0
  79. data/spec/framework_spec/build.yml +1 -1
  80. data/spec/phone_spec/build.yml +1 -1
  81. data/version +1 -1
  82. metadata +42 -5
@@ -607,6 +607,10 @@
607
607
  isa = XCBuildConfiguration;
608
608
  buildSettings = {
609
609
  ALWAYS_SEARCH_USER_PATHS = NO;
610
+ ARCHS = (
611
+ armv6,
612
+ armv7,
613
+ );
610
614
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
611
615
  GCC_MODEL_TUNING = G5;
612
616
  INSTALL_PATH = /usr/local/lib;
@@ -832,6 +832,10 @@
832
832
  isa = XCBuildConfiguration;
833
833
  buildSettings = {
834
834
  ALWAYS_SEARCH_USER_PATHS = NO;
835
+ ARCHS = (
836
+ armv6,
837
+ armv7,
838
+ );
835
839
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
836
840
  GCC_MODEL_TUNING = G5;
837
841
  INSTALL_PATH = /usr/local/lib;
Binary file
@@ -195,12 +195,13 @@ def make_app_info
195
195
  File.open(fname,"w") { |f| f.write(buf) }
196
196
  end
197
197
 
198
- ICONS = ['icon', 'icon57', 'icon72', 'icon114']
198
+ ICONS = [['icon', 'icon57'], ['icon57','icon57'], ['icon72','icon72'], ['icon114','icon114']]
199
199
 
200
200
  def restore_app_icon
201
201
  puts "restore icon"
202
202
  ipath = $config["build"]["iphonepath"]
203
- ICONS.each do |name|
203
+ ICONS.each do |pair|
204
+ name = pair[0]
204
205
  ibak = File.join(ipath, name + '.bak')
205
206
  icon = File.join(ipath, name + '.png')
206
207
  next if !File.exists? ibak
@@ -214,10 +215,11 @@ def set_app_icon(make_bak)
214
215
  puts "set icon"
215
216
  ipath = $config["build"]["iphonepath"]
216
217
  begin
217
- ICONS.each do |name|
218
+ ICONS.each do |pair|
219
+ name = pair[0]
218
220
  ibak = File.join(ipath, name + '.bak')
219
221
  icon = File.join(ipath, name + '.png')
220
- appicon = File.join($app_path, 'icon', name + '.png')
222
+ appicon = File.join($app_path, 'icon', pair[1] + '.png')
221
223
  if make_bak
222
224
  cp icon, ibak unless File.exists? ibak
223
225
  end
@@ -245,7 +245,10 @@
245
245
  isa = XCBuildConfiguration;
246
246
  buildSettings = {
247
247
  ALWAYS_SEARCH_USER_PATHS = YES;
248
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
248
+ ARCHS = (
249
+ armv6,
250
+ armv7,
251
+ );
249
252
  DSTROOT = /tmp/rhoextlib.dst;
250
253
  GCC_MODEL_TUNING = G5;
251
254
  GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -917,7 +917,10 @@
917
917
  isa = XCBuildConfiguration;
918
918
  buildSettings = {
919
919
  ALWAYS_SEARCH_USER_PATHS = NO;
920
- ARCHS = "$(ARCHS_STANDARD_32_BIT)";
920
+ ARCHS = (
921
+ armv6,
922
+ armv7,
923
+ );
921
924
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
922
925
  GCC_MODEL_TUNING = G5;
923
926
  GCC_OPTIMIZATION_LEVEL = 1;
@@ -1146,6 +1146,10 @@
1146
1146
  isa = XCBuildConfiguration;
1147
1147
  buildSettings = {
1148
1148
  ALWAYS_SEARCH_USER_PATHS = NO;
1149
+ ARCHS = (
1150
+ armv6,
1151
+ armv7,
1152
+ );
1149
1153
  CODE_SIGN_ENTITLEMENTS = Entitlements.plist;
1150
1154
  CODE_SIGN_IDENTITY = "iPhone Developer";
1151
1155
  "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
@@ -388,6 +388,10 @@
388
388
  isa = XCBuildConfiguration;
389
389
  buildSettings = {
390
390
  ALWAYS_SEARCH_USER_PATHS = NO;
391
+ ARCHS = (
392
+ armv6,
393
+ armv7,
394
+ );
391
395
  DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
392
396
  GCC_MODEL_TUNING = G5;
393
397
  HEADER_SEARCH_PATHS = ../../shared;
@@ -278,8 +278,199 @@ module Rhogen
278
278
  end
279
279
 
280
280
 
281
+
282
+ class ExtensionGenerator < BaseGenerator
283
+
284
+ def self.source_root
285
+ File.join(File.dirname(__FILE__), 'templates', 'extension')
286
+ end
287
+
288
+ desc <<-DESC
289
+ Adds native extension to Rhodes based application.
290
+ DESC
291
+
292
+ #option :testing_framework, :desc => 'Specify which testing framework to use (spec, test_unit)'
293
+
294
+ first_argument :name, :required => true, :desc => "extension name"
295
+
296
+ template :ext do |template|
297
+ template.source = 'extensions/montana/ext.yml'
298
+ template.destination = "extensions/#{name.downcase}/ext.yml"
299
+ end
300
+
301
+ template :extension_ruby do |template|
302
+ template.source = 'extensions/montana/montana.rb'
303
+ template.destination = "extensions/#{name.downcase}/#{name.downcase}.rb"
304
+ end
305
+
306
+ $build_script_full_path = ''
307
+
308
+ def callback_after_make_build(template)
309
+ # change atribbutes in build script file to executable
310
+ File.chmod(0755, $build_script_full_path)
311
+ end
312
+
313
+ template :build do |template|
314
+ template.source = 'extensions/montana/ext/build'
315
+ template.destination = "extensions/#{name.downcase}/ext/build"
316
+ $build_script_full_path = template.destination
317
+ template.options = { :after => :callback_after_make_build}
318
+ end
319
+
320
+ template :build_bat do |template|
321
+ template.source = 'extensions/montana/ext/build.bat'
322
+ template.destination = "extensions/#{name.downcase}/ext/build.bat"
323
+ end
324
+
325
+ template :extension_i do |template|
326
+ template.source = 'extensions/montana/ext/montana/shared/ruby/montana.i'
327
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/shared/ruby/#{name.downcase}.i"
328
+ end
329
+
330
+ template :extension_wrap do |template|
331
+ template.source = 'extensions/montana/ext/montana/shared/ruby/montana_wrap.c'
332
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/shared/ruby/#{name.downcase}_wrap.c"
333
+ end
334
+
335
+ template :extension_c do |template|
336
+ template.source = 'extensions/montana/ext/montana/shared/src/montana.c'
337
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/shared/src/#{name.downcase}.c"
338
+ end
339
+
340
+ template :extension_iphone_rakefile do |template|
341
+ template.source = 'extensions/montana/ext/montana/platform/iphone/Rakefile'
342
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/iphone/Rakefile"
343
+ end
344
+
345
+ file :extension_iphone_pch do |file|
346
+ file.source = 'extensions/montana/ext/montana/platform/iphone/Montana_Prefix.pch'
347
+ file.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/iphone/#{name.camel_case}_Prefix.pch"
348
+ end
349
+
350
+ template :extension_iphone_project do |template|
351
+ template.source = 'extensions/montana/ext/montana/platform/iphone/Montana.xcodeproj/project.pbxproj'
352
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/iphone/#{name.camel_case}.xcodeproj/project.pbxproj"
353
+ end
354
+
355
+ template :extension_iphone_src_h do |template|
356
+ template.source = 'extensions/montana/ext/montana/platform/iphone/Classes/Montana.h'
357
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/iphone/Classes/#{name.camel_case}.h"
358
+ end
359
+
360
+ template :extension_iphone_src_m do |template|
361
+ template.source = 'extensions/montana/ext/montana/platform/iphone/Classes/Montana.m'
362
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/iphone/Classes/#{name.camel_case}.m"
363
+ end
364
+
365
+ template :extension_android_ext_build do |template|
366
+ template.source = 'extensions/montana/ext/montana/platform/android/ext_build.files'
367
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/android/ext_build.files"
368
+ end
369
+
370
+ template :extension_android_rakefile do |template|
371
+ template.source = 'extensions/montana/ext/montana/platform/android/Rakefile'
372
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/android/Rakefile"
373
+ end
374
+
375
+ template :extension_android_cpp do |template|
376
+ template.source = 'extensions/montana/ext/montana/platform/android/jni/src/montana.cpp'
377
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/android/jni/src/#{name.downcase}.cpp"
378
+ end
379
+
380
+ template :extension_android_java do |template|
381
+ template.source = 'extensions/montana/ext/montana/platform/android/src/com/montana/Montana.java'
382
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/android/src/com/#{name.downcase}/#{name.camel_case}.java"
383
+ end
384
+
385
+
386
+ template :extension_wm_rakefile do |template|
387
+ template.source = 'extensions/montana/ext/montana/platform/wm/Rakefile'
388
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/wm/Rakefile"
389
+ end
390
+
391
+ template :extension_wm_vcproject do |template|
392
+ template.source = 'extensions/montana/ext/montana/platform/wm/Montana.vcproj'
393
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/wm/#{name.camel_case}.vcproj"
394
+ end
395
+
396
+ template :extension_wm_h do |template|
397
+ template.source = 'extensions/montana/ext/montana/platform/wm/src/montana_wm.h'
398
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/wm/src/#{name.downcase}_wm.h"
399
+ end
400
+
401
+ template :extension_wm_cpp do |template|
402
+ template.source = 'extensions/montana/ext/montana/platform/wm/src/montana_wm.cpp'
403
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/wm/src/#{name.downcase}_wm.cpp"
404
+ end
405
+
406
+
407
+ template :extension_bb_files do |template|
408
+ template.source = 'extensions/montana/ext/montana/platform/bb/Montana.files'
409
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/bb/#{name.camel_case}.files"
410
+ end
411
+
412
+ template :extension_bb_jgp do |template|
413
+ template.source = 'extensions/montana/ext/montana/platform/bb/montana.jdp'
414
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/bb/#{name.downcase}.jdp"
415
+ end
416
+
417
+ template :extension_bb_Rakefile do |template|
418
+ template.source = 'extensions/montana/ext/montana/platform/bb/Rakefile'
419
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/bb/Rakefile"
420
+ end
421
+
422
+ template :extension_bb_java do |template|
423
+ template.source = 'extensions/montana/ext/montana/platform/bb/src/com/montana/Montana.java'
424
+ template.destination = "extensions/#{name.downcase}/ext/#{name.downcase}/platform/bb/src/com/#{name.downcase}/#{name.camel_case}.java"
425
+ end
426
+
427
+
428
+
429
+ template :extension_test_controller do |template|
430
+ template.source = 'app/MontanaTest/controller.rb'
431
+ template.destination = "app/#{name.camel_case}Test/controller.rb"
432
+ end
433
+
434
+ template :extension_test_index do |template|
435
+ template.source = 'app/MontanaTest/index.erb'
436
+ template.destination = "app/#{name.camel_case}Test/index.erb"
437
+ end
438
+
439
+
440
+
441
+
442
+ #<%= name.downcase %>
443
+ #<%= name.camel_case %>
444
+
445
+ #template :spec do |template|
446
+ # underscore_name = name.camel_case.split(/(?=[A-Z])/).map{|w| w.downcase}.join("_")
447
+ # template.source = 'spec.rb'
448
+ # template.destination = "app/test/#{underscore_name}_spec.rb"
449
+ #end
450
+
451
+ #file :loadingpng do |file|
452
+ # file.source = 'app/loading.png'
453
+ # file.destination = "#{name}/app/loading.png"
454
+ #end
455
+
456
+ #directory :helpers do |directory|
457
+ # directory.source = 'app/helpers'
458
+ # directory.destination = "#{name}/app/helpers"
459
+ #end
460
+
461
+
462
+ def attributes?
463
+ self.attributes && !self.attributes.empty?
464
+ end
465
+
466
+ end
467
+
468
+
469
+
470
+
281
471
  add :app, AppGenerator
282
472
  add :model, ModelGenerator
283
473
  add :spec, SpecGenerator
474
+ add :extension, ExtensionGenerator
284
475
 
285
476
  end
@@ -0,0 +1,20 @@
1
+ require 'rho/rhocontroller'
2
+ require 'helpers/application_helper'
3
+ require 'helpers/browser_helper'
4
+ require '<%= name.downcase %>'
5
+
6
+ class <%= name.camel_case %>TestController < Rho::RhoController
7
+ include BrowserHelper
8
+ include ApplicationHelper
9
+
10
+ def index
11
+ render :back => '/app'
12
+ end
13
+
14
+ def run_test
15
+ sum = <%= name.camel_case %>.calc_summ(3,7)
16
+ Alert.show_popup <%= name.camel_case %>::<%= name.camel_case %>StringHelper::process_string('test')+sum.to_s
17
+ render :action => :index, :back => '/app'
18
+ end
19
+
20
+ end
@@ -0,0 +1,17 @@
1
+ <div data-role="page">
2
+
3
+ <div data-role="header" data-position="inline">
4
+ <h1><%= name.camel_case %> Extension Test</h1>
5
+ <a href="<%%= Rho::RhoConfig.start_path %>" class="ui-btn-left" data-icon="home" data-direction="reverse"
6
+ <%%= "data-ajax='false'" if is_bb6 %>>Home</a>
7
+
8
+ </div>
9
+
10
+ <div data-role="content">
11
+ <ul data-role="listview">
12
+ <%%= link_to 'Run <%= name.camel_case %> test', { :action => :run_test }%>
13
+ </ul>
14
+ </div>
15
+
16
+ </div>
17
+
@@ -0,0 +1,4 @@
1
+ entry: Init_<%= name.camel_case %>_extension
2
+ javaentry: com.<%= name.downcase %>.<%= name.camel_case %>
3
+ android_additional_sources_list: ext/<%= name.downcase %>/platform/android/ext_build.files
4
+ libraries: ["<%= name.camel_case %>"]
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+
3
+
4
+ if [ "$RHO_PLATFORM" = "android" ]; then
5
+
6
+ cd <%= name.downcase %>/platform/android
7
+ rake --trace
8
+
9
+ elif [ "$RHO_PLATFORM" = "iphone" ]; then
10
+
11
+ cd <%= name.downcase %>/platform/iphone
12
+ rake --trace
13
+
14
+ fi
15
+
16
+
17
+
@@ -0,0 +1,36 @@
1
+
2
+ if "%RHO_PLATFORM%" == "android" (
3
+
4
+ cd <%= name.downcase %>\platform\android
5
+ rake --trace
6
+
7
+ )
8
+
9
+ if "%RHO_PLATFORM%" == "iphone" (
10
+
11
+ cd <%= name.downcase %>\platform\phone
12
+ rake --trace
13
+
14
+ )
15
+
16
+ if "%RHO_PLATFORM%" == "wm" (
17
+
18
+ cd <%= name.downcase %>\platform\wm
19
+ rake --trace
20
+
21
+ )
22
+
23
+ if "%RHO_PLATFORM%" == "win32" (
24
+
25
+ cd <%= name.downcase %>\platform\wm
26
+ rake --trace
27
+
28
+ )
29
+
30
+ if "%RHO_PLATFORM%" == "bb" (
31
+
32
+ cd <%= name.downcase %>\platform\bb
33
+ rake --trace
34
+
35
+ )
36
+
@@ -0,0 +1,77 @@
1
+ require 'fileutils'
2
+
3
+
4
+ def build_extension(name, arch, src_files)
5
+ objects = []
6
+ mkdir_p $tempdir unless File.exists? $tempdir
7
+
8
+ use_own_stlport = false
9
+ $std_includes = File.join ENV['ANDROID_NDK'], "sources", "cxx-stl", "stlport", "stlport"
10
+ unless File.directory? $std_includes
11
+ $stlport_includes = "#{$rootdir}/platform/shared/stlport/stlport"
12
+ use_own_stlport = true
13
+ end
14
+
15
+ #Dir.glob("*.c").each do |f|
16
+ src_files.each do |f|
17
+ objname = File.join( $tempdir, File.basename( f.gsub(/\.c$/, '.o') ) )
18
+ objects << objname
19
+
20
+ args = []
21
+ args << "-I."
22
+ args << "-I#{$rootdir}/platform/android/Rhodes/jni/include"
23
+ args << "-I#{$rootdir}/platform/shared/ruby/include"
24
+ args << "-I#{$rootdir}/platform/shared"
25
+ args << "-I#{$rootdir}/platform/shared/common"
26
+
27
+ args << "-I#{$std_includes}" unless $std_includes.nil?
28
+ args << "-D__NEW__" if use_own_stlport
29
+ args << "-I#{$stlport_includes}" if use_own_stlport
30
+
31
+ args << "-I#{$rootdir}/platform/shared/ruby/android"
32
+ args << "-I#{$rootdir}/platform/shared/ruby/generated"
33
+
34
+ cc_compile f, $tempdir, args or exit 1
35
+
36
+ end
37
+
38
+ mkdir_p $targetdir unless File.exist? $targetdir
39
+
40
+ cc_ar File.join( $targetdir, 'lib' + name + '.a' ), Dir.glob($tempdir + "/**/*.o") or exit 1
41
+
42
+ end
43
+
44
+ namespace "build" do
45
+ task :config do
46
+ curdir = pwd
47
+ $<%= name.downcase %>dir = curdir.gsub('/ext/<%= name.downcase %>/platform/android','');
48
+ $targetdir = ENV['TARGET_TEMP_DIR']
49
+ raise "TARGET_TEMP_DIR is not set" if $targetdir.nil?
50
+ $tempdir = ENV['TEMP_FILES_DIR']
51
+ raise "TEMP_FILES_DIR is not set" if $tempdir.nil?
52
+ $rootdir = ENV['RHO_ROOT']
53
+ raise "RHO_ROOT is not set" if $rootdir.nil?
54
+
55
+ require File.join($rootdir, 'platform/android/build/androidcommon.rb')
56
+
57
+ setup_ndk(ENV['ANDROID_NDK'],ENV['ANDROID_API_LEVEL'])
58
+
59
+ end
60
+
61
+ task :all => :config do
62
+
63
+ src_files = []
64
+
65
+ src_files << $<%= name.downcase %>dir + '/ext/<%= name.downcase %>/platform/android/jni/src/<%= name.downcase %>.cpp'
66
+ src_files << $<%= name.downcase %>dir + '/ext/<%= name.downcase %>/shared/ruby/<%= name.downcase %>_wrap.c'
67
+ src_files << $<%= name.downcase %>dir + '/ext/<%= name.downcase %>/shared/src/<%= name.downcase %>.c'
68
+
69
+ # build native part
70
+ build_extension('<%= name.camel_case %>', $arch, src_files)
71
+
72
+ # java part will be builded automatically (java files should be listed in ext_build.files ans ext. yml should be configured)
73
+
74
+ end
75
+ end
76
+
77
+ task :default => "build:all"