rhodes 3.3.1 → 3.3.2.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (157) hide show
  1. data/CHANGELOG +9 -2
  2. data/Manifest.txt +20 -0
  3. data/Rakefile +2 -1
  4. data/doc/build.txt +9 -3
  5. data/doc/configuration.txt +5 -1
  6. data/doc/device-caps.txt +112 -27
  7. data/doc/extensions.txt +0 -51
  8. data/doc/generator.txt +6 -0
  9. data/doc/rhom.txt +3 -0
  10. data/doc/simulator.txt +57 -17
  11. data/doc/ui.txt +24 -27
  12. data/installer/RHOELEMENTS-EULA.txt +295 -0
  13. data/installer/Rakefile +75 -49
  14. data/installer/rhostudio-moto.nsi +534 -0
  15. data/installer/rhostudio.nsi +13 -4
  16. data/lib/extensions/barcode/ext/barcode/platform/iphone/Classes/barcode.m +3 -0
  17. data/lib/framework/rho/rhoapplication.rb +4 -0
  18. data/lib/framework/rho/rhoevent.rb +2 -3
  19. data/lib/framework/rho/rhoevent_c.rb +2 -2
  20. data/lib/framework/rho/rhofsconnector.rb +24 -2
  21. data/lib/framework/rhodes.rb +1 -1
  22. data/lib/framework/version.rb +1 -1
  23. data/lib/rhodes.rb +1 -1
  24. data/platform/android/Rhodes/AndroidManifest.xml +3 -3
  25. data/platform/android/Rhodes/gen/com/rhomobile/rhodes/R.java +164 -90
  26. data/platform/android/Rhodes/jni/src/signature.cpp +13 -3
  27. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhoCryptImpl.java +76 -34
  28. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +3 -4
  29. data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +1 -1
  30. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SplashScreen.java +10 -2
  31. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +0 -3
  32. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +6 -5
  33. data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +0 -1
  34. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/ImageCapture.java +7 -1
  35. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/Signature.java +46 -6
  36. data/platform/android/Rhodes/src/com/rhomobile/rhodes/signature/SignatureView.java +29 -1
  37. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/ChromeClientOld.java +2 -0
  38. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/GoogleWebView.java +4 -0
  39. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebSettingsOld.java +10 -2
  40. data/platform/android/Rhodes/src/com/rhomobile/rhodes/webview/RhoWebViewClient.java +3 -2
  41. data/platform/android/build/android.rake +6 -27
  42. data/platform/android/build/androidcommon.rb +1 -1
  43. data/platform/bb/rhodes/src/com/rho/rubyext/GeoLocation.java +26 -0
  44. data/platform/iphone/Classes/AppManager/AppManager.h +1 -0
  45. data/platform/iphone/Classes/AppManager/AppManager.m +70 -12
  46. data/platform/iphone/Classes/Camera/PickImageDelegate.m +1 -1
  47. data/platform/iphone/Classes/Event/Event.m +38 -3
  48. data/platform/iphone/Classes/Rhodes.m +3 -2
  49. data/platform/iphone/Classes/Signature/SignatureDelegate.m +1 -1
  50. data/platform/iphone/Info.plist +1 -1
  51. data/platform/iphone/rbuild/iphone.rake +8 -8
  52. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtCore.framework/Versions/4/QtCore +0 -0
  53. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtGui.framework/Versions/4/QtGui +0 -0
  54. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtNetwork.framework/Versions/4/QtNetwork +0 -0
  55. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/QtWebKit.framework/Versions/4/QtWebKit +0 -0
  56. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Frameworks/phonon.framework/Versions/4/phonon +0 -0
  57. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/Info.plist +1 -1
  58. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
  59. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib +0 -0
  60. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqcorewlanbearer.dylib +0 -0
  61. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/bearer/libqgenericbearer.dylib +0 -0
  62. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqcncodecs.dylib +0 -0
  63. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqjpcodecs.dylib +0 -0
  64. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqkrcodecs.dylib +0 -0
  65. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/codecs/libqtwcodecs.dylib +0 -0
  66. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/graphicssystems/libqtracegraphicssystem.dylib +0 -0
  67. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqgif.dylib +0 -0
  68. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqico.dylib +0 -0
  69. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqjpeg.dylib +0 -0
  70. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqmng.dylib +0 -0
  71. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/imageformats/libqtiff.dylib +0 -0
  72. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/phonon_backend/libphonon_qt7.dylib +0 -0
  73. data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/PlugIns/qmltooling/libqmldbg_tcp.dylib +0 -0
  74. data/platform/osx/bin/RhoSimulator/RhoSimulatorMac.zip +0 -0
  75. data/platform/osx/build/osx.rake +1 -1
  76. data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +1 -1
  77. data/platform/shared/common/RhoConf.cpp +15 -6
  78. data/platform/shared/common/RhoConf.h +6 -1
  79. data/platform/shared/common/RhodesApp.cpp +19 -6
  80. data/platform/shared/common/RhodesApp.h +4 -2
  81. data/platform/shared/common/RhodesAppBase.cpp +18 -10
  82. data/platform/shared/common/RhodesAppBase.h +6 -3
  83. data/platform/shared/common/map/GeocodingMapEngine.h +2 -2
  84. data/platform/shared/logging/RhoLogConf.cpp +14 -8
  85. data/platform/shared/logging/RhoLogConf.h +1 -0
  86. data/platform/shared/net/HttpServer.cpp +15 -3
  87. data/platform/shared/net/HttpServer.h +2 -1
  88. data/platform/shared/qt/curl/curl.pro +1 -1
  89. data/platform/shared/qt/rhodes/QtMainWindow.h +1 -1
  90. data/platform/shared/qt/rhodes/impl/MainWindowImpl.cpp +2 -2
  91. data/platform/shared/qt/rhodes/main.cpp +2 -1
  92. data/platform/shared/ruby/ext/rho/rhoruby.c +1 -0
  93. data/platform/shared/ruby/ext/rho/rhosupport.c +11 -1
  94. data/platform/shared/sync/SyncNotify.cpp +1 -2
  95. data/platform/shared/sync/SyncNotify.h +2 -2
  96. data/platform/shared/sync/SyncThread.cpp +27 -12
  97. data/platform/shared/sync/SyncThread.h +2 -0
  98. data/platform/shared/unzip/unzip.cpp +3 -2
  99. data/platform/win32/RhoSimulator/Microsoft.VC80.CRT.manifest +8 -0
  100. data/platform/win32/RhoSimulator/Microsoft.VC80.OpenMP.manifest +7 -0
  101. data/platform/win32/RhoSimulator/QtCore4.dll +0 -0
  102. data/platform/win32/RhoSimulator/QtGui4.dll +0 -0
  103. data/platform/win32/RhoSimulator/QtNetwork4.dll +0 -0
  104. data/platform/win32/RhoSimulator/QtWebKit4.dll +0 -0
  105. data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
  106. data/platform/win32/RhoSimulator/imageformats/qgif4.dll +0 -0
  107. data/platform/win32/RhoSimulator/imageformats/qico4.dll +0 -0
  108. data/platform/win32/RhoSimulator/imageformats/qjpeg4.dll +0 -0
  109. data/platform/win32/RhoSimulator/imageformats/qmng4.dll +0 -0
  110. data/platform/win32/RhoSimulator/imageformats/qsvg4.dll +0 -0
  111. data/platform/win32/RhoSimulator/imageformats/qtiff4.dll +0 -0
  112. data/platform/win32/RhoSimulator/libeay32.dll +0 -0
  113. data/platform/win32/RhoSimulator/msvcm80.dll +0 -0
  114. data/platform/win32/RhoSimulator/msvcp80.dll +0 -0
  115. data/platform/win32/RhoSimulator/msvcr80.dll +0 -0
  116. data/platform/win32/RhoSimulator/ssleay32.dll +0 -0
  117. data/platform/win32/RhoSimulator/vcomp.dll +0 -0
  118. data/platform/wm/build/rhodes.nsi +316 -0
  119. data/platform/wm/build/wm.rake +57 -10
  120. data/platform/wm/rhodes/Rhodes.cpp +2 -1
  121. data/platform/wm/rhodes/rhodes.vcproj +2 -0
  122. data/platform/wm/tools/wmdc_connect.sln +20 -0
  123. data/platform/wm/tools/wmdc_connect/stdafx.cpp +27 -0
  124. data/platform/wm/tools/wmdc_connect/stdafx.h +35 -0
  125. data/platform/wm/tools/wmdc_connect/wmdc_connect.cpp +119 -0
  126. data/platform/wm/tools/wmdc_connect/wmdc_connect.vcproj +205 -0
  127. data/platform/wp7/RhoRubyExtGen/RhoAlert.cs +73 -0
  128. data/platform/wp7/RhoRubyExtGen/RhoRubyExtGen.csproj +1 -0
  129. data/platform/wp7/RhoRubyExtGen/RhoSyncEngine.cs +8 -8
  130. data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +47 -6
  131. data/platform/wp7/RhoRubyLib/RhoRuby.cs +8 -0
  132. data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +5 -0
  133. data/platform/wp7/RhoRubyLib/WP_PlatformAdaptationLayer.cs +5 -0
  134. data/platform/wp7/RhoRubyLib/common/RhoParams.cs +2 -1
  135. data/platform/wp7/RhoRubyLib/common/RhodesApp.cs +58 -37
  136. data/platform/wp7/RhoRubyLib/db/DBAdapter.cs +37 -0
  137. data/platform/wp7/RhoRubyLib/db/DBAttrManager.cs +63 -1
  138. data/platform/wp7/RhoRubyLib/db/IDBStorage.cs +2 -0
  139. data/platform/wp7/RhoRubyLib/db/SqliteStorage.cs +27 -0
  140. data/platform/wp7/RhoRubyLib/logging/RhoLogServerSink.cs +2 -2
  141. data/platform/wp7/RhoRubyLib/net/NetRequest.cs +4 -3
  142. data/platform/wp7/RhoRubyLib/rubyext/RhoAlert.cs +160 -0
  143. data/platform/wp7/RhoRubyLib/rubyext/RhoSyncEngine.cs +44 -12
  144. data/platform/wp7/RhoRubyLib/sync/ClientRegister.cs +4 -3
  145. data/platform/wp7/RhoRubyLib/sync/SyncEngine.cs +27 -32
  146. data/platform/wp7/RhoRubyLib/sync/SyncNotify.cs +31 -11
  147. data/platform/wp7/RhoRubyLib/sync/SyncProtocol_3.cs +6 -1
  148. data/platform/wp7/RhoRubyLib/sync/SyncSource.cs +4 -0
  149. data/platform/wp7/RhoRubyLib/sync/SyncThread.cs +21 -15
  150. data/platform/wp7/build/wp.rake +6 -0
  151. data/rakefile.rb +2 -1
  152. data/res/build-tools/Coding4Fun.Phone.Controls.dll +0 -0
  153. data/res/build-tools/wmdc_connect.exe +0 -0
  154. data/res/generators/templates/spec/app/SpecRunner/index.erb +14 -13
  155. data/spec/phone_spec/app/spec/rhom_object_spec.rb +10 -1
  156. data/version +1 -1
  157. metadata +26 -4
