rhodes 3.2.3 → 3.3.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +10 -0
- data/Rakefile +153 -46
- data/doc/build.txt +261 -102
- data/doc/configuration.txt +5 -2
- data/doc/device-caps.txt +134 -23
- data/doc/extensions.txt +922 -69
- data/doc/generator.txt +96 -39
- data/doc/install.txt +35 -19
- data/doc/jqt-jqm-transition.txt +17 -1
- data/doc/rhom.txt +23 -2
- data/doc/rhostudio-eclipse.txt +49 -0
- data/doc/rhostudio-test-plan.txt +440 -0
- data/doc/simulator.txt +1 -1
- data/doc/synchronization.txt +40 -1
- data/lib/build/jake.rb +108 -7
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +0 -35
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Barcode.xcodeproj/project.pbxproj +8 -2
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeCallbackHelper.mm +195 -195
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/BarcodeViewController.m +6 -0
- data/lib/extensions/barcode/ext/barcode/platform/iphone/Rakefile +5 -0
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +64 -20
- data/lib/extensions/debugger/CHANGELOG +3 -0
- data/lib/extensions/debugger/debugger.rb +26 -21
- data/lib/extensions/digest-md5/ext/Rakefile +5 -5
- data/lib/extensions/digest-md5/ext/build +10 -1
- data/lib/extensions/digest-md5/ext/defs.h +19 -0
- data/lib/extensions/digest-md5/ext/digest-md5.vcproj +317 -9
- data/lib/extensions/digest-md5/ext/iphone/Dmd5.xcodeproj/project.pbxproj +290 -0
- data/lib/extensions/digest-md5/ext/iphone/Dmd5_Prefix.pch +7 -0
- data/lib/extensions/digest-md5/ext/iphone/Rakefile +79 -0
- data/lib/extensions/digest-sha1/ext/Rakefile +5 -5
- data/lib/extensions/digest-sha1/ext/build +10 -1
- data/lib/extensions/digest-sha1/ext/defs.h +19 -0
- data/lib/extensions/digest-sha1/ext/digest-sha1.vcproj +317 -9
- data/lib/extensions/digest-sha1/ext/iphone/Dsha1.xcodeproj/project.pbxproj +278 -0
- data/lib/extensions/digest-sha1/ext/iphone/Dsha1_Prefix.pch +7 -0
- data/lib/extensions/digest-sha1/ext/iphone/Rakefile +79 -0
- data/lib/extensions/digest/ext/Rakefile +5 -5
- data/lib/extensions/digest/ext/build +10 -1
- data/lib/extensions/digest/ext/digest.vcproj +317 -9
- data/lib/extensions/digest/ext/iphone/Digest.xcodeproj/project.pbxproj +270 -0
- data/lib/extensions/digest/ext/iphone/Digest_Prefix.pch +7 -0
- data/lib/extensions/digest/ext/iphone/Rakefile +79 -0
- data/lib/extensions/esri/ext/esri/platform/iphone/ESRI.xcodeproj/project.pbxproj +10 -2
- data/lib/extensions/esri/ext/esri/platform/iphone/Rakefile +6 -0
- data/lib/extensions/fcntl/ext/Rakefile +5 -5
- data/lib/extensions/fcntl/ext/build +9 -1
- data/lib/extensions/fcntl/ext/iphone/Fcntl.xcodeproj/project.pbxproj +262 -0
- data/lib/extensions/fcntl/ext/iphone/Fcntl_Prefix.pch +7 -0
- data/lib/extensions/fcntl/ext/iphone/Rakefile +79 -0
- data/lib/extensions/net-http/net/http.rb +9 -7
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +64 -20
- data/lib/extensions/rhoxml/rexml/document.rb +3 -2
- data/lib/extensions/rhoxml/rexml/instruction.rb +70 -0
- data/lib/framework/builtinME.rb +9 -0
- data/lib/framework/date/format.rb +1 -1
- data/lib/framework/dateME.rb +19 -2
- data/lib/framework/rho/rho.rb +15 -4
- data/lib/framework/rho/rhoapplication.rb +1 -0
- data/lib/framework/rho/rhocontact.rb +10 -27
- data/lib/framework/rho/rhoevent_c.rb +8 -2
- data/lib/framework/rho/rhosupport.rb +25 -0
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +15 -0
- data/lib/framework/rholang/localization_simplified.rb +8 -10
- data/lib/framework/rhom/rhom_object_factory.rb +8 -2
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/platform/android/Rhodes/jni/Application.mk +2 -1
- data/platform/android/Rhodes/jni/include/rhodes.h +9 -0
- data/platform/android/Rhodes/jni/src/callbacks.cpp +31 -1
- data/platform/android/Rhodes/jni/src/event.cpp +75 -31
- data/platform/android/Rhodes/jni/src/nativeview.cpp +1 -1
- data/platform/android/Rhodes/jni/src/phonebook.cpp +73 -9
- data/platform/android/Rhodes/jni/src/rhodes.cpp +21 -0
- data/platform/android/Rhodes/jni/src/rhodesapp.cpp +16 -24
- data/platform/android/Rhodes/jni/src/signature.cpp +27 -1
- data/platform/android/Rhodes/{default.properties → project.properties} +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/Capabilities.java +14 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/NativeBar.java +14 -12
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +38 -115
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +69 -52
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/Camera.java +9 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraNewService.java +21 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraOldService.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSemiService.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraService.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +38 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +212 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +82 -125
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/MainView.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +39 -19
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +106 -136
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/TabbedMainView.java +26 -25
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/nativeview/RhoNativeViewManager.java +1 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality.java +40 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality01.java +47 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality02.java +33 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality03.java +33 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality04.java +34 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality05.java +75 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality06.java +34 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality07.java +34 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality08.java +44 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality09.java +34 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionality10.java +34 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/osfunctionality/AndroidFunctionalityManager.java +73 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +57 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessor.java +2 -2
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +322 -76
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +11 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +5 -5
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +125 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +2 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/WebView.java +16 -0
- data/platform/android/build/RhodesSRC_build.files +14 -0
- data/platform/android/build/android.rake +149 -147
- data/platform/android/build/android_tools.rb +58 -0
- data/platform/android/build/librhocommon_build.files +1 -0
- data/platform/android/build/libruby_build.files +3 -0
- data/platform/bb/RubyVM/src/com/rho/RhoConf.java +11 -1
- data/platform/bb/RubyVM/src/com/rho/db/DBAdapter.java +11 -5
- data/platform/bb/RubyVM/src/com/rho/db/DBAttrManager.java +3 -2
- data/platform/bb/RubyVM/src/com/rho/file/RhoFile.java +2 -0
- data/platform/bb/RubyVM/src/com/rho/net/RhoConnection.java +20 -8
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +9 -6
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +45 -18
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +1 -2
- data/platform/bb/build/bb.rake +84 -70
- data/platform/bb/rhodes/platform/5.0/com/rho/BrowserAdapter5.java +106 -14
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter.java +1 -1
- data/platform/bb/rhodes/src/com/rho/BrowserAdapter5.java +108 -16
- data/platform/bb/rhodes/src/rhomobile/RhodesApplication.java +10 -5
- data/platform/bb/rhodes/src/rhomobile/camera/CameraScreen.java +21 -4
- data/platform/bb/rhodes/src/rhomobile/mapview/Annotation.java +17 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +8 -5
- data/platform/bb/rhodes/src/rhomobile/mapview/MapViewScreen.java +3 -1
- data/platform/iphone/Classes/AppManager/AppManager.m +15 -3
- data/platform/iphone/Classes/Event/Event.m +45 -2
- data/platform/iphone/Classes/MapView/MapViewController.m +8 -4
- data/platform/iphone/Classes/Phonebook/phonebook.m +30 -7
- data/platform/iphone/Classes/Rhodes.h +11 -1
- data/platform/iphone/Classes/Rhodes.m +141 -9
- data/platform/iphone/Classes/Signature/SignatureDelegate.m +27 -1
- data/platform/iphone/Classes/SimpleMainView.h +1 -0
- data/platform/iphone/Classes/SimpleMainView.m +4 -0
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +31 -1
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +10 -0
- data/platform/iphone/rbuild/iphone.rake +33 -6
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +10 -2
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +22 -2
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +14 -0
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +10 -0
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/osx/build/osx.rake +58 -7
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +427 -69
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +21 -2
- data/platform/shared/common/Android.mk +2 -1
- data/platform/shared/common/AutoPointer.h +23 -0
- data/platform/shared/common/BundleManager.cpp +333 -0
- data/platform/shared/common/RhoFile.cpp +206 -23
- data/platform/shared/common/RhoFile.h +14 -4
- data/platform/shared/common/RhoFilePath.h +18 -0
- data/platform/shared/common/RhoStd.h +11 -1
- data/platform/shared/common/RhoThread.h +4 -1
- data/platform/shared/common/RhodesApp.cpp +31 -8
- data/platform/shared/common/RhodesApp.h +14 -0
- data/platform/shared/common/RhodesAppBase.cpp +6 -6
- data/platform/shared/common/RhodesAppBase.h +1 -1
- data/platform/shared/common/emml.h +34 -0
- data/platform/shared/common/iphone/RhoFileImpl.m +30 -2
- data/platform/shared/common/map/BaseMapEngine.cpp +3 -3
- data/platform/shared/common/map/GeocodingMapEngine.cpp +205 -14
- data/platform/shared/common/map/GeocodingMapEngine.h +25 -2
- data/platform/shared/common/map/MapEngine.cpp +24 -2
- data/platform/shared/common/map/MapEngine.h +23 -12
- data/platform/shared/common/phonebook/PhonebookParams.cpp +99 -0
- data/platform/shared/common/phonebook/PhonebookParams.h +52 -0
- data/platform/shared/common/rhoparams.cpp +14 -0
- data/platform/shared/common/rhoparams.h +1 -0
- data/platform/shared/db/DBAdapter.cpp +43 -24
- data/platform/shared/db/DBAdapter.h +6 -1
- data/platform/shared/db/DBAttrManager.cpp +50 -1
- data/platform/shared/logging/RhoLog.h +3 -0
- data/platform/shared/logging/RhoLogSink.cpp +5 -1
- data/platform/shared/net/CURLNetRequest.cpp +2 -0
- data/platform/shared/qt/rhodes/QtMainWindow.cpp +14 -1
- data/platform/shared/qt/rhodes/impl/PhonebookImpl.cpp +2 -2
- data/platform/shared/qt/rhodes/impl/RhoFileImpl.cpp +1 -1
- data/platform/shared/qt/rhodes/impl/SignatureImpl.cpp +14 -2
- data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +16 -2
- data/platform/shared/qt/rhodes/main.cpp +28 -0
- data/platform/shared/qt/rhodes/rhodes.pro +3 -0
- data/platform/shared/qt/rholib/rholib.pro +2 -1
- data/platform/shared/qt/rubylib/rubylib.pro +2 -1
- data/platform/shared/ruby/Android.mk +3 -0
- data/platform/shared/ruby/class.c +7 -0
- data/platform/shared/ruby/compile.c +18 -10
- data/platform/shared/ruby/encdb.h +18 -8
- data/platform/shared/ruby/eval.c +108 -2
- data/platform/shared/ruby/ext/alert/alert_wrap.c +64 -20
- data/platform/shared/ruby/ext/asynchttp/asynchttp_wrap.c +64 -20
- data/platform/shared/ruby/ext/bluetooth/bluetooth_wrap.c +67 -23
- data/platform/shared/ruby/ext/calendar/calendar_wrap.c +64 -20
- data/platform/shared/ruby/ext/calendar/event_wrap.c +64 -20
- data/platform/shared/ruby/ext/camera/camera_wrap.c +64 -20
- data/platform/shared/ruby/ext/datetimepicker/datetimepicker_wrap.c +64 -20
- data/platform/shared/ruby/ext/geolocation/geolocation.i +16 -0
- data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +127 -26
- data/platform/shared/ruby/ext/mapview/mapview_wrap.c +64 -20
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +65 -21
- data/platform/shared/ruby/ext/nativeviewmanager/nativeviewmanager_wrap.c +64 -20
- data/platform/shared/ruby/ext/navbar/navbar_wrap.c +64 -20
- data/platform/shared/ruby/ext/phonebook/phonebook.i +7 -7
- data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +95 -120
- data/platform/shared/ruby/ext/rho/rhoruby.c +4 -4
- data/platform/shared/ruby/ext/rho/rhoruby.h +2 -0
- data/platform/shared/ruby/ext/rho/rhosupport.c +39 -6
- data/platform/shared/ruby/ext/rhoconf/rhoconf_wrap.c +65 -21
- data/platform/shared/ruby/ext/ringtones/ringtones_wrap.c +64 -20
- data/platform/shared/ruby/ext/signature/signature.i +37 -5
- data/platform/shared/ruby/ext/signature/signature_wrap.c +274 -45
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +65 -21
- data/platform/shared/ruby/ext/system/system.i +14 -2
- data/platform/shared/ruby/ext/system/system_wrap.c +146 -25
- data/platform/shared/ruby/ext/webview/webview_wrap.c +65 -21
- data/platform/shared/ruby/include/ruby/ruby.h +15 -4
- data/platform/shared/ruby/inits.c +1 -0
- data/platform/shared/ruby/io.c +13 -3
- data/platform/shared/ruby/win32/win32.c +3 -3
- data/platform/shared/ruby/wince/io_wce.c +2 -2
- data/platform/shared/rubyext/System.cpp +9 -5
- data/platform/shared/sync/ClientRegister.cpp +18 -8
- data/platform/shared/sync/SyncEngine.cpp +25 -11
- data/platform/shared/sync/SyncEngine.h +2 -0
- data/platform/shared/sync/SyncSource.cpp +40 -15
- data/platform/shared/sync/SyncSource.h +3 -2
- data/platform/shared/sync/SyncThread.cpp +9 -4
- data/platform/shared/sync/SyncThread.h +3 -1
- data/platform/symbian/build/symbian.rake +14 -9
- data/platform/symbian/rhodes/rhodes.pro +11 -8
- data/platform/symbian/rhodes/src/phonebook/ruby_phonebook.cpp +2 -2
- data/platform/symbian/rubylib/rubylib.pro +3 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +315 -2
- data/platform/wm/build/build_inf.js +235 -187
- data/platform/wm/build/wm.rake +388 -233
- data/platform/wm/rhodes.sln +56 -0
- data/platform/wm/rhodes/MainWindow.cpp +139 -77
- data/platform/wm/rhodes/MainWindow.h +27 -22
- data/platform/wm/rhodes/MapView/{Graphics.cpp → Bitmap.cpp} +15 -253
- data/platform/wm/rhodes/MapView/Bitmap.h +86 -0
- data/platform/wm/rhodes/MapView/MapViewManager.cpp +7 -2
- data/platform/wm/rhodes/MapView/MapViewManager.h +1 -1
- data/platform/wm/rhodes/MapView/Win32Graphics.cpp +263 -0
- data/platform/wm/rhodes/MapView/Win32Graphics.h +133 -0
- data/platform/wm/rhodes/MapView/WmGraphics.cpp +291 -0
- data/platform/wm/rhodes/MapView/{Graphics.h → WmGraphics.h} +14 -56
- data/platform/wm/rhodes/Rhodes.cpp +128 -32
- data/platform/wm/rhodes/Rhodes.rc +6 -2
- data/platform/wm/rhodes/camera/Camera.cpp +1 -0
- data/platform/wm/rhodes/phonebook/phonebook.cpp +2 -2
- data/platform/wm/rhodes/phonebook/phonebook.h +2 -2
- data/platform/wm/rhodes/resource.h +3 -2
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +6 -0
- data/platform/wm/rhodes/rho/rubyext/NativeToolbar.cpp +4 -0
- data/platform/wm/rhodes/rho/rubyext/RhoSignature.cpp +675 -0
- data/platform/wm/rhodes/rho/rubyext/RhoSignature.h +123 -0
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +12 -2
- data/platform/wm/rhodes/rhodes.vcproj +2732 -1113
- data/platform/wm/rhodes/simulator/MainWindowQt.h +1 -1
- data/platform/wm/rhodes/stdafx.h +1 -0
- data/platform/wm/rhoelements.sln +118 -62
- data/platform/wm/rubylib/rubylib.vcproj +345 -16
- data/platform/wm/sqlite3/sqlite3.vcproj +305 -0
- data/platform/wm/syncengine/syncengine.vcproj +309 -0
- data/platform/wm/tools/detool/LogServer.cpp +19 -2
- data/platform/wm/tools/detool/detool.cpp +131 -6
- data/platform/wm/tools/detool/detool.vcproj +3 -1
- data/platform/wm/tools/detool/stdafx.h +1 -0
- data/platform/wp7/IronRuby/Languages/Ruby/Libraries/Builtins/RangeOps.cs +589 -0
- data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Builtins/RubyEncoding.cs +678 -0
- data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Runtime/RubyExceptionData.cs +271 -0
- data/platform/wp7/IronRuby/Languages/Ruby/Ruby/Runtime/RubyUtils.cs +31 -1
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/RhoRubyLib/common/RhoStd.cs +6 -0
- data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +16 -2
- data/platform/wp7/RhoRubyLib/net/NetRequest.cs +2 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoSyncEngine.cs +1 -2
- data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +13 -10
- data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +30 -8
- data/platform/wp7/build/wp.rake +5 -0
- data/rakefile.rb +153 -46
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubyerrors.swg +155 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubyhead.swg +158 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubyiterators.swg +932 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubyrun.swg +448 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubystdfunctors.swg +162 -0
- data/res/build-tools/swig_patch/Lib/ruby/rubytracking.swg +159 -0
- data/res/build-tools/swig_patch/Lib/ruby/std_basic_string.i +97 -0
- data/res/build-tools/swig_patch/Lib/ruby/std_map.i +418 -0
- data/res/build-tools/swig_patch/Lib/ruby/std_multimap.i +227 -0
- data/res/build-tools/swig_patch/Lib/swiginit.swg +269 -0
- data/res/build-tools/swig_patch/README +7 -0
- data/res/generators/templates/application/app/Settings/controller.rb +42 -1
- data/res/generators/templates/application/app/Settings/wait.erb +1 -1
- data/res/generators/templates/application/app/application.rb +1 -1
- data/res/generators/templates/application/app/layout.erb +8 -8
- data/res/generators/templates/application/build.yml +0 -1
- data/res/generators/templates/application/public/css/android.css +6 -0
- data/res/generators/templates/application/public/css/blackberry.css +6 -0
- data/res/generators/templates/application/public/css/iphone.css +6 -0
- data/res/generators/templates/application/public/css/jqmobile-patch.css +14 -0
- data/res/generators/templates/application/public/jqmobile/images/ajax-loader.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-18-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-black.png +0 -0
- data/res/generators/templates/application/public/jqmobile/images/icons-36-white.png +0 -0
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0rc1.css → jquery.mobile-1.0.css} +452 -354
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0rc1.js → jquery.mobile-1.0.js} +629 -442
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.css +2 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0.min.js +172 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.css +714 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile.structure-1.0.min.css +2 -0
- data/res/generators/templates/application/public/js/jqmobile-patch.js +136 -7
- data/res/generators/templates/extension/app/MontanaTest/controller.rb +20 -20
- data/res/generators/templates/extension/app/MontanaTest/index.erb +17 -17
- data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Montana.xcodeproj/project.pbxproj +8 -2
- data/res/generators/templates/extension/extensions/montana/ext/montana/platform/iphone/Rakefile +5 -0
- data/res/generators/templates/extension/extensions/montana/ext/montana/shared/ruby/montana_wrap.c +64 -20
- data/rhomobile-debug.gemspec +1 -1
- data/spec/framework_spec/app/layout.erb +1 -1
- data/spec/framework_spec/app/spec/core/rational/Rational_spec.rb +1 -1
- data/spec/framework_spec/app/spec/library/stringio/shared/each_char.rb +6 -2
- data/spec/framework_spec/app/spec/shared/rational/{Rational.rb → rational_main.rb} +0 -0
- data/spec/framework_spec/build.yml +0 -3
- data/spec/perfomance_spec/app/Benchmark/controller.rb +1 -1
- data/spec/perfomance_spec/app/layout.erb +1 -1
- data/spec/phone_spec/app/BlobTest_s/blob_test_s.rb +13 -0
- data/spec/phone_spec/app/BlobTest_s/test.png +0 -0
- data/spec/phone_spec/app/BlobTest_s/test2.png +0 -0
- data/spec/phone_spec/app/spec/blobsync_spec.rb +27 -15
- data/spec/phone_spec/app/spec/date_spec.rb +27 -1
- data/spec/phone_spec/app/spec/rho_spec.rb +6 -0
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +64 -26
- data/spec/phone_spec/app/spec/syncengine_spec.rb +28 -7
- data/spec/phone_spec/app/spec/uri_spec.rb +4 -4
- data/spec/phone_spec/app/spec_runner.rb +4 -2
- data/spec/phone_spec/build.yml +7 -9
- data/spec/phone_spec/rhoconfig.txt +1 -0
- data/version +1 -1
- metadata +75 -22
- data/Manifest.txt +0 -7853
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.cpp +0 -384
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.h +0 -41
- data/platform/wm/rhodes/signature/Signature.cpp +0 -396
- data/platform/wm/rhodes/signature/Signature.h +0 -84
- data/platform/wm/rubylib/rubylib.vcproj.VLAD.Vladimir.user +0 -429
- data/platform/wm/sqlite3/sqlite3.vcproj.VLAD.Vladimir.user +0 -429
- data/platform/wm/syncengine/syncengine.vcproj.VLAD.Vladimir.user +0 -429
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0rc1.min.css +0 -12
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0rc1.min.js +0 -170
- data/rhomobile-debug-1.0.5.gem +0 -0
data/CHANGELOG
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
## 3.3.0
|
2
|
+
* Add Ruby Encoding constants
|
3
|
+
* MapView improvements on all platforms
|
4
|
+
* Android: support SDK 4.0 and NDK r7
|
5
|
+
* iPad2: fix camera issue
|
6
|
+
* Contacts: add filter parameters for iPhone and Android
|
7
|
+
* Support update RhoBundle on iPhone and Windows Mobile
|
8
|
+
* Blackberry: support multiple simulators with one JDE
|
9
|
+
* Blackberry: support JQueryMobile on Blackberry 6 and later with full browser mode
|
10
|
+
|
1
11
|
## 3.2.3
|
2
12
|
* Fix Blob sync issue in Rhoconnect-client
|
3
13
|
* Fix logging issue on iPhone and Android
|
data/Rakefile
CHANGED
@@ -262,6 +262,20 @@ namespace "config" do
|
|
262
262
|
capabilities += $app_config[$config["platform"]]["capabilities"] if $app_config[$config["platform"]] and
|
263
263
|
$app_config[$config["platform"]]["capabilities"] and $app_config[$config["platform"]]["capabilities"].is_a? Array
|
264
264
|
$app_config["capabilities"] = capabilities
|
265
|
+
|
266
|
+
#Process motorola extensions
|
267
|
+
if capabilities.index("motorola")
|
268
|
+
$app_config["capabilities"] += ["webkit_browser"] if $app_config["extensions"].index("webkit-browser")
|
269
|
+
$app_config["extensions"] += ["rhoelements"]
|
270
|
+
|
271
|
+
idx_barcode = $app_config["extensions"].index("barcode")
|
272
|
+
$app_config["extensions"][idx_barcode] = "barcode-moto" if idx_barcode
|
273
|
+
|
274
|
+
$app_config["capabilities"] += ["barcode"] if $app_config["extensions"].index("barcode-moto")
|
275
|
+
end
|
276
|
+
|
277
|
+
puts "$app_config['extensions'] : #{$app_config['extensions']}"
|
278
|
+
puts "$app_config['capabilities'] : #{$app_config['capabilities']}"
|
265
279
|
|
266
280
|
$hidden_app = $app_config["hidden_app"].nil?() ? "0" : $app_config["hidden_app"]
|
267
281
|
|
@@ -382,10 +396,12 @@ end
|
|
382
396
|
|
383
397
|
def init_extensions(startdir, dest)
|
384
398
|
extentries = []
|
399
|
+
nativelib = []
|
385
400
|
extlibs = []
|
386
|
-
extpaths = $app_config["extpaths"]
|
387
|
-
|
388
|
-
|
401
|
+
extpaths = $app_config["extpaths"]
|
402
|
+
|
403
|
+
puts 'init extensions'
|
404
|
+
$app_config["extensions"].each do |extname|
|
389
405
|
extpath = nil
|
390
406
|
extpaths.each do |p|
|
391
407
|
ep = File.join(p, extname)
|
@@ -393,28 +409,41 @@ def init_extensions(startdir, dest)
|
|
393
409
|
extpath = ep
|
394
410
|
break
|
395
411
|
end
|
396
|
-
end
|
412
|
+
end
|
397
413
|
|
398
414
|
if extpath.nil?
|
399
415
|
begin
|
400
416
|
$rhodes_extensions = nil
|
401
417
|
require extname
|
402
|
-
extpath = $rhodes_extensions[0] unless $rhodes_extensions.nil?
|
403
|
-
|
404
|
-
|
418
|
+
extpath = $rhodes_extensions[0] unless $rhodes_extensions.nil?
|
419
|
+
$app_config["extpaths"] << extpath
|
420
|
+
rescue Exception => e
|
421
|
+
puts "exception"
|
405
422
|
end
|
406
|
-
|
407
423
|
end
|
408
|
-
|
424
|
+
|
409
425
|
unless extpath.nil?
|
410
|
-
add_extension(extpath, dest)
|
426
|
+
add_extension(extpath, dest) unless dest.nil?
|
411
427
|
|
412
428
|
if $config["platform"] != "bb"
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
429
|
+
extyml = File.join(extpath, "ext.yml")
|
430
|
+
puts "extyml " + extyml
|
431
|
+
|
432
|
+
if File.file? extyml
|
433
|
+
extconf = Jake.config(File.open(extyml))
|
434
|
+
entry = extconf["entry"]
|
435
|
+
nlib = extconf["nativelibs"]
|
436
|
+
type = extconf["exttype"]
|
437
|
+
|
438
|
+
if nlib != nil
|
439
|
+
nlib.each do |libname|
|
440
|
+
nativelib << libname
|
441
|
+
end
|
442
|
+
end
|
443
|
+
|
444
|
+
extentries << entry unless entry.nil?
|
445
|
+
|
446
|
+
if type.to_s() != "nativelib"
|
418
447
|
libs = extconf["libraries"]
|
419
448
|
libs = [] unless libs.is_a? Array
|
420
449
|
if $config["platform"] == "wm" || $config["platform"] == "win32"
|
@@ -424,49 +453,57 @@ def init_extensions(startdir, dest)
|
|
424
453
|
end
|
425
454
|
extlibs += libs
|
426
455
|
end
|
456
|
+
end
|
427
457
|
end
|
428
458
|
end
|
429
|
-
|
430
459
|
end
|
431
|
-
|
460
|
+
|
432
461
|
exts = File.join($startdir, "platform", "shared", "ruby", "ext", "rho", "extensions.c")
|
433
|
-
|
462
|
+
puts "exts " + exts
|
463
|
+
|
434
464
|
if $config["platform"] != "bb"
|
435
|
-
|
465
|
+
exists = []
|
436
466
|
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
end
|
467
|
+
if ( File.exists?(exts) )
|
468
|
+
File.new(exts, "r").read.split("\n").each do |line|
|
469
|
+
next if line !~ /^\s*extern\s+void\s+([A-Za-z_][A-Za-z0-9_]*)/
|
470
|
+
exists << $1
|
442
471
|
end
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
472
|
+
end
|
473
|
+
|
474
|
+
#if (exists.sort! != extentries.sort! ) || (!File.exists?(exts))
|
475
|
+
File.open(exts, "w") do |f|
|
476
|
+
puts "MODIFY : #{exts}"
|
447
477
|
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
end
|
478
|
+
f.puts "// WARNING! THIS FILE IS GENERATED AUTOMATICALLY! DO NOT EDIT IT MANUALLY!"
|
479
|
+
#f.puts "// Generated #{Time.now.to_s}"
|
480
|
+
if $config["platform"] == "wm" || $config["platform"] == "win32"
|
481
|
+
# Add libraries through pragma
|
482
|
+
extlibs.each do |lib|
|
483
|
+
f.puts "#pragma comment(lib, \"#{lib}\")"
|
455
484
|
end
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
f.puts "void Init_Extensions(void) {"
|
460
|
-
extentries.each do |entry|
|
461
|
-
f.puts " #{entry}();"
|
485
|
+
|
486
|
+
nativelib.each do |lib|
|
487
|
+
f.puts "#pragma comment(lib, \"#{lib}\")"
|
462
488
|
end
|
463
|
-
f.puts "}"
|
464
489
|
end
|
490
|
+
|
491
|
+
extentries.each do |entry|
|
492
|
+
f.puts "extern void #{entry}(void);"
|
493
|
+
end
|
494
|
+
|
495
|
+
f.puts "void Init_Extensions(void) {"
|
496
|
+
extentries.each do |entry|
|
497
|
+
f.puts " #{entry}();"
|
498
|
+
end
|
499
|
+
f.puts "}"
|
465
500
|
end
|
501
|
+
#end
|
466
502
|
|
467
|
-
|
503
|
+
extlibs.each { |lib| add_linker_library(lib) }
|
504
|
+
nativelib.each { |lib| add_linker_library(lib) }
|
468
505
|
|
469
|
-
|
506
|
+
set_linker_flags
|
470
507
|
end
|
471
508
|
|
472
509
|
unless $app_config["constants"].nil?
|
@@ -480,13 +517,16 @@ def init_extensions(startdir, dest)
|
|
480
517
|
end
|
481
518
|
end
|
482
519
|
|
483
|
-
if $excludeextlib
|
520
|
+
if $excludeextlib and (not dest.nil?)
|
484
521
|
chdir dest
|
485
522
|
$excludeextlib.each {|e| Dir.glob(e).each {|f| rm f}}
|
486
523
|
end
|
524
|
+
|
487
525
|
end
|
488
526
|
|
489
527
|
def common_bundle_start(startdir, dest)
|
528
|
+
puts "common_bundle_start"
|
529
|
+
|
490
530
|
app = $app_path
|
491
531
|
rhodeslib = "lib/framework"
|
492
532
|
|
@@ -597,7 +637,7 @@ namespace "build" do
|
|
597
637
|
task :xruby do
|
598
638
|
#needs $config, $srcdir, $excludelib, $bindir
|
599
639
|
app = $app_path
|
600
|
-
|
640
|
+
jpath = $config["env"]["paths"]["java"]
|
601
641
|
startdir = pwd
|
602
642
|
dest = $srcdir
|
603
643
|
xruby = File.dirname(__FILE__) + '/res/build-tools/xruby-0.3.3.jar'
|
@@ -714,6 +754,72 @@ namespace "build" do
|
|
714
754
|
cp_r "platform/shared/db/res/db", $srcdir
|
715
755
|
end
|
716
756
|
|
757
|
+
task :upgrade_package do
|
758
|
+
|
759
|
+
$bindir = File.join($app_path, "bin")
|
760
|
+
$current_platform = 'empty'
|
761
|
+
$srcdir = File.join($bindir, "RhoBundle")
|
762
|
+
|
763
|
+
$targetdir = File.join($bindir, "target")
|
764
|
+
$excludelib = ['**/builtinME.rb','**/ServeME.rb','**/dateME.rb','**/rationalME.rb']
|
765
|
+
$tmpdir = File.join($bindir, "tmp")
|
766
|
+
$appname = $app_config["name"]
|
767
|
+
$appname = "Rhodes" if $appname.nil?
|
768
|
+
$vendor = $app_config["vendor"]
|
769
|
+
$vendor = "rhomobile" if $vendor.nil?
|
770
|
+
$vendor = $vendor.gsub(/^[^A-Za-z]/, '_').gsub(/[^A-Za-z0-9]/, '_').gsub(/_+/, '_').downcase
|
771
|
+
$appincdir = File.join $tmpdir, "include"
|
772
|
+
|
773
|
+
Rake::Task["config:common"].invoke
|
774
|
+
|
775
|
+
Rake::Task["build:bundle:noxruby"].invoke
|
776
|
+
|
777
|
+
new_zip_file = File.join($srcdir, "apps", "upgrade_bundle.zip")
|
778
|
+
|
779
|
+
if RUBY_PLATFORM =~ /(win|w)32$/
|
780
|
+
begin
|
781
|
+
|
782
|
+
require 'rubygems'
|
783
|
+
require 'zip/zip'
|
784
|
+
require 'find'
|
785
|
+
require 'fileutils'
|
786
|
+
include FileUtils
|
787
|
+
|
788
|
+
root = $srcdir
|
789
|
+
|
790
|
+
new_zip_file = File.join($srcdir, "upgrade_bundle.zip")
|
791
|
+
|
792
|
+
Zip::ZipFile.open(new_zip_file, Zip::ZipFile::CREATE)do |zipfile|
|
793
|
+
Find.find(root) do |path|
|
794
|
+
Find.prune if File.basename(path)[0] == ?.
|
795
|
+
dest = /apps\/(\w.*)/.match(path)
|
796
|
+
if dest
|
797
|
+
puts ' add file to zip : '+dest[1].to_s
|
798
|
+
zipfile.add(dest[1],path)
|
799
|
+
end
|
800
|
+
end
|
801
|
+
end
|
802
|
+
rescue
|
803
|
+
puts 'ERROR !'
|
804
|
+
puts 'Require "rubyzip" gem for make zip file !'
|
805
|
+
puts 'Install gem by "gem install rubyzip"'
|
806
|
+
end
|
807
|
+
else
|
808
|
+
chdir File.join($srcdir, "apps")
|
809
|
+
sh %{zip -r upgrade_bundle.zip .}
|
810
|
+
end
|
811
|
+
|
812
|
+
|
813
|
+
cp new_zip_file, $bindir
|
814
|
+
|
815
|
+
rm new_zip_file
|
816
|
+
|
817
|
+
|
818
|
+
|
819
|
+
end
|
820
|
+
|
821
|
+
|
822
|
+
|
717
823
|
task :noiseq do
|
718
824
|
app = $app_path
|
719
825
|
rhodeslib = File.dirname(__FILE__) + "/lib/framework"
|
@@ -929,6 +1035,7 @@ namespace "buildall" do
|
|
929
1035
|
end
|
930
1036
|
end
|
931
1037
|
|
1038
|
+
|
932
1039
|
task :gem do
|
933
1040
|
puts "Removing old gem"
|
934
1041
|
rm_rf Dir.glob("rhodes*.gem")
|
data/doc/build.txt
CHANGED
@@ -11,7 +11,7 @@ You should check to see that the required software in installed on your computer
|
|
11
11
|
|
12
12
|
## Setting Up Rhodes Source Code
|
13
13
|
|
14
|
-
If you planning to modify or [extend](extensions) Rhodes, you will need the Rhodes source code. It is distributed under MIT license. You don't need
|
14
|
+
If you are planning to modify or [extend](extensions) Rhodes, you will need the Rhodes source code. It is distributed under MIT license. You don't need the Rhodes source code if you are not planning to modify/extend Rhodes, and you should skip to the building section for your platform if this is the case.
|
15
15
|
|
16
16
|
Rhodes source code is available on github.com. You will need Git to get it. If you used [RhoStudio for Windows](http://rhomobile.com/rhostudio-windows) you probably already have Git installed on your system. Otherwise, load it from [here](http://git-scm.com).
|
17
17
|
|
@@ -38,7 +38,7 @@ Configure your environment by running the rhodes-setup script. This will attempt
|
|
38
38
|
:::term
|
39
39
|
$ rhodes-setup
|
40
40
|
|
41
|
-
You don't have to do it if you
|
41
|
+
You don't have to do it if you installed RhoStudio, but if you want to build a Rhodes gem, do the following:
|
42
42
|
|
43
43
|
:::term
|
44
44
|
$ rake gem
|
@@ -46,23 +46,22 @@ You don't have to do it if you cloned sources, but if you want to build a Rhodes
|
|
46
46
|
|
47
47
|
## Setting Up build.yml
|
48
48
|
|
49
|
-
By default application
|
50
|
-
|
51
|
-
If you wish to use special version of Rhodes or use Rhodes git sources :
|
49
|
+
By default, a Rhodes application uses the latest Rhodes gem installed on your computer. If you wish to use special version of Rhodes or use Rhodes git sources, check for this line in your application's build.yml file:
|
52
50
|
|
53
51
|
:::term
|
54
52
|
sdk: /Library/Ruby/Gems/1.8/gems/rhodes-3.0.2
|
55
|
-
|
56
|
-
OR for Rhodes sources:
|
57
|
-
|
58
|
-
sdk: ~/Projects/rhodes
|
59
53
|
|
60
|
-
|
54
|
+
Or for Rhodes sources:
|
61
55
|
|
62
56
|
:::term
|
63
|
-
|
57
|
+
sdk: ~/Projects/rhodes
|
64
58
|
|
65
|
-
|
59
|
+
After you install a new Rhodes gem(3.2.x over any version less then 3.2.x), you need to go to the command line, navigate to the directory of your Rhodes application, and run the following command:
|
60
|
+
|
61
|
+
:::term
|
62
|
+
$ migrate-rhodes-app
|
63
|
+
|
64
|
+
The migrate-rhodes-app will update the sdk line from your build.yml to use the latest Rhodes gem. It will also upgrade your application's Rakefile.
|
66
65
|
|
67
66
|
## Building a Rhodes Application for iPhone/iPad
|
68
67
|
|
@@ -72,15 +71,29 @@ iPhone/iPad versions of Rhodes apps must be built on Macintosh computers or on [
|
|
72
71
|
|
73
72
|
To build for iPhone/iPad using you will need the following software installed:
|
74
73
|
|
75
|
-
* Mac OS X 10.6 or greater
|
76
|
-
* Follow [All Platforms Prerequisites](#all-platforms-prerequisites)
|
77
|
-
* iPhone SDK. We recommend the latest stable version available from the [iPhone Dev Center](http://developer.apple.com/iphone/index.action)
|
74
|
+
* Mac OS X 10.6 or greater.
|
75
|
+
* Follow [All Platforms Prerequisites](#all-platforms-prerequisites).
|
76
|
+
* iPhone SDK. We recommend the latest stable version available from the [iPhone Dev Center](http://developer.apple.com/iphone/index.action).
|
77
|
+
|
78
|
+
### Building and Running Your iOS Application with RhoStudio
|
79
|
+
|
80
|
+
To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
|
81
|
+
* select Run->Run Configurations... from the main menu,
|
82
|
+
* or right-click on your project, and select Run As->Run Configurations from the popup menu.
|
83
|
+
|
84
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
|
85
|
+
|
86
|
+
The Run Configurations window appears.
|
87
|
+
|
88
|
+
To run on the iOS simulator, select iPhone in Platform, Simulator in Simulator type, and select iPhone or iPad. Then click the Run button.
|
89
|
+
|
90
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-ios.png"/>
|
78
91
|
|
79
92
|
### Build a Rhodes Application with Xcode
|
80
93
|
|
81
94
|
If you wish to run your Rhodes application on an iOS device, you need to build and run it using an Xcode project.
|
82
95
|
|
83
|
-
Tell Rhodes to build from your Rhodes application.
|
96
|
+
Tell Rhodes to build from your Rhodes application. Within your Rhodes project folder, run the following command:
|
84
97
|
|
85
98
|
:::term
|
86
99
|
$ rake switch_app
|
@@ -91,7 +104,7 @@ The switch_app command changes the rhobuild.yml in the Rhodes source code folder
|
|
91
104
|
env:
|
92
105
|
app: /Users/NameOfUser/Store
|
93
106
|
|
94
|
-
Note that the switch_app command is only used when you run a Rhodes application within an IDE, such as Xcode: you run switch_app for each Rhodes application that you run in Xcode. The switch_app command does not affect Rhodes applications that you build and run on the command line.
|
107
|
+
Note that the switch_app command is only used when you run a Rhodes application within an IDE, such as Xcode: you run switch_app for each Rhodes application that you run in Xcode. The switch_app command does not affect Rhodes applications that you build and run on the command line or within RhoStudio.
|
95
108
|
|
96
109
|
Now run the following command to tell Rhodes to set up the Xcode environment for your Rhodes application:
|
97
110
|
|
@@ -124,6 +137,16 @@ You can edit your Rhodes code for your Rhodes application in a text editor, save
|
|
124
137
|
|
125
138
|
The resulting application package (*.app) is located in your Rhodes source code folder under /platform/iphone/build/, in a folder named like [Debug/Release]-[iphoneos/iphonesimulator]/rhorunner.app.
|
126
139
|
|
140
|
+
### Building and run on old devices (before iPhone4/iPad)
|
141
|
+
|
142
|
+
From the XCode 4.2 Apple was removed default support of armv6 architecture. In this case there are two issues:
|
143
|
+
|
144
|
+
* Distributution build should include code for armv6 and armv7 both. Our projects already fixed for this require for Distribution build.
|
145
|
+
* If you want build/run/debug your application on devices before iPhone/iPad (for example on iPhone 3G), you should manually path all rhodes xcode projects and all xcode projects in native extensions used in your application for Architecture settings:
|
146
|
+
in each project modify [Build Settings]-[Architectures]-[Debug]/[Release]:
|
147
|
+
remove $(ARCHS_STANDARD_32_BIT)
|
148
|
+
add two architectures manually: "armv7" and "armv6"
|
149
|
+
|
127
150
|
### Building and Releasing on App Store
|
128
151
|
|
129
152
|
Once you have the application building with Xcode as described above, it is treated as any other iPhone application when it comes to [signing and distributing to the app store](http://developer.apple.com/iphone/appstore/).
|
@@ -231,54 +254,67 @@ Use <b>iTunes</b> for installing your application package (your_application_name
|
|
231
254
|
|
232
255
|
## Build for Android
|
233
256
|
|
234
|
-
###
|
257
|
+
### Setting Up the Android SDK and NDK
|
235
258
|
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
*
|
244
|
-
*
|
245
|
-
|
259
|
+
Check that your [OS is compatible with the Android SDK](http://developer.android.com/sdk/requirements.html).
|
260
|
+
|
261
|
+
Download the [Android SDK](http://developer.android.com/sdk/index.html), and unzip it to the location of your choice.
|
262
|
+
|
263
|
+
On Macintosh and Linux, navigate to and run <Android SDK>/tools/android. On Windows, navigate to and run <Android SDK>/SDK Setup.exe. The Android SDK and AVD Manager window appears. Then perform the following steps:
|
264
|
+
|
265
|
+
* Select Settings, then check "check `Force https://... sources to be fetched using http://".
|
266
|
+
* Select Available packages, expand the Android repository and Third Party add-ons, check the Android SDK Platform(s) and Google APIs of your choice, then click the "Add Add-on site" button to download them.
|
267
|
+
* Set up an AVD (Android Virtual Device) by clicking on Virtual Devices, and clicking the New button. More detailed instructions can be on the Google site for [Managing AVDs with AVD Manager](http://developer.android.com/guide/developing/devices/managing-avds.html).
|
268
|
+
|
269
|
+
Download and unzip the [Android NDK](http://developer.android.com/sdk/ndk/index.html) to the location of your choice.
|
246
270
|
|
247
|
-
In
|
271
|
+
In RhoStudio -> Preferences on the Macintosh or Winndows -> Preferences on Windows, open Rhomobile->Android and set the paths to your Android SDK and NDK installations.
|
248
272
|
|
249
|
-
|
273
|
+
<img src="http://rhodocs.s3.amazonaws.com/rhostudio-tutorial/preferences-android-sdk.png"/>
|
274
|
+
|
275
|
+
If you are not using RhoStudio, run rhodes-setup from the command line and set the paths to the Android SDK and NDK installations.
|
276
|
+
|
277
|
+
### Setting up the Android Maps API
|
278
|
+
|
279
|
+
In case you are planning to work with native geo mapping (the MapView interface), you must do two things:
|
280
|
+
|
281
|
+
* Retrieve the Android Maps API key from Google. Follow these [instructions](http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html) to get it. When key received, put it in your application's `build.yml` or share it across all your applications by adding it to `rhobuild.yml`. Note that the `apikey` value must match a certificate used to sign an application (the key is different for debug and production signed build and debug key cannot be shared between different build computers).
|
250
282
|
|
251
283
|
android:
|
252
284
|
apikey: "GOOGLE-API-KEY-FOR-ANDROID"
|
253
285
|
|
254
|
-
* Enable 'mapping' in your application's `build.yml` (or in `<rhodes-root>/rhobuild.yml`)
|
286
|
+
* Enable 'mapping' in your application's `build.yml` (or in `<rhodes-root>/rhobuild.yml`). In RhoStudio, you can double-click on your application's build.yml and edit from the text editor; otherwise, you can edit rhobuil.yml or build.yml from another text editor.
|
255
287
|
|
256
288
|
android:
|
257
289
|
mapping: yes
|
258
290
|
|
259
|
-
|
260
|
-
|
291
|
+
### Including CSS Files
|
261
292
|
|
262
|
-
|
293
|
+
You should check your application to change how you include css files in your html pages.
|
263
294
|
|
264
|
-
For example, you will need to replace
|
295
|
+
For example, you will need to replace this:
|
265
296
|
|
266
297
|
<style type="text/css" media="screen">
|
267
298
|
@import "/public/js/iui/iui.css"; @import "/public/css/rho.css";
|
268
299
|
</style>
|
269
300
|
|
270
|
-
with
|
301
|
+
with this:
|
271
302
|
|
272
303
|
<link rel="stylesheet" href="public/js/iui/iui.css" type="text/css">
|
273
304
|
<link rel="stylesheet" href="public/css/rho.css" type="text/css">
|
274
305
|
|
275
|
-
Otherwise your css files will not be loaded in Android 1.5 (and higher)
|
306
|
+
Otherwise your css files will not be loaded in Android 1.5 (and higher).
|
276
307
|
|
277
308
|
### Device capabilities settings in build.yml
|
278
309
|
|
279
|
-
|
280
|
-
|
281
|
-
|
310
|
+
On Android, you must specify your device capabilities the your application will use. By default, these capabiliteis are NOT enabled.
|
311
|
+
|
312
|
+
In RhoStudio, you can double-click on your application's build.yml file, then click the Rhobuild setting tab, then click the Capabilities: Add button. You will see a list of capabilities you can check to activate for your application.
|
313
|
+
|
314
|
+
<img src="http://rhodocs.s3.amazonaws.com/rhostudio-tutorial/select-capabilities.png"/>
|
315
|
+
|
316
|
+
You can also edit the build.yml file directly with a text editor. Here is a list of capabilites you can add to the capabilities section in your application build.yml file.
|
317
|
+
|
282
318
|
audio
|
283
319
|
camera
|
284
320
|
gps
|
@@ -292,87 +328,125 @@ List of capabilities related to changes in AndroidManifest - add or remove this
|
|
292
328
|
sdcard
|
293
329
|
push
|
294
330
|
|
295
|
-
### Set up minimal
|
331
|
+
### Set up minimal Android SDK API level
|
296
332
|
|
297
333
|
The minimal API level supported by Rhodes is 4 (Android 1.6)
|
298
|
-
|
334
|
+
You can set a greater minimal API level in build.yml. For example, the following entry will restrict installing your application on any Android OS prior to 3.0:
|
299
335
|
|
300
336
|
android:
|
301
337
|
minSDK: 11
|
302
338
|
|
303
|
-
### Building
|
339
|
+
### Building and Running Your Android Application with RhoStudio
|
340
|
+
|
341
|
+
To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
|
342
|
+
* select Run->Run Configurations... from the main menu,
|
343
|
+
* or right-click on your project, and select Run As->Run Configurations from the popup menu.
|
344
|
+
|
345
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
|
346
|
+
|
347
|
+
The Run Configurations window appears.
|
348
|
+
|
349
|
+
#### Running on the Android Simulator with RhoStudio
|
350
|
+
|
351
|
+
To run on the Android simulator, select Android in Platform, Simulator in Simulator type, and enter the name of the AVD in AVD name. Then click the Run button.
|
352
|
+
|
353
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-avd.png"/>
|
354
|
+
|
355
|
+
You can get a list of the AVD names by running the SDK setup: on Macintosh and Linux, navigate to and run <Android SDK>/tools/android. On Windows, navigate to and run <Android SDK>/SDK Setup.exe. Then click Virtual devices.
|
356
|
+
|
357
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/android-virtual-devices.png"/>
|
358
|
+
|
359
|
+
#### Running on an Android Device with RhoStudio
|
360
|
+
|
361
|
+
To run on an Android device, first set up your device as shown in the Android documentation for [Using Hardware Devices](http://developer.android.com/guide/developing/device.html).
|
362
|
+
|
363
|
+
Then connect your Android device to your computer with a USB cable.
|
304
364
|
|
305
|
-
|
365
|
+
In the Run Configurations window, select Android in Platform, and Device in Simulator type.
|
306
366
|
|
307
|
-
|
367
|
+
#### Reading the Log File with RhoStudio
|
368
|
+
|
369
|
+
After you run your applciation in RhoStudio, your application log file, rholog.txt, is stored in your application directory. You can open and read rholog.txt in RhoStudio by double-clicking on it in the Project Explorer.
|
370
|
+
|
371
|
+
### Building and Running Your Android Application from the Command Line
|
372
|
+
|
373
|
+
From the command line, navigate to your application directory.
|
374
|
+
|
375
|
+
To run your application in the Android emulator, run the following command:
|
308
376
|
|
309
377
|
:::term
|
310
378
|
$ rake run:android
|
311
379
|
|
312
|
-
|
380
|
+
You can adjust the settings of the Android emulator from your application's build.yml file. For example, to specify the platform version number and the emulator AVD name:
|
313
381
|
|
314
382
|
android:
|
315
383
|
version: 2.1
|
316
|
-
|
317
|
-
You can also specify emulator AVD name (see 'Android SDK and AVD Manager').
|
318
|
-
|
319
|
-
android:
|
320
384
|
emulator: myDeviceEmulator20
|
321
385
|
|
322
|
-
|
386
|
+
You can also disable the Android title in the application and set the orientation to portrait (or landscape):
|
323
387
|
|
324
388
|
android:
|
325
389
|
android_title: 0
|
326
|
-
|
327
|
-
Setup fixed screen orientation for application (writed to Manifest, possible values: "portrait", "landscape") :
|
328
|
-
|
329
|
-
android:
|
330
390
|
orientation: portrait
|
331
391
|
|
332
|
-
If the rake command gets stuck you can kill the command window, open another window, run:
|
392
|
+
If the rake command gets stuck, you can kill the command window, open another window, and run:
|
333
393
|
|
334
394
|
:::term
|
335
395
|
$ adb start-server
|
336
396
|
$ rake run:android
|
337
397
|
|
338
|
-
|
339
398
|
** NOTE: If you didn't run your Android simulator yet or don't have AVD configuration set, you will be asked a few questions about emulator configuration. You should answer "yes" for most questions or use default answers. As a result new AVD configuration will be created. **
|
340
399
|
|
341
|
-
To uninstall application from emulator, run:
|
400
|
+
To uninstall your application from the emulator, run:
|
342
401
|
|
343
402
|
:::term
|
344
403
|
$ rake uninstall:android
|
345
404
|
|
346
|
-
|
347
|
-
|
348
|
-
If you have an Android device, you can develop and debug your Android applications just as usual. Launching your apps on a device works just the same as on the emulator, but there are a few things to do before you can start. Please check corresponding [Android documentation](http://developer.android.com/guide/developing/device.html).
|
405
|
+
To run on an Android device, first set up your device as shown in the Android documentation for [Using Hardware Devices](http://developer.android.com/guide/developing/device.html).
|
349
406
|
|
350
|
-
You can verify that your device is connected by executing:
|
407
|
+
Connect your Android to your computer with a USB cable. You can verify that your device is connected by executing:
|
351
408
|
|
352
409
|
:::term
|
353
410
|
$ adb devices
|
354
411
|
|
355
|
-
If connected, you'll see the device name listed.
|
356
|
-
|
357
|
-
If your machine doesn't "see" the device as connected, try killing the adb process first:
|
412
|
+
If connected, you'll see the device name listed. If your computer doesn't see the device, try killing the adb process first:
|
358
413
|
|
359
414
|
:::term
|
360
415
|
$ adb kill-server
|
361
416
|
$ adb install <filename>.apk
|
362
417
|
|
363
|
-
After you have your device connected,
|
418
|
+
After you have your device connected, navigate to your application directory and run:
|
364
419
|
|
365
420
|
:::term
|
366
421
|
$ rake run:android:device
|
367
422
|
|
368
|
-
This will build your application and sign it with auto-generated self-signed certificate
|
423
|
+
This will build your application and sign it with auto-generated self-signed certificate.
|
369
424
|
|
370
|
-
To uninstall from the device, run:
|
425
|
+
To uninstall your application from the device, run:
|
371
426
|
|
372
427
|
:::term
|
373
428
|
$ rake uninstall:android:device
|
374
429
|
|
375
|
-
|
430
|
+
#### Getting the Application Log from Device or Emulator
|
431
|
+
|
432
|
+
You can get the application log from the device or the emulator. From the command line, navigate to your application folder or to the root of your rhodes source tree (where the rhobuild.yml file is located). Then run this command:
|
433
|
+
|
434
|
+
:::term
|
435
|
+
$ rake device:android:getlog
|
436
|
+
|
437
|
+
Or
|
438
|
+
:::term
|
439
|
+
$ rake emulator:android:getlog
|
440
|
+
|
441
|
+
The application log will be stored in your application directory. The file will be named RhoLog.txt.
|
442
|
+
|
443
|
+
To see all the emulator messages, run `adb logcat` and start the application in the emulator.
|
444
|
+
|
445
|
+
To see all the device messages, run `adb -d logcat` and start the application on your device.
|
446
|
+
|
447
|
+
### Building an Android Production Version
|
448
|
+
|
449
|
+
To build a production version of your application, edit your application's build.yml as below:
|
376
450
|
|
377
451
|
android:
|
378
452
|
production:
|
@@ -380,39 +454,41 @@ If you want to build production version, edit your application's build.yml as be
|
|
380
454
|
password: "password-of-the-certificate"
|
381
455
|
alias: "keystore.alias"
|
382
456
|
|
383
|
-
This will use specified certificate to sign application. If certificate is not found, it will be auto-generated
|
457
|
+
This will use the specified certificate to sign your application. If the certificate is not found, it will be auto-generated, and you'll be prompted with several questions like your name, organization etc. The path to the certificate may be absolute or relative to your app directory. If you don't want to use an auto-generated certificate, refer to the [these instructions](http://developer.android.com/guide/publishing/app-signing.html) on how to create a certificate manually.
|
384
458
|
|
385
|
-
|
459
|
+
Once your certificate is set up, you can run:
|
386
460
|
|
387
461
|
:::term
|
388
462
|
$ rake device:android:production
|
389
463
|
|
390
|
-
|
464
|
+
The signed APK will be located in `<rhodes-app-dir>/bin/target`. To install the application on the device run:
|
391
465
|
|
392
466
|
:::term
|
393
467
|
$ adb -d install -r <rhodes-app-dir>/bin/target/<app-name>_signed.apk
|
394
468
|
|
395
469
|
### Building app in Eclipse
|
396
470
|
|
397
|
-
|
471
|
+
On Macintosh and WIndows computers, you can create Rhodes apps within RhoStudio. However, on Linux installations, you can use Eclipse, since RhoStudio is not available for Linux.
|
472
|
+
|
473
|
+
Please note: It is only Google API target (with Google mapping API) supported for Eclipse.
|
398
474
|
|
399
475
|
Create a new workspace in the following directory: `<Rhodes>/platform/android`
|
400
476
|
|
401
|
-
|
477
|
+
In Eclipse, open Window > Preferences.
|
402
478
|
|
403
|
-
Click on Android node in the tree and specify file path to the installed Android SDK (
|
479
|
+
Click on Android node in the tree and specify the file path to the installed Android SDK (for example: `E:\android\android-sdk`).
|
404
480
|
|
405
|
-
Import all projects from the
|
481
|
+
Import all projects from the directory for your new workspace: `<Rhodes>/platform/android`
|
406
482
|
|
407
|
-
If you have set the option to build sources automatically
|
483
|
+
If you have set the option to build sources automatically, your project will be compiled just after the import.
|
408
484
|
|
409
|
-
Select Properties from the Rhodes project context menu and select one of latest Google API
|
485
|
+
Select Properties from the Rhodes project context menu and select one of the latest Google API targets for Android.
|
410
486
|
|
411
|
-
Check bin directory. You should see Rhodes.apk file created. It will be signed with debug key provided with SDK.
|
487
|
+
Check the bin directory. You should see the Rhodes.apk file that was created. It will be signed with the debug key provided with SDK.
|
412
488
|
|
413
|
-
Now you are ready to install your application on device and/or emulator.
|
489
|
+
Now you are ready to install your application on your device and/or emulator.
|
414
490
|
|
415
|
-
In case of troubles in Eclipse while setting up the Android SDK and target try "Rhodes project context menu" > "Android Tools" > "Fix Project Properties".
|
491
|
+
In case of troubles in Eclipse while setting up the Android SDK and target, try "Rhodes project context menu" > "Android Tools" > "Fix Project Properties".
|
416
492
|
|
417
493
|
It is possible your application has stopped unexpectedly just after the first build. In this case try to copy autogenerated java source files from the application folder <app>/bin/tmp to the Rhodes project.
|
418
494
|
|
@@ -429,9 +505,9 @@ Or
|
|
429
505
|
|
430
506
|
Application log will be pulled from device/emulator and stored in your application directory with name RhoLog.txt.
|
431
507
|
|
432
|
-
To see all emulator messages run 'adb logcat' and start application on emulator
|
508
|
+
To see all emulator messages, run 'adb logcat' and start application on emulator.
|
433
509
|
|
434
|
-
To see all device messages run 'adb -d logcat' and start application on device
|
510
|
+
To see all device messages, run 'adb -d logcat' and start application on device.
|
435
511
|
|
436
512
|
## Build for BlackBerry
|
437
513
|
|
@@ -447,6 +523,8 @@ Blackberry SDK for Mac doesn't come with simulators so far. So for now we would
|
|
447
523
|
5.0:
|
448
524
|
jde: <jde_5.0>/components
|
449
525
|
sim: 9550
|
526
|
+
#sim_path is optional. It defines path for standalone simulator
|
527
|
+
sim_path: <jde_5.0>/components/simulator
|
450
528
|
mds: <jde_5.0>/components/MDS
|
451
529
|
|
452
530
|
* Read about Blackberry Browser limitations of CSS, HTML and JavaScript. Get relevant documentation from [here](http://na.blackberry.com/eng/support/docs/subcategories/?userType=21&category=BlackBerry+Browser).
|
@@ -683,8 +761,21 @@ Note that Symbian versions of your Rhodes app must be built in a Windows environ
|
|
683
761
|
If you want to build for Symbian device you have to install QT and QT Mobility for Symbian on your device.
|
684
762
|
You can find installation files in QT SDK folder like below:
|
685
763
|
|
686
|
-
|
687
|
-
|
764
|
+
For Symbian 9.4
|
765
|
+
|
766
|
+
QT - C:/QtSDK/Symbian/sis/Symbian1/Qt/4.7.3/qt.sis
|
767
|
+
(install it only on disc C:, before install pls close all opened applications)
|
768
|
+
|
769
|
+
QT WebKit - C:/QtSDK/Symbian/sis/Symbian1/Qt/4.7.3/qtwebkit.sis
|
770
|
+
QT Mobility - C:/QtSDK/Symbian/sis/Symbian1/QtMobility/1.1.3/qtmobility.sis
|
771
|
+
|
772
|
+
For Symbian 9.5
|
773
|
+
|
774
|
+
QT - C:/QtSDK/Symbian/sis/Symbian3/Qt/4.7.3/qt.sis
|
775
|
+
(install it only on disc C:, before install pls close all opened applications)
|
776
|
+
|
777
|
+
QT WebKit - C:/QtSDK/Symbian/sis/Symbian3/Qt/4.7.3/qtwebkit.sis
|
778
|
+
QT Mobility - C:/QtSDK/Symbian/sis/Symbian3/QtMobility/1.1.3/qtmobility.sis
|
688
779
|
|
689
780
|
Then open file - C:/QtSDK/Symbian/SDKs/Symbian1Qt473/epoc32/include/cntdb.h and replace below two strings:
|
690
781
|
CContactConverter& CContactDatabase::ConverterL(const TUid& aFormat);
|
@@ -731,45 +822,108 @@ NOTE: If You want to use your own UID for application you can redefine it in bui
|
|
731
822
|
|
732
823
|
## Build for Windows Mobile
|
733
824
|
|
734
|
-
Note that Windows Mobile versions of your Rhodes
|
735
|
-
|
825
|
+
Note that Windows Mobile versions of your Rhodes application must be built in a Windows environment.
|
826
|
+
|
736
827
|
### Prerequisites
|
737
828
|
|
738
|
-
|
829
|
+
Follow [All Platforms Prerequisites](#all-platforms-prerequisites).
|
830
|
+
|
831
|
+
Make sure you have installed the following software.
|
832
|
+
|
739
833
|
* .NET Compact Framework
|
740
834
|
* Windows Mobile 6 Professional SDK(s)
|
741
835
|
* Microsoft Active Sync 4.5 for Windows XP; Windows Mobile Device Center for Windows Vista or higher
|
742
836
|
* Microsoft Device Emulator 3.0 for Windows Vista or higher
|
743
837
|
* Visual Studio 2005 Service Pack 1 installed or Visual Studio 2008.
|
744
|
-
* [7-zip](http://www.7-zip.org/)
|
838
|
+
* Software for unzipping a zip file, such as [7-zip](http://www.7-zip.org/)
|
745
839
|
|
746
840
|
NOTE: It is a good idea to install Windows Mobile 6 Professional last, since it needs to be installed after Visual Studio, and since the Windows Mobile 6 Professional install process will tell you if you forgot to install any of the other prerequisites.
|
747
841
|
|
748
842
|
### Allow DMA Connections
|
749
843
|
|
750
|
-
On Windows XP, open ActiveSync
|
844
|
+
On Windows XP, open ActiveSync and open the File menu; on Windows Vista and above, open Windows Mobile Device Center and click Mobile Device Settings.
|
751
845
|
|
752
846
|
Select Connection Settings, then select the checkbox "Allow connections to one of the following."
|
753
847
|
|
754
848
|
Select "DMA" from the list box. DMA Connection is required to work with the Windows Mobile emulator.
|
755
849
|
|
756
|
-
###
|
850
|
+
### Debugging on Windows Mobile devices connected to PC
|
851
|
+
|
852
|
+
On Windows Vista and Windows 7 the Windows Mobile Device Center (WMDC) may start automatically upon connection of the WM device.
|
853
|
+
If it is not happening, then you're lucky and most probably you wouldn't need to do anything to be able to run and debug rhodes application on the device
|
854
|
+
while it is connected to PC.
|
855
|
+
|
856
|
+
The problem is that WMDC locks the file system of the mobile device and prevents rhodes application from running
|
857
|
+
(because the application usually writes data to files located within the application folder).
|
858
|
+
So if WMDC is starting when you connect the device to PC, you need to shutdown WMDC completely to be able to run rhodes application
|
859
|
+
on Windows Mobile device.
|
860
|
+
|
861
|
+
To shutdown WMDC open the Task Manager, find wmdc.exe (Windows Device Mobile Center) and
|
862
|
+
WmdHost.exe (Windows Mobile Device Center Sync Host) processes and end them.
|
863
|
+
|
864
|
+
Then disconnect the device and connect it again to PC -- WMDC should not appear this time.
|
865
|
+
Now you may run and debug rhodes applications on Windows Mobile devices connected to PC from both RhoStudio and command line.
|
757
866
|
|
758
|
-
Add
|
867
|
+
### Add Paths to Cab Wizard and Visual Studio
|
868
|
+
|
869
|
+
In RhoStudio Windows -> Preferences, right-click on Rhomobile->Windows Mobile to show the rhobuild.yml preferences. Check that the Cab wizard path (which is contained in your Windows Mobile 6 SDK program installation) is correct.
|
870
|
+
|
871
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/preferences-windows-mobile.png"/>
|
872
|
+
|
873
|
+
Also check that the vcbuild path is shown in the rhobuild.yml file. The rhobuild.yml file is located in the Rhodes folder (example location: `C:/RhoStudio/ruby/lib/ruby/gems/1.8/gems/rhodes-3.1.1`).
|
759
874
|
|
760
875
|
env:
|
761
876
|
paths:
|
762
|
-
vcbuild:
|
763
|
-
cabwiz:
|
877
|
+
vcbuild: C:/Program Files/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe
|
878
|
+
cabwiz: C:/Program Files/Windows Mobile 6 SDK/Tools/CabWiz
|
764
879
|
|
765
880
|
On 64-bit installations:
|
766
881
|
|
767
882
|
env:
|
768
883
|
paths:
|
769
|
-
vcbuild:
|
770
|
-
cabwiz:
|
884
|
+
vcbuild: C:/Program Files (x86)/Microsoft Visual Studio 8/VC/vcpackages/vcbuild.exe
|
885
|
+
cabwiz: C:/Program Files (x86)/Windows Mobile 6 SDK/Tools/CabWiz
|
886
|
+
|
887
|
+
### Setup target SDK and emulator
|
888
|
+
By default 'Windows Mobile 6 Professional SDK (ARMV4I)' SDK and "Windows Mobile 6 Professional Emulator" are used. To change edit build.yml:
|
889
|
+
|
890
|
+
wm:
|
891
|
+
sdk: <target_sdk>
|
892
|
+
emulator: <target_emulator>
|
893
|
+
|
894
|
+
* 'target_sdk' may be: "MC3000c50b (ARMV4I)" - for Motorola CE devices, "Windows Mobile 6.5.3 Professional DTK (ARMV4I)" for latest Windows Mobile SDK.
|
895
|
+
* 'target_emulator' may be: "Windows Mobile 6.5.3 Professional VGA Emulator" for VGA emulator , or any other installed Windows Mobile emulator
|
896
|
+
|
897
|
+
### Building and Running Your Windows Mobile Application with RhoStudio
|
898
|
+
|
899
|
+
To start the build process, create a Run Configuration: select your project in the Project Explorer, and either:
|
900
|
+
* select Run->Run Configurations... from the main menu,
|
901
|
+
* or right-click on your project, and select Run As->Run Configurations from the popup menu.
|
902
|
+
|
903
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-menu.png"/>
|
904
|
+
|
905
|
+
The Run Configurations window appears.
|
906
|
+
|
907
|
+
#### Running on the Windows Mobile Simulator in RhoStudio
|
908
|
+
|
909
|
+
To run on the Windows Mobile simulator, select Windows Mobile in Platform and Simulator in Simulator type. Then click the Run button.
|
910
|
+
|
911
|
+
<img src="http://rhodocs.s3.amazonaws.com/build-rhodes-app/run-configurations-wm.png"/>
|
771
912
|
|
772
|
-
|
913
|
+
#### Running on a Windows Mobile Device in RhoStudio
|
914
|
+
|
915
|
+
To run on a Windows Mobile device, connect your device to your computer with a USB cable.
|
916
|
+
|
917
|
+
In the Run Configurations window, select Windows Mobile in Platform, and Device in Simulator type.
|
918
|
+
|
919
|
+
### Build and Run from the Command Line
|
920
|
+
|
921
|
+
On computers without RhoStudio, you can build and run from the command line.
|
922
|
+
|
923
|
+
Navigate to your Rhodes application directory. To build and run application on emulator, run:
|
924
|
+
|
925
|
+
:::term
|
926
|
+
$ rake run:wm
|
773
927
|
|
774
928
|
To build cab-file, install it, and run application on emulator, run:
|
775
929
|
|
@@ -778,10 +932,15 @@ To build cab-file, install it, and run application on emulator, run:
|
|
778
932
|
|
779
933
|
Before you install the application on your Windows Mobile device, first connect your device via USB cable. Then check that your device is connected with ActiveSync on Windows XP or with Windows Mobile Device Center on Windows Vista or above.
|
780
934
|
|
935
|
+
Navigate to your Rhodes application directory. To build and run application on device, run:
|
936
|
+
|
937
|
+
:::term
|
938
|
+
$ rake run:wm:device
|
939
|
+
|
781
940
|
To build cab-file, install it, and run application on device, run:
|
782
941
|
|
783
|
-
:::term
|
784
|
-
$ rake run:wm:device:cab
|
942
|
+
:::term
|
943
|
+
$ rake run:wm:device:cab
|
785
944
|
|
786
945
|
After the build process completes, the device will ask you to install the app. Disconnect the USB cable from the device before you install.
|
787
946
|
|
@@ -805,11 +964,11 @@ You can use rake tasks to deploy the application. See the previous section, 'Bui
|
|
805
964
|
|
806
965
|
Manually copy the .cab file to the device. For example, you can use the device File Explorer to display the .cab file that is on the computer. Click on that .cab file and the installation process will be started; after it is finished, you should see the app icon on your device in Programs.
|
807
966
|
|
808
|
-
### Build from IDE
|
967
|
+
### Build from Visual Studio IDE
|
809
968
|
|
810
|
-
Checkout the rhodes source code from github (you have this source code already if you installed
|
969
|
+
Checkout the rhodes source code from github (you have this source code already if you installed RhoStudio).
|
811
970
|
|
812
|
-
Open `<source-code-root>\platform\wm\rhodes.sln` in Visual Studio (example location for <source-code-root>: `C:/
|
971
|
+
Open `<source-code-root>\platform\wm\rhodes.sln` in Visual Studio (example location for <source-code-root>: `C:/RhoStudio/ruby/lib/ruby/gems/1.8/gems/rhodes-3.1.1`).
|
813
972
|
|
814
973
|
In Visual Studio, select Windows Mobile 6 Professional and build Release configuration.
|
815
974
|
|