rhodes 3.2.1 → 3.2.2.beta

Sign up to get free protection for your applications and to get access to all the features.
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"