data/installer/Rakefile CHANGED
@@ -2,67 +2,68 @@
2
2
 
3
3
  require 'date'
4
4
  require 'fileutils'
5
- require 'jake.rb'
5
+ load 'jake.rb'
6
6
 
7
7
  $majorVer = "1"
8
- $minorVer = "2"
9
- $miniVer = "0"
10
- $betaVer = "7"
8
+ $minorVer = "3"
9
+ $miniVer = "1"
10
+ $betaVer = "4"
11
11
 
12
- $isRhodesBeta = true
12
+ $isRhodesBeta = false
13
13
  $isConnBeta = false
14
14
  $isAdapterBeta = false
15
+ $isElementsBeta = true
15
16
 
16
- $nsisPath = "C:/Program Files (x86)/NSIS/makensis.exe"
17
- $rubyPath = "C:/Android/RhoSync/ruby"
18
- $rubyInstallPath = "C:/Android/Installer/ruby"
19
- $macImage = "/Users/antonvisnevski/rho/RhoStudioDMG.dmg"
20
- $installScript = "rhostudio.nsi"
21
- $commonName = "RhoStudioInstaller"
22
- $extWinExe = '.exe'
23
- $extOsxExe = '.dmg'
17
+ $nsisPath = "C:/Program Files (x86)/NSIS/makensis.exe"
18
+ $rubyPath = "C:/Android/rhosync/ruby"
19
+ $rubyInstallPath = "C:/Android/Installer/ruby"
20
+ $installScript = "rhostudio.nsi"
21
+ $installMotoScript = "rhostudio-moto.nsi"
22
+ $commonName = "RhoStudioInstaller"
23
+ $extWinExe = '.exe'
24
+ $extOsxExe = '.dmg'
24
25
 
25
26
  namespace "installer" do
26
27
 
27
28
  def renameInstaller(installerPrefix)
28
- installerName = ""
29
- currTime = Time.now
30
- currDate = currTime.strftime("%d%m%Y%H%M")
31
-
32
- if RUBY_PLATFORM =~ /(win|w)32$/
33
- # Windows
34
- installerName = $commonName + $majorVer.to_s + "." + $minorVer.to_s + "." + $miniVer + installerPrefix + $extWinExe
35
- puts 'new installer file name: ' + installerName
36
- File.rename($commonName + $extWinExe, installerName)
37
- else
38
- installerName = $commonName + $majorVer.to_s + "." + $minorVer.to_s + "." + $miniVer + installerPrefix + $extOsxExe
39
- puts 'new installer file name: ' + installerName
40
- Jake.run2 "hdiutil", ["convert", $macImage, "-format", "UDZO", "-o", installerName], {:nowait => false}
41
- end
29
+ puts 'add version to build file'
30
+ installerName = ""
31
+ currTime = Time.now
32
+ currDate = currTime.strftime("%d%m%Y%H%M")
33
+
34
+ installerName = $commonName + $majorVer.to_s + "." + $minorVer.to_s + "." + $miniVer + installerPrefix + $extWinExe
35
+
36
+ puts 'new installer file name: ' + installerName
37
+ File.rename($commonName + $extWinExe, installerName)
42
38
  end
43
39
 
44
40
  def changeRubyFolder()
45
- if RUBY_PLATFORM =~ /(win|w)32$/
46
41
  #copy ruby folder
42
+ puts 'start change ruby folder'
47
43
  FileUtils.rm_rf $rubyInstallPath
48
44
  FileUtils.cp_r $rubyPath, $rubyInstallPath
49
- else
50
- return
51
- end
52
45
  end
53
46
 
54
- def installGems(isRhodesBeta, isConnBeta, isAdapterBeta)
55
- if RUBY_PLATFORM =~ /(win|w)32$/
47
+ def installMotoGems(isElementsBeta)
48
+ Jake.run2 "gem", ["uninstall", "rhoelements", "-a"], {:nowait => false}
49
+
50
+ if isElementsBeta == false
51
+ Jake.run2 "gem", ["install", "rhoelements"], {:nowait => false}
56
52
  else
57
- return
58
- end
53
+ Jake.run2 "gem", ["install", "rhoelements", "--pre"], {:nowait => false}
54
+ end
55
+ end
59
56
 
57
+ def installGems(isRhodesBeta, isConnBeta, isAdapterBeta)
60
58
  Jake.run2 "gem", ["uninstall", "rhomobile-debug", "-a"], {:nowait => false}
61
59
  Jake.run2 "gem", ["uninstall", "rhodes", "-a"], {:nowait => false}
62
60
  Jake.run2 "gem", ["uninstall", "rhoconnect", "-a"], {:nowait => false}
63
61
  Jake.run2 "gem", ["uninstall", "rhoconnect-adapters", "-a"], {:nowait => false}
62
+ Jake.run2 "gem", ["uninstall", "rhodes-translator", "-a"], {:nowait => false}
63
+
64
64
 
65
65
  Jake.run2 "gem", ["install", "rhomobile-debug"], {:nowait => false}
66
+ Jake.run2 "gem", ["install", "rhodes-translator"], {:nowait => false}
66
67
 
67
68
  if isRhodesBeta == false
68
69
  Jake.run2 "gem", ["install", "rhodes"], {:nowait => false}
@@ -70,13 +71,13 @@ namespace "installer" do
70
71
  Jake.run2 "gem", ["install", "rhodes", "--pre"], {:nowait => false}
71
72
  end
72
73
 
73
- if $isConnBeta == false
74
+ if isConnBeta == false
74
75
  Jake.run2 "gem", ["install", "rhoconnect"], {:nowait => false}
75
76
  else
76
77
  Jake.run2 "gem", ["install", "rhoconnect", "--pre"], {:nowait => false}
77
78
  end
78
79
 
79
- if $isAdapterBeta == false
80
+ if isAdapterBeta == false
80
81
  Jake.run2 "gem", ["install", "rhoconnect-adapters"], {:nowait => false}
81
82
  else
82
83
  Jake.run2 "gem", ["install", "rhoconnect-adapters", "--pre"], {:nowait => false}
@@ -85,15 +86,6 @@ namespace "installer" do
85
86
  changeRubyFolder()
86
87
  end
87
88
 
88
- def runInstallerScript
89
- if RUBY_PLATFORM =~ /(win|w)32$/
90
- puts 'start build nsis script: ' + $installScript
91
- Jake.run2 $nsisPath, [$installScript], {:nowait => false}
92
- else
93
- return
94
- end
95
- end
96
-
97
89
  namespace "release" do
98
90
  task :gems do
99
91
  puts 'release - reinstall gems task'
@@ -101,7 +93,13 @@ namespace "installer" do
101
93
  end
102
94
 
103
95
  task :nsis => "gems" do
104
- runInstallerScript
96
+ puts 'release - start build nsis script: ' + $installScript
97
+ Jake.run2 $nsisPath, [$installScript], {:nowait => false}
98
+ end
99
+
100
+ task :nsisr do
101
+ puts 'release - start build nsis script: ' + $installScript
102
+ Jake.run2 $nsisPath, [$installScript], {:nowait => false}
105
103
  end
106
104
 
107
105
  task :rename => "nsis" do
@@ -118,7 +116,8 @@ namespace "installer" do
118
116
  end
119
117
 
120
118
  task :nsis => "gems" do
121
- runInstallerScript
119
+ puts 'start build nsis script: ' + $installScript
120
+ Jake.run2 $nsisPath, [$installScript], {:nowait => false}
122
121
  end
123
122
 
124
123
  task :rename => "nsis" do
@@ -133,7 +132,8 @@ namespace "installer" do
133
132
  end
134
133
 
135
134
  task :nsis => "gems" do
136
- runInstallerScript
135
+ puts 'start build nsis script: ' + $installScript
136
+ Jake.run2 $nsisPath, [$installScript], {:nowait => false}
137
137
  end
138
138
 
139
139
  task :rename => "nsis" do
@@ -142,6 +142,24 @@ namespace "installer" do
142
142
 
143
143
  end
144
144
 
145
+ namespace "motorola" do
146
+ task :gems do
147
+ puts 'release - reinstall gems task'
148
+ installMotoGems($isElementsBeta)
149
+ installGems($isRhodesBeta, $isConnBeta, $isAdapterBeta)
150
+ end
151
+
152
+ task :nsis => "gems" do
153
+ puts 'release - start build nsis script: ' + $installScript
154
+ Jake.run2 $nsisPath, [$installMotoScript], {:nowait => false}
155
+ end
156
+
157
+ task :rename => "nsis" do
158
+ puts 'release - start rename task'
159
+ renameInstaller("")
160
+ end
161
+ end
162
+
145
163
  ########################################################
146
164
 
147
165
  task :release => "release:rename" do
@@ -153,4 +171,12 @@ namespace "installer" do
153
171
  task :user => "user:rename" do
154
172
  end
155
173
 
174
+ task :motorola => "motorola:rename" do
175
+ end
176
+
177
+ task :makensis do
178
+ puts 'start build nsis script: ' + $installScript
179
+ Jake.run2 $nsisPath, [$installScript], {:nowait => false}
180
+ end
181
+
156
182
  end
@@ -0,0 +1,534 @@
1
+ ;======================================================
2
+ ; Include
3
+
4
+ !include "MUI.nsh"
5
+ !include "LogicLib.nsh"
6
+ !include "EnvVarUpdate.nsh"
7
+
8
+ ;======================================================
9
+ ; Installer Information
10
+
11
+ Name "RhoStudio Installer"
12
+ OutFile "RhoStudioInstaller.exe"
13
+ InstallDir C:\RhoStudio
14
+ BrandingText " "
15
+ ;======================================================
16
+ ; Modern Interface Configuration
17
+
18
+ !define MUI_ICON "icon.ico"
19
+ !define MUI_UNICON "icon.ico"
20
+ !define MUI_HEADERIMAGE
21
+ !define MUI_ABORTWARNING
22
+ !define MUI_COMPONENTSPAGE_SMALLDESC
23
+ !define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
24
+ !define MUI_FINISHPAGE_SHOWREADME $INSTDIR\README.html
25
+ !define MUI_FINISHPAGE
26
+ !define MUI_FINISHPAGE_TEXT "Thank you for installing Rhodes, Rhoconnect and RhoStudio. \r\n\n\n"
27
+
28
+
29
+ ;======================================================
30
+ ; Pages
31
+
32
+ !insertmacro MUI_PAGE_WELCOME
33
+ !define MUI_PAGE_HEADER_TEXT "RhoStudio License Agreement"
34
+ !define MUI_PAGE_HEADER_SUBTEXT "Please review the RhoStudio license terms before installing."
35
+ !insertmacro MUI_PAGE_LICENSE "RHOSTUDIO-LICENSE.txt"
36
+ !insertmacro MUI_PAGE_LICENSE "RHOELEMENTS-EULA.txt"
37
+ !insertmacro MUI_PAGE_COMPONENTS
38
+ !insertmacro MUI_PAGE_DIRECTORY
39
+ !insertmacro MUI_PAGE_INSTFILES
40
+ #Page custom customerConfig
41
+ !insertmacro MUI_PAGE_FINISH
42
+
43
+ ;======================================================
44
+ ; Languages
45
+
46
+ !insertmacro MUI_LANGUAGE "English"
47
+
48
+ ;======================================================
49
+ ; Reserve Files
50
+
51
+ ReserveFile "configUi.ini"
52
+ !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
53
+
54
+ ;======================================================
55
+ ; Variables
56
+ # var varApacheEmail
57
+ # var varApachePort
58
+ var varDbPass
59
+
60
+ ;======================================================
61
+ ; Sections
62
+
63
+ # start default section
64
+ section
65
+
66
+ ReadRegStr $0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\javaws.exe" "Path"
67
+
68
+ StrCmp $0 "" jreInstallFail
69
+
70
+ # set the installation directory as the destination for the following actions
71
+ setOutPath $INSTDIR
72
+
73
+ # create the uninstaller
74
+ writeUninstaller "$INSTDIR\uninstall.exe"
75
+
76
+ SetOutPath "$SMPROGRAMS\RhoStudio"
77
+
78
+ # create a shortcut named "new shortcut" in the start menu programs directory
79
+ # point the new shortcut at the program uninstaller
80
+ createShortCut "$SMPROGRAMS\RhoStudio\Uninstall RhoStudio.lnk" "$INSTDIR\uninstall.exe"
81
+ createShortCut "$SMPROGRAMS\RhoStudio\RhoStudio.lnk" "$INSTDIR\eclipse\RhoStudio.exe"
82
+
83
+ # added information in 'unistall programs' in contorol panel
84
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RhoStudio" \
85
+ "DisplayName" "RhoStudio - RAD tool for develop and debug rhodes/rhoconnect applications"
86
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RhoStudio" \
87
+ "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
88
+ WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RhoStudio" \
89
+ "DisplayIcon" "$\"$INSTDIR\uninstall.exe$\""
90
+
91
+ Goto okFinishSection
92
+
93
+ jreInstallFail:
94
+ MessageBox MB_OK|MB_ICONINFORMATION|MB_DEFBUTTON1 "Java Runtime Environment could not be found on your computer. Please install Java Runtime Environment before RhoStudio."
95
+ Quit
96
+
97
+ okFinishSection:
98
+ sectionEnd
99
+
100
+ # uninstaller section start
101
+ section "uninstall"
102
+
103
+ # first, delete the uninstaller
104
+ delete "$INSTDIR\uninstall.exe"
105
+
106
+ # second, remove the link from the start menu
107
+ delete "$SMPROGRAMS\RhoStudio\Uninstall RhoStudio.lnk"
108
+ delete "$SMPROGRAMS\RhoStudio\RhoStudio.lnk"
109
+ delete "$SMPROGRAMS\RhoStudio"
110
+
111
+ ExecWait 'net stop redis'
112
+ ExecWait 'sc delete redis'
113
+
114
+ # remove env vars
115
+ Push "PATH"
116
+ Push "R"
117
+ Push "HKLM"
118
+ Push "$INSTDIR\ruby\bin"
119
+ Call un.EnvVarUpdate
120
+ Pop $R0
121
+
122
+ Push "PATH"
123
+ Push "R"
124
+ Push "HKLM"
125
+ Push "$INSTDIR\make-3.81\bin"
126
+ Call un.EnvVarUpdate
127
+ Pop $R0
128
+
129
+ Push "PATH"
130
+ Push "R"
131
+ Push "HKLM"
132
+ Push "$INSTDIR\redis-2.4.0"
133
+ Call un.EnvVarUpdate
134
+ Pop $R0
135
+
136
+ DeleteRegValue HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment" REDIS_HOME
137
+ DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\RhoStudio"
138
+
139
+ # remove $INSTDIR
140
+ RMDir /r /REBOOTOK $INSTDIR
141
+
142
+ # uninstaller section end
143
+ sectionEnd
144
+
145
+ Section "GNU Make" gnumakeSection
146
+
147
+ SetOutPath $INSTDIR
148
+
149
+ File /r "make-3.81"
150
+
151
+ Push "PATH"
152
+ Push "P"
153
+ Push "HKLM"
154
+ Push "$INSTDIR\make-3.81\bin"
155
+ Call EnvVarUpdate
156
+ Pop $R0
157
+
158
+ SectionEnd
159
+
160
+ Section "RhoStudio" studioSection
161
+
162
+ SetOutPath $INSTDIR
163
+
164
+ File /r "eclipse"
165
+
166
+ SectionEnd
167
+
168
+ Section "Samples" samplesSection
169
+
170
+ SetOutPath $INSTDIR
171
+
172
+ File /r "samples"
173
+
174
+ SectionEnd
175
+
176
+ Section "DevKit" devkitSection
177
+
178
+ SetOutPath $INSTDIR
179
+
180
+ File /r "devkit"
181
+
182
+ Push "PATH"
183
+ Push "P"
184
+ Push "HKLM"
185
+ Push "$INSTDIR\devkit\mingw\bin"
186
+ Call EnvVarUpdate
187
+ Pop $R0
188
+
189
+ Push "PATH"
190
+ Push "P"
191
+ Push "HKLM"
192
+ Push "$INSTDIR\devkit\bin"
193
+ Call EnvVarUpdate
194
+ Pop $R0
195
+
196
+ SectionEnd
197
+
198
+ Section "Ruby, Rubygems, Rhodes, Rhoconnect and adapters" rubySection
199
+
200
+ SetOutPath $INSTDIR
201
+
202
+ File /r "ruby"
203
+ File /r "make-3.81"
204
+ #File /r "rhosync"
205
+ File "README.html"
206
+ File "RHOSTUDIO-LICENSE.txt"
207
+
208
+ ;add to path here
209
+
210
+ Push "PATH"
211
+ Push "P"
212
+ Push "HKLM"
213
+ Push "$INSTDIR\ruby\bin"
214
+ Call EnvVarUpdate
215
+ Pop $R0
216
+
217
+ #ExecWait "$INSTDIR\ruby\bin\rake.bat dtach:install"
218
+
219
+ SectionEnd
220
+
221
+ Section "Redis" redisSection
222
+
223
+ SetOutPath $INSTDIR
224
+
225
+ File /r "redis-2.4.0"
226
+
227
+ ;add to path here
228
+
229
+ Push "PATH"
230
+ Push "P"
231
+ Push "HKLM"
232
+ Push "$INSTDIR\redis-2.4.0"
233
+ Call EnvVarUpdate
234
+ Pop $R0
235
+
236
+ Push "REDIS_HOME"
237
+ Push "P"
238
+ Push "HKLM"
239
+ Push "$INSTDIR\redis-2.4.0"
240
+ Call EnvVarUpdate
241
+ Pop $R0
242
+
243
+ ExecWait "$INSTDIR\ruby\bin\rake.bat redis:install"
244
+
245
+ SectionEnd
246
+
247
+ Section "Git 1.7.6" gitSection
248
+
249
+ SetOutPath $INSTDIR
250
+
251
+ File "Git-1.7.6-preview20110708.exe"
252
+
253
+ ExecWait "$INSTDIR\Git-1.7.6-preview20110708.exe"
254
+
255
+ delete "$INSTDIR\Git-1.7.6-preview20110708.exe"
256
+
257
+ SectionEnd
258
+
259
+
260
+ #Section "Java SE Runtime Environment 6 Update 26" javaSection
261
+
262
+ # SetOutPath $INSTDIR
263
+
264
+ # File "jre-6u26-windows-i586.exe"
265
+
266
+ # ExecWait "$INSTDIR\jre-6u26-windows-i586.exe"
267
+
268
+ # delete "$INSTDIR\jre-6u26-windows-i586.exe"
269
+
270
+ #SectionEnd
271
+
272
+ ;======================================================
273
+ ;Descriptions
274
+
275
+ ;Language strings
276
+ LangString DESC_InstallRhostudio ${LANG_ENGLISH} "This installs Eclipse with RhoStudio."
277
+ #LangString DESC_InstallApache ${LANG_ENGLISH} "This installs the Apache 2.2 webserver"
278
+ LangString DESC_InstallRuby ${LANG_ENGLISH} "This installs ruby 1.8.7, rubygems 1.3.7, Rhodes, Rhoconnect and adapters"
279
+ LangString DESC_InstallRedis ${LANG_ENGLISH} "This installs redis 2.2.2 (required to run Rhoconnect)."
280
+ LangString DESC_InstallGit ${LANG_ENGLISH} "This installs Git (which includes the Git Bash)."
281
+ LangString DESC_InstallGnuMake ${LANG_ENGLISH} "This installs GNU Make (sometimes required to update gems)."
282
+ LangString DESC_InstallSamples ${LANG_ENGLISH} "This installs samples for rhodes."
283
+ LangString DESC_InstallDevKit ${LANG_ENGLISH} "This installs samples for rhodes."
284
+ #LangString DESC_InstallJava ${LANG_ENGLISH} "This installs Java SE Runtime Environment."
285
+
286
+ ;Assign language strings to sections
287
+
288
+ !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
289
+ !insertmacro MUI_DESCRIPTION_TEXT ${studioSection} $(DESC_InstallRhostudio)
290
+ #!insertmacro MUI_DESCRIPTION_TEXT ${apache2Section} $(DESC_InstallApache)
291
+ !insertmacro MUI_DESCRIPTION_TEXT ${gnumakeSection} $(DESC_InstallGnuMake)
292
+ !insertmacro MUI_DESCRIPTION_TEXT ${devkitSection} $(DESC_InstallDevKit)
293
+ !insertmacro MUI_DESCRIPTION_TEXT ${rubySection} $(DESC_InstallRuby)
294
+ !insertmacro MUI_DESCRIPTION_TEXT ${redisSection} $(DESC_InstallRedis)
295
+ !insertmacro MUI_DESCRIPTION_TEXT ${gitSection} $(DESC_InstallGit)
296
+ !insertmacro MUI_DESCRIPTION_TEXT ${samplesSection} $(DESC_InstallSamples)
297
+ #!insertmacro MUI_DESCRIPTION_TEXT ${javaSection} $(DESC_InstallJava)
298
+ !insertmacro MUI_FUNCTION_DESCRIPTION_END
299
+
300
+ ;======================================================
301
+ ;Functions
302
+
303
+ Function .onInit
304
+ !insertmacro MUI_INSTALLOPTIONS_EXTRACT "configUi.ini"
305
+ FunctionEnd
306
+
307
+ LangString TEXT_IO_TITLE ${LANG_ENGLISH} "Configuration page"
308
+ LangString TEXT_IO_SUBTITLE ${LANG_ENGLISH} "This page will update application files based on your system configuration."
309
+
310
+ /*
311
+ Function customerConfig
312
+ !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
313
+ !insertmacro MUI_INSTALLOPTIONS_DISPLAY "configUi.ini"
314
+ !insertmacro MUI_INSTALLOPTIONS_READ $varApacheEmail "configUi.ini" "Field 3" "State"
315
+ !insertmacro MUI_INSTALLOPTIONS_READ $varApachePort "configUi.ini" "Field 4" "State"
316
+
317
+ Push SERVERADMIN
318
+ Push $varApacheEmail
319
+ Push all
320
+ Push all
321
+ Push $INSTDIR\apache2\conf\httpd.conf
322
+ Call AdvReplaceInFile
323
+
324
+ Push SERVERPORT
325
+ Push $varApachePort
326
+ Push all
327
+ Push all
328
+ Push $INSTDIR\apache2\conf\httpd.conf
329
+ Call AdvReplaceInFile
330
+
331
+ ExecWait '"$INSTDIR\apache2\bin\httpd.exe" -k install'
332
+ ExecWait 'net start Apache2.2'
333
+ FunctionEnd
334
+ */
335
+
336
+ Function FixScriptFilesInDir
337
+ Exch $R0 #path
338
+ Exch
339
+ Exch $R1 #filter
340
+ Exch
341
+ Exch 2
342
+ Exch $R2 #output file
343
+ Exch 2
344
+ Push $R3
345
+ Push $R4
346
+ Push $R5
347
+ Push $R6
348
+ ClearErrors
349
+ FindFirst $R3 $R4 "$R0\$R1"
350
+ FileOpen $R5 $R2 w
351
+
352
+ Push $INSTDIR
353
+ Push "\"
354
+ Call StrSlash
355
+ Pop $R6
356
+
357
+ Loop:
358
+ IfErrors Done
359
+ StrCmp $R4 "." gotoNextFile
360
+ StrCmp $R4 ".." gotoNextFile
361
+
362
+ ;replace package folder with INSTDIR
363
+ Push C:/dev/rhodesinstaller
364
+ Push $R6
365
+ Push all
366
+ Push all
367
+ Push "$R0\$R4"
368
+ Call AdvReplaceInFile
369
+ FileWrite $R5 "$R0\$R4$\r$\n"
370
+ FindNext $R3 $R4
371
+ Goto Loop
372
+
373
+ gotoNextFile:
374
+ FindNext $R3 $R4
375
+ Goto Loop
376
+
377
+ Done:
378
+ FileClose $R5
379
+ FindClose $R3
380
+ Pop $R6
381
+ Pop $R5
382
+ Pop $R4
383
+ Pop $R3
384
+ Pop $R2
385
+ Pop $R1
386
+ Pop $R0
387
+ FunctionEnd
388
+
389
+
390
+
391
+ Function AdvReplaceInFile
392
+ Exch $0 ;file to replace in
393
+ Exch
394
+ Exch $1 ;number to replace after
395
+ Exch
396
+ Exch 2
397
+ Exch $2 ;replace and onwards
398
+ Exch 2
399
+ Exch 3
400
+ Exch $3 ;replace with
401
+ Exch 3
402
+ Exch 4
403
+ Exch $4 ;to replace
404
+ Exch 4
405
+ Push $5 ;minus count
406
+ Push $6 ;universal
407
+ Push $7 ;end string
408
+ Push $8 ;left string
409
+ Push $9 ;right string
410
+ Push $R0 ;file1
411
+ Push $R1 ;file2
412
+ Push $R2 ;read
413
+ Push $R3 ;universal
414
+ Push $R4 ;count (onwards)
415
+ Push $R5 ;count (after)
416
+ Push $R6 ;temp file name
417
+
418
+ GetTempFileName $R6
419
+ FileOpen $R1 $0 r ;file to search in
420
+ FileOpen $R0 $R6 w ;temp file
421
+ StrLen $R3 $4
422
+ StrCpy $R4 -1
423
+ StrCpy $R5 -1
424
+
425
+ loop_read:
426
+ ClearErrors
427
+ FileRead $R1 $R2 ;read line
428
+ IfErrors exit
429
+
430
+ StrCpy $5 0
431
+ StrCpy $7 $R2
432
+
433
+ loop_filter:
434
+ IntOp $5 $5 - 1
435
+ StrCpy $6 $7 $R3 $5 ;search
436
+ StrCmp $6 "" file_write2
437
+ StrCmp $6 $4 0 loop_filter
438
+
439
+ StrCpy $8 $7 $5 ;left part
440
+ IntOp $6 $5 + $R3
441
+ IntCmp $6 0 is0 not0
442
+ is0:
443
+ StrCpy $9 ""
444
+ Goto done
445
+ not0:
446
+ StrCpy $9 $7 "" $6 ;right part
447
+ done:
448
+ StrCpy $7 $8$3$9 ;re-join
449
+
450
+ IntOp $R4 $R4 + 1
451
+ StrCmp $2 all file_write1
452
+ StrCmp $R4 $2 0 file_write2
453
+ IntOp $R4 $R4 - 1
454
+
455
+ IntOp $R5 $R5 + 1
456
+ StrCmp $1 all file_write1
457
+ StrCmp $R5 $1 0 file_write1
458
+ IntOp $R5 $R5 - 1
459
+ Goto file_write2
460
+
461
+ file_write1:
462
+ FileWrite $R0 $7 ;write modified line
463
+ Goto loop_read
464
+
465
+ file_write2:
466
+ FileWrite $R0 $R2 ;write unmodified line
467
+ Goto loop_read
468
+
469
+ exit:
470
+ FileClose $R0
471
+ FileClose $R1
472
+
473
+ SetDetailsPrint none
474
+ Delete $0
475
+ Rename $R6 $0
476
+ Delete $R6
477
+ SetDetailsPrint both
478
+
479
+ Pop $R6
480
+ Pop $R5
481
+ Pop $R4
482
+ Pop $R3
483
+ Pop $R2
484
+ Pop $R1
485
+ Pop $R0
486
+ Pop $9
487
+ Pop $8
488
+ Pop $7
489
+ Pop $6
490
+ Pop $5
491
+ Pop $0
492
+ Pop $1
493
+ Pop $2
494
+ Pop $3
495
+ Pop $4
496
+ FunctionEnd
497
+
498
+
499
+ ; Push $filenamestring (e.g. 'c:\this\and\that\filename.htm')
500
+ ; Push "\"
501
+ ; Call StrSlash
502
+ ; Pop $R0
503
+ ; ;Now $R0 contains 'c:/this/and/that/filename.htm'
504
+ Function StrSlash
505
+ Exch $R3 ; $R3 = needle ("\" or "/")
506
+ Exch
507
+ Exch $R1 ; $R1 = String to replacement in (haystack)
508
+ Push $R2 ; Replaced haystack
509
+ Push $R4 ; $R4 = not $R3 ("/" or "\")
510
+ Push $R6
511
+ Push $R7 ; Scratch reg
512
+ StrCpy $R2 ""
513
+ StrLen $R6 $R1
514
+ StrCpy $R4 "\"
515
+ StrCmp $R3 "/" loop
516
+ StrCpy $R4 "/"
517
+ loop:
518
+ StrCpy $R7 $R1 1
519
+ StrCpy $R1 $R1 $R6 1
520
+ StrCmp $R7 $R3 found
521
+ StrCpy $R2 "$R2$R7"
522
+ StrCmp $R1 "" done loop
523
+ found:
524
+ StrCpy $R2 "$R2$R4"
525
+ StrCmp $R1 "" done loop
526
+ done:
527
+ StrCpy $R3 $R2
528
+ Pop $R7
529
+ Pop $R6
530
+ Pop $R4
531
+ Pop $R2
532
+ Pop $R1
533
+ Exch $R3
534
+ FunctionEnd