r2corba 1.4.1-x86-mingw32 → 1.5.1-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (254) hide show
  1. checksums.yaml +7 -7
  2. data/CHANGES +173 -159
  3. data/LICENSE +59 -59
  4. data/README +62 -62
  5. data/THANKS +54 -52
  6. data/bin/r2corba +1 -1
  7. data/bin/ridlc +1 -1
  8. data/bin/rins +1 -1
  9. data/lib/corba.rb +16 -16
  10. data/lib/corba/cbase/IORMap.rb +33 -33
  11. data/lib/corba/cbase/ORB.rb +237 -231
  12. data/lib/corba/cbase/Request.rb +133 -133
  13. data/lib/corba/cbase/Streams.rb +129 -129
  14. data/lib/corba/cbase/Stub.rb +19 -19
  15. data/lib/corba/cbase/Typecode.rb +441 -441
  16. data/lib/corba/cbase/Values.rb +129 -129
  17. data/lib/corba/cbase/exception.rb +66 -66
  18. data/lib/corba/cbase/poa.rb +23 -23
  19. data/lib/corba/cbase/policies.rb +77 -77
  20. data/lib/corba/cbase/post_require.rb +13 -13
  21. data/lib/corba/cbase/require.rb +28 -28
  22. data/lib/corba/cmds/base.rb +85 -85
  23. data/lib/corba/cmds/test.rb +30 -30
  24. data/lib/corba/common/Any.rb +91 -91
  25. data/lib/corba/common/IDL.rb +104 -104
  26. data/lib/corba/common/ORB.rb +368 -368
  27. data/lib/corba/common/Object.rb +208 -208
  28. data/lib/corba/common/Request.rb +19 -19
  29. data/lib/corba/common/Servant.rb +108 -108
  30. data/lib/corba/common/Struct.rb +21 -21
  31. data/lib/corba/common/Stub.rb +79 -79
  32. data/lib/corba/common/Typecode.rb +1121 -1121
  33. data/lib/corba/common/Union.rb +55 -55
  34. data/lib/corba/common/Values.rb +91 -91
  35. data/lib/corba/common/const.rb +22 -22
  36. data/lib/corba/common/exception.rb +68 -68
  37. data/lib/corba/common/require.rb +27 -27
  38. data/lib/corba/common/version.rb +22 -22
  39. data/lib/corba/idl/IDL.rb +21 -21
  40. data/lib/corba/idl/IORTable.pidl +62 -62
  41. data/lib/corba/idl/TAO_Ext.pidl +46 -46
  42. data/lib/corba/idl/require.rb +20 -20
  43. data/lib/corba/jbase/Any.rb +273 -273
  44. data/lib/corba/jbase/IORMap.rb +35 -35
  45. data/lib/corba/jbase/ORB.rb +112 -99
  46. data/lib/corba/jbase/Object.rb +99 -98
  47. data/lib/corba/jbase/Request.rb +225 -225
  48. data/lib/corba/jbase/Servant.rb +247 -246
  49. data/lib/corba/jbase/ServerRequest.rb +127 -127
  50. data/lib/corba/jbase/Streams.rb +670 -670
  51. data/lib/corba/jbase/Stub.rb +38 -38
  52. data/lib/corba/jbase/Typecode.rb +520 -520
  53. data/lib/corba/jbase/Values.rb +173 -173
  54. data/lib/corba/jbase/exception.rb +106 -106
  55. data/lib/corba/jbase/poa.rb +228 -228
  56. data/lib/corba/jbase/policies.rb +299 -299
  57. data/lib/corba/jbase/post_require.rb +14 -14
  58. data/lib/corba/jbase/require.rb +89 -86
  59. data/lib/corba/naming.rb +14 -14
  60. data/lib/corba/naming_service.rb +15 -15
  61. data/lib/corba/poa.rb +15 -15
  62. data/lib/corba/policies.rb +18 -18
  63. data/lib/corba/require.rb +17 -17
  64. data/lib/corba/svcs/ins/cos_naming.rb +426 -426
  65. data/lib/corba/svcs/ins/ins.rb +526 -526
  66. data/lib/corba/svcs/ins/naming_service.rb +119 -119
  67. data/lib/ridlbe/ruby/config.rb +336 -336
  68. data/lib/ridlbe/ruby/orb.pidlc +0 -0
  69. data/lib/ridlbe/ruby/require.rb +16 -16
  70. data/lib/ridlbe/ruby/walker.rb +1582 -1582
  71. data/mkrf_conf_bingem.rb +151 -101
  72. data/rakelib/bin.rake +80 -80
  73. data/rakelib/bin.rb +145 -145
  74. data/rakelib/build.rake +87 -87
  75. data/rakelib/config.rake +51 -51
  76. data/rakelib/config.rb +543 -449
  77. data/rakelib/ext.rake +242 -242
  78. data/rakelib/ext.rb +316 -308
  79. data/rakelib/ext_r2tao.rb +235 -232
  80. data/rakelib/gem.rake +235 -211
  81. data/rakelib/gem.rb +145 -145
  82. data/rakelib/package.rake +26 -26
  83. data/rakelib/test.rake +23 -23
  84. data/test/BiDirectional/Test.idl +34 -34
  85. data/test/BiDirectional/client.rb +131 -131
  86. data/test/BiDirectional/run_test.rb +68 -68
  87. data/test/BiDirectional/server.ior +1 -1
  88. data/test/BiDirectional/server.rb +169 -169
  89. data/test/CORBA_Services/Naming/BindingIterator/Test.idl +27 -27
  90. data/test/CORBA_Services/Naming/BindingIterator/client.rb +121 -121
  91. data/test/CORBA_Services/Naming/BindingIterator/ins.ior +1 -1
  92. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +82 -82
  93. data/test/CORBA_Services/Naming/BindingIterator/server.rb +109 -109
  94. data/test/CORBA_Services/Naming/Corbaname/Test.idl +27 -27
  95. data/test/CORBA_Services/Naming/Corbaname/client.rb +85 -85
  96. data/test/CORBA_Services/Naming/Corbaname/ins.ior +1 -1
  97. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +88 -88
  98. data/test/CORBA_Services/Naming/Corbaname/server.rb +135 -135
  99. data/test/CORBA_Services/Naming/Simple/Test.idl +27 -27
  100. data/test/CORBA_Services/Naming/Simple/client.rb +84 -84
  101. data/test/CORBA_Services/Naming/Simple/ins.ior +1 -1
  102. data/test/CORBA_Services/Naming/Simple/run_test.rb +82 -82
  103. data/test/CORBA_Services/Naming/Simple/server.rb +109 -109
  104. data/test/Collocation/Diamond.idl +39 -39
  105. data/test/Collocation/run_test.rb +52 -52
  106. data/test/Collocation/test.rb +195 -195
  107. data/test/Connect_Timeout/Test.idl +27 -27
  108. data/test/Connect_Timeout/client.rb +111 -111
  109. data/test/Connect_Timeout/run_test.rb +52 -52
  110. data/test/DII/Test.idl +27 -27
  111. data/test/DII/client.rb +115 -115
  112. data/test/DII/run_test.rb +69 -69
  113. data/test/DII/server.ior +1 -1
  114. data/test/DII/server.rb +95 -95
  115. data/test/DSI/Test.idl +27 -27
  116. data/test/DSI/client.rb +66 -66
  117. data/test/DSI/run_test.rb +69 -69
  118. data/test/DSI/server.ior +1 -1
  119. data/test/DSI/server.rb +106 -106
  120. data/test/Exceptions/Test.idl +48 -48
  121. data/test/Exceptions/client.rb +117 -117
  122. data/test/Exceptions/run_test.rb +69 -69
  123. data/test/Exceptions/server.ior +1 -1
  124. data/test/Exceptions/server.rb +131 -131
  125. data/test/Hello/Test.idl +27 -27
  126. data/test/Hello/client.rb +78 -78
  127. data/test/Hello/run_test.rb +71 -71
  128. data/test/Hello/server.rb +95 -95
  129. data/test/IDL_Test/Test.idl +113 -113
  130. data/test/IDL_Test/Test_inc.idl +17 -17
  131. data/test/IDL_Test/client.rb +102 -102
  132. data/test/IDL_Test/run_test.rb +69 -69
  133. data/test/IDL_Test/server.ior +1 -1
  134. data/test/IDL_Test/server.rb +99 -99
  135. data/test/IORMap/Test.idl +27 -27
  136. data/test/IORMap/client.rb +73 -73
  137. data/test/IORMap/run_test.rb +69 -69
  138. data/test/IORMap/server.ior +1 -1
  139. data/test/IORMap/server.rb +114 -114
  140. data/test/IORTable/Test.idl +27 -27
  141. data/test/IORTable/client.rb +75 -75
  142. data/test/IORTable/run_test.rb +69 -69
  143. data/test/IORTable/server.ior +1 -1
  144. data/test/IORTable/server.rb +130 -130
  145. data/test/Implicit_Conversion/Test.idl +31 -31
  146. data/test/Implicit_Conversion/client.rb +110 -110
  147. data/test/Implicit_Conversion/run_test.rb +69 -69
  148. data/test/Implicit_Conversion/server.ior +1 -1
  149. data/test/Implicit_Conversion/server.rb +99 -99
  150. data/test/Multi_Threading/Multiple_ORB/Test.idl +27 -27
  151. data/test/Multi_Threading/Multiple_ORB/client.rb +82 -82
  152. data/test/Multi_Threading/Multiple_ORB/run_test.rb +71 -71
  153. data/test/Multi_Threading/Multiple_ORB/server.rb +108 -108
  154. data/test/Multi_Threading/Multiple_ORB/server0.ior +1 -1
  155. data/test/Multi_Threading/Multiple_ORB/server1.ior +1 -1
  156. data/test/Multi_Threading/Simple/Test.idl +27 -27
  157. data/test/Multi_Threading/Simple/client.rb +93 -88
  158. data/test/Multi_Threading/Simple/run_test.rb +69 -69
  159. data/test/Multi_Threading/Simple/server.ior +1 -1
  160. data/test/Multi_Threading/Simple/server.rb +117 -117
  161. data/test/Multi_Threading/Threads/Test.idl +31 -31
  162. data/test/Multi_Threading/Threads/client.rb +80 -80
  163. data/test/Multi_Threading/Threads/run_test.rb +76 -76
  164. data/test/Multi_Threading/Threads/server.ior +1 -1
  165. data/test/Multi_Threading/Threads/server.rb +119 -119
  166. data/test/Multi_Threading/Threads/watchdog.ior +1 -1
  167. data/test/Multi_Threading/Threads/watchdog.rb +87 -87
  168. data/test/Multiple_Servant_Interfaces/Test.idl +34 -34
  169. data/test/Multiple_Servant_Interfaces/client.rb +70 -70
  170. data/test/Multiple_Servant_Interfaces/run_test.rb +69 -69
  171. data/test/Multiple_Servant_Interfaces/server.ior +1 -1
  172. data/test/Multiple_Servant_Interfaces/server.rb +102 -102
  173. data/test/Nil/Test.idl +27 -27
  174. data/test/Nil/run_test.rb +52 -52
  175. data/test/Nil/test.rb +78 -78
  176. data/test/OBV/AbstractInterface/client.rb +179 -179
  177. data/test/OBV/AbstractInterface/run_test.rb +69 -69
  178. data/test/OBV/AbstractInterface/server.ior +1 -1
  179. data/test/OBV/AbstractInterface/server.rb +149 -149
  180. data/test/OBV/AbstractInterface/test.idl +53 -53
  181. data/test/OBV/Custom/OBV.idl +18 -18
  182. data/test/OBV/Custom/OBV_impl.rb +40 -40
  183. data/test/OBV/Custom/client.rb +86 -86
  184. data/test/OBV/Custom/run_test.rb +69 -69
  185. data/test/OBV/Custom/server.ior +1 -1
  186. data/test/OBV/Custom/server.rb +100 -100
  187. data/test/OBV/Simple/OBV.idl +15 -15
  188. data/test/OBV/Simple/OBV_impl.rb +26 -26
  189. data/test/OBV/Simple/client.rb +86 -86
  190. data/test/OBV/Simple/run_test.rb +69 -69
  191. data/test/OBV/Simple/server.ior +1 -1
  192. data/test/OBV/Simple/server.rb +100 -100
  193. data/test/OBV/Simple_Event/Event.idl +15 -15
  194. data/test/OBV/Simple_Event/Event_impl.rb +26 -26
  195. data/test/OBV/Simple_Event/client.rb +86 -86
  196. data/test/OBV/Simple_Event/run_test.rb +69 -69
  197. data/test/OBV/Simple_Event/server.ior +1 -1
  198. data/test/OBV/Simple_Event/server.rb +100 -100
  199. data/test/OBV/Supports/client.rb +116 -116
  200. data/test/OBV/Supports/run_test.rb +69 -69
  201. data/test/OBV/Supports/server.ior +1 -1
  202. data/test/OBV/Supports/server.rb +103 -103
  203. data/test/OBV/Supports/supports.idl +33 -33
  204. data/test/OBV/Supports/supports_impl.rb +57 -57
  205. data/test/OBV/Tree/client.rb +116 -116
  206. data/test/OBV/Tree/run_test.rb +69 -69
  207. data/test/OBV/Tree/server.ior +1 -1
  208. data/test/OBV/Tree/server.rb +117 -117
  209. data/test/OBV/Tree/test.idl +32 -32
  210. data/test/OBV/Truncatable/Extra.idl +27 -27
  211. data/test/OBV/Truncatable/Truncatable.idl +105 -105
  212. data/test/OBV/Truncatable/Truncatable_impl.rb +86 -86
  213. data/test/OBV/Truncatable/client.rb +279 -279
  214. data/test/OBV/Truncatable/run_test.rb +69 -69
  215. data/test/OBV/Truncatable/server.ior +1 -1
  216. data/test/OBV/Truncatable/server.rb +89 -89
  217. data/test/OBV/ValueBox/client.rb +497 -497
  218. data/test/OBV/ValueBox/run_test.rb +69 -69
  219. data/test/OBV/ValueBox/server.ior +1 -1
  220. data/test/OBV/ValueBox/server.rb +271 -271
  221. data/test/OBV/ValueBox/valuebox.idl +101 -101
  222. data/test/OBV/ValueBox/vb_basic.idl +75 -75
  223. data/test/OBV/ValueBox/vb_struct.idl +68 -68
  224. data/test/OBV/ValueBox/vb_union.idl +21 -21
  225. data/test/Object/Test.idl +27 -27
  226. data/test/Object/client.rb +112 -103
  227. data/test/Object/run_test.rb +69 -69
  228. data/test/Object/server.ior +1 -1
  229. data/test/Object/server.rb +126 -126
  230. data/test/POA/Test.idl +27 -27
  231. data/test/POA/run_test.rb +52 -52
  232. data/test/POA/test.rb +111 -111
  233. data/test/Param_Test/Test.idl +182 -182
  234. data/test/Param_Test/client.rb +277 -277
  235. data/test/Param_Test/run_test.rb +69 -69
  236. data/test/Param_Test/server.ior +1 -1
  237. data/test/Param_Test/server.rb +296 -296
  238. data/test/Performance/Simple/Test.idl +27 -27
  239. data/test/Performance/Simple/client.rb +90 -90
  240. data/test/Performance/Simple/run_test.rb +69 -69
  241. data/test/Performance/Simple/server.ior +1 -1
  242. data/test/Performance/Simple/server.rb +95 -95
  243. data/test/Policies/Test.idl +27 -27
  244. data/test/Policies/run_test.rb +52 -52
  245. data/test/Policies/test.rb +144 -144
  246. data/test/Timeout/client.rb +207 -207
  247. data/test/Timeout/run_test.rb +69 -69
  248. data/test/Timeout/server.ior +1 -1
  249. data/test/Timeout/server.rb +109 -109
  250. data/test/Timeout/test.idl +19 -19
  251. data/test/lib/assert.rb +43 -43
  252. data/test/lib/test.rb +542 -542
  253. data/test/test_runner.rb +193 -193
  254. metadata +141 -137
data/rakelib/gem.rake CHANGED
@@ -1,212 +1,236 @@
1
- #--------------------------------------------------------------------
2
- # gem.rake - build file
3
- #
4
- # Author: Martin Corino
5
- #
6
- # This program is free software; you can redistribute it and/or
7
- # modify it under the terms of the R2CORBA LICENSE which is
8
- # included with this program.
9
- #
10
- # Copyright (c) Remedy IT Expertise BV
11
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
-
14
- require File.join(File.dirname(__FILE__), 'gem.rb')
15
-
16
- namespace :r2corba do
17
- namespace :gem do
18
- task :srcgem => ['r2corba:bin:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem")]
19
-
20
- task :bingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem")]
21
-
22
- task :extbingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem")]
23
-
24
- task :srcbuild => 'r2corba:build' do
25
- ext_dir = File.expand_path('ext')
26
- unless defined?(JRUBY_VERSION) || get_config('without-tao')
27
- # install ACE+TAO dlls
28
- R2CORBA::Ext.ace_shlibs.each do |acelib|
29
- libmask = R2CORBA::Config.is_linux ? acelib+'.*' : acelib
30
- path = Dir.glob(libmask).first
31
- raise "Cannot find ACE+TAO library #{File.basename(acelib)}." unless path
32
- FileUtils.install(path, ext_dir, :mode => 0555, :verbose => Rake.verbose)
33
- # create unversioned symlink
34
- ln_s(File.join(ext_dir, File.basename(path)), File.join(ext_dir, File.basename(acelib)), :force => true) if R2CORBA::Config.is_linux
35
- end
36
- # clean up (uninstall) taosource gem
37
- require 'rubygems/uninstaller'
38
- Gem::Uninstaller.new('taosource', :all => true).uninstall
39
- end
40
- end
41
-
42
- task :binbuild => ['r2corba:bin:build', 'r2corba:build_idl'] do
43
- if R2CORBA::Config.is_linux
44
- # create unversioned ACE/TAO lib symlinks
45
- R2CORBA::Ext.ace_shlibs('.so', 'ext').each do |acelib|
46
- acelib_ver = File.expand_path(Dir[acelib+'.*'].first)
47
- ln_s(acelib_ver, acelib)
48
- end
49
- end
50
- unless defined?(JRUBY_VERSION) || R2CORBA::Config.is_win32
51
- # patch RPATH setting of shared libs
52
- R2CORBA::Gem.patch_extlib_rpath
53
- end
54
- end
55
-
56
- unless defined?(JRUBY_VERSION)
57
- task :taogem do
58
- # get version of latest ACE release from internet
59
- _ace_ver = R2CORBA::Ext.get_latest_ace_version
60
- # make sure download target dir exists
61
- Rake.mkdir_p('src')
62
- # download latest TAO source archive from internet
63
- R2CORBA::Ext.download_tao_source(_ace_ver, 'src')
64
- # build gem
65
- gemspec = R2CORBA::Gem.define_spec('taosource', _ace_ver) do |gem|
66
- gem.summary = %Q{TAO sourcecode for building R2CORBA}
67
- gem.description = %Q{TAO sourcecode for building R2CORBA.}
68
- gem.email = 'mcorino@remedy.nl'
69
- gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
70
- gem.authors = ['Martin Corino']
71
- gem.files = Dir['lib/taosource/**/*']
72
- gem.files.concat(Dir["src/ACE+TAO-src-#{_ace_ver}.tar.gz"])
73
- gem.files << 'mkrf_conf_taogem.rb'
74
- gem.extensions = ['mkrf_conf_taogem.rb']
75
- gem.require_paths = %w{lib}
76
- gem.executables = []
77
- gem.required_ruby_version = '>= 1.8.6'
78
- gem.licenses = ['ACE']
79
- end
80
- R2CORBA::Gem.build_gem(gemspec)
81
- end
82
- end
83
- end
84
- end
85
-
86
- # source gem file
87
- t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem") => R2CORBA::Gem.manifest do
88
- gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION) do |gem|
89
- gem.summary = %Q{CORBA language mapping implementation for Ruby}
90
- gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
91
- gem.email = 'mcorino@remedy.nl'
92
- gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
93
- gem.authors = ['Martin Corino']
94
- gem.files = R2CORBA::Gem.manifest
95
- gem.extensions = ['mkrf_conf_srcgem.rb']
96
- gem.require_paths = %w{lib}
97
- gem.executables = %w{ridlc rins r2corba}
98
- gem.required_ruby_version = '>= 1.8.6'
99
- gem.licenses = ['R2CORBA', 'ACE', 'GPL']
100
- gem.require_paths << 'ext'
101
- gem.add_dependency 'ridl', '>= 2.2.2'
102
- gem.add_dependency 'rake', '>= 10.0.1'
103
- gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
104
- end
105
- R2CORBA::Gem.build_gem(gemspec)
106
- end
107
- t_.enhance ['mkrf_conf_srcgem.rb']
108
-
109
- # Extension binaries gem file
110
- t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem") => R2CORBA::Gem.manifest(:extbin, true) do
111
- unless defined?(JRUBY_VERSION)
112
- # prepare required shared libs for ext libs
113
- if R2CORBA::Config.is_win32
114
- ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
115
- elsif R2CORBA::Config.is_linux
116
- ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
117
- else
118
- ext_deplibs = R2CORBA::Ext.ace_shlibs
119
- end
120
- ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
121
- end
122
- begin
123
- gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :extbin) do |gem|
124
- gem.summary = %Q{CORBA language mapping implementation for Ruby (extension binaries)}
125
- gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. (extension binaries)}
126
- gem.email = 'mcorino@remedy.nl'
127
- gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
128
- gem.authors = ['Martin Corino']
129
- gem.files = R2CORBA::Gem.manifest(:extbin)
130
- gem.extensions = []
131
- gem.require_paths = %w{ext}
132
- gem.executables = []
133
- if R2CORBA::Config.rb_ver_major < 2
134
- if R2CORBA::Config.rb_ver_minor > 8
135
- gem.required_ruby_version = '>= 1.9.1'
136
- else
137
- gem.required_ruby_version = '>= 1.8.6'
138
- end
139
- else
140
- gem.required_ruby_version = '>= 2.0.0'
141
- end
142
- gem.licenses = ['R2CORBA', 'ACE']
143
- gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
144
- end
145
- R2CORBA::Gem.build_gem(gemspec)
146
- ensure
147
- ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
148
- end
149
- end
150
-
151
- # binary gem file
152
- t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem") => R2CORBA::Gem.manifest(:bin, true) do
153
- unless defined?(JRUBY_VERSION)
154
- if ENV['FULL_BINGEM']
155
- # prepare required shared libs for ext libs
156
- if R2CORBA::Config.is_win32
157
- ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
158
- elsif R2CORBA::Config.is_linux
159
- ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
160
- else
161
- ext_deplibs = R2CORBA::Ext.ace_shlibs
162
- end
163
- ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
164
- else
165
- touch(File.join('ext', '.keep'))
166
- end
167
- end
168
- begin
169
- # create gemspec
170
- gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :bin) do |gem|
171
- gem.summary = %Q{CORBA language mapping implementation for Ruby}
172
- gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
173
- gem.email = 'mcorino@remedy.nl'
174
- gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
175
- gem.authors = ['Martin Corino']
176
- gem.files = R2CORBA::Gem.manifest(:bin)
177
- gem.require_paths = %w{lib}
178
- gem.executables = %w{ridlc rins r2corba}
179
- gem.extensions = ['mkrf_conf_bingem.rb']
180
- if defined?(JRUBY_VERSION)
181
- gem.require_paths << 'jacorb/lib'
182
- gem.required_ruby_version = '>= 1.5.0'
183
- gem.licenses = ['R2CORBA', 'JacORB']
184
- else
185
- gem.files << File.join('ext', '.keep') unless ENV['FULL_BINGEM'] # to force installation of ext folder if libs are left out
186
- gem.required_ruby_version = '>= 1.8.6'
187
- gem.licenses = ['R2CORBA', 'ACE', 'GPL']
188
- gem.require_paths << 'ext'
189
- end
190
- gem.add_dependency 'ridl', '>= 2.2.2'
191
- gem.add_dependency 'rake', '>= 10.0.1'
192
- gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so'
193
- end
194
- R2CORBA::Gem.build_gem(gemspec)
195
- ensure
196
- if ENV['FULL_BINGEM']
197
- ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
198
- else
199
- rm_f(File.join('ext', '.keep')) unless defined?(JRUBY_VERSION)
200
- end
201
- end
202
- end
203
- t_.enhance ['mkrf_conf_bingem.rb']
204
-
205
- desc 'Build R2CORBA gem'
206
- if defined?(JRUBY_VERSION)
207
- task :gem => 'r2corba:gem:bingem'
208
- elsif R2CORBA::Config.is_win32
209
- task :gem => 'r2corba:gem:bingem'
210
- else
211
- task :gem => 'r2corba:gem:srcgem'
1
+ #--------------------------------------------------------------------
2
+ # gem.rake - build file
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ require File.join(File.dirname(__FILE__), 'gem.rb')
15
+
16
+ namespace :r2corba do
17
+ namespace :gem do
18
+ task :srcgem => ['r2corba:bin:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem")]
19
+
20
+ task :bingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem")]
21
+
22
+ task :extbingem => ['r2corba:build', File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem")]
23
+
24
+ task :srcbuild => 'r2corba:build' do
25
+ ext_dir = File.expand_path('ext')
26
+ unless defined?(JRUBY_VERSION) || get_config('without-tao')
27
+ # install ACE+TAO dlls
28
+ R2CORBA::Ext.ace_shlibs.each do |acelib|
29
+ libmask = R2CORBA::Config.is_linux ? acelib+'.*' : acelib
30
+ path = Dir.glob(libmask).first
31
+ raise "Cannot find ACE+TAO library #{File.basename(acelib)}." unless path
32
+ FileUtils.install(path, ext_dir, :mode => 0555, :verbose => Rake.verbose)
33
+ # create unversioned symlink
34
+ ln_s(File.join(ext_dir, File.basename(path)), File.join(ext_dir, File.basename(acelib)), :force => true) if R2CORBA::Config.is_linux
35
+ end
36
+ # clean up (uninstall) taosource gem
37
+ require 'rubygems/uninstaller'
38
+ Gem::Uninstaller.new('taosource', :all => true).uninstall
39
+ end
40
+ end
41
+
42
+ task :binbuild => ['r2corba:bin:build', 'r2corba:build_idl'] do
43
+ unless defined?(JRUBY_VERSION)
44
+ if R2CORBA::Config.is_linux
45
+ # create unversioned ACE/TAO lib symlinks
46
+ R2CORBA::Ext.ace_shlibs('.so', 'ext').each do |acelib|
47
+ acelib_ver = File.expand_path(Dir[acelib+'.*'].first)
48
+ ln_s(acelib_ver, acelib)
49
+ end
50
+ end
51
+ unless R2CORBA::Config.is_win32
52
+ # patch RPATH setting of shared libs
53
+ R2CORBA::Gem.patch_extlib_rpath
54
+ end
55
+ end
56
+ end
57
+
58
+ unless defined?(JRUBY_VERSION)
59
+ task :taogem do
60
+ # get version of latest ACE release from internet
61
+ _ace_ver = R2CORBA::Ext.get_latest_ace_version
62
+ # make sure download target dir exists
63
+ Rake.mkdir_p('src')
64
+ # download latest TAO source archive from internet
65
+ R2CORBA::Ext.download_tao_source(_ace_ver, 'src')
66
+ # build gem
67
+ gemspec = R2CORBA::Gem.define_spec('taosource', _ace_ver) do |gem|
68
+ gem.summary = %Q{TAO sourcecode for building R2CORBA}
69
+ gem.description = %Q{TAO sourcecode for building R2CORBA.}
70
+ gem.email = 'mcorino@remedy.nl'
71
+ gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
72
+ gem.authors = ['Martin Corino']
73
+ gem.files = Dir['lib/taosource/**/*']
74
+ gem.files.concat(Dir["src/ACE+TAO-src-#{_ace_ver}.tar.gz"])
75
+ gem.files << 'mkrf_conf_taogem.rb'
76
+ gem.extensions = ['mkrf_conf_taogem.rb']
77
+ gem.require_paths = %w{lib}
78
+ gem.executables = []
79
+ gem.required_ruby_version = '>= 1.9.3'
80
+ gem.licenses = ['ACE']
81
+ end
82
+ R2CORBA::Gem.build_gem(gemspec)
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ # source gem file
89
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION)}.gem") => R2CORBA::Gem.manifest do
90
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION) do |gem|
91
+ gem.summary = %Q{CORBA language mapping implementation for Ruby}
92
+ gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
93
+ gem.email = 'mcorino@remedy.nl'
94
+ gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
95
+ gem.authors = ['Martin Corino']
96
+ gem.files = R2CORBA::Gem.manifest
97
+ gem.extensions = ['mkrf_conf_srcgem.rb']
98
+ gem.require_paths = %w{lib}
99
+ gem.executables = %w{ridlc rins r2corba}
100
+ gem.required_ruby_version = '>= 1.9.3'
101
+ gem.licenses = ['R2CORBA', 'ACE', 'GPL']
102
+ gem.require_paths << 'ext'
103
+ gem.add_dependency 'ridl', '~> 2.5'
104
+ gem.add_dependency 'rake', '~> 10.0'
105
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
106
+ end
107
+ R2CORBA::Gem.build_gem(gemspec)
108
+ end
109
+ t_.enhance ['mkrf_conf_srcgem.rb']
110
+
111
+ # Extension binaries gem file
112
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :extbin)}.gem") => R2CORBA::Gem.manifest(:extbin, true) do
113
+ unless defined?(JRUBY_VERSION)
114
+ # prepare required shared libs for ext libs
115
+ if R2CORBA::Config.is_win32
116
+ ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
117
+ elsif R2CORBA::Config.is_linux
118
+ ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
119
+ else
120
+ ext_deplibs = R2CORBA::Ext.ace_shlibs
121
+ end
122
+ ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
123
+ end
124
+ begin
125
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :extbin) do |gem|
126
+ gem.summary = %Q{CORBA language mapping implementation for Ruby (extension binaries)}
127
+ gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. (extension binaries)}
128
+ gem.email = 'mcorino@remedy.nl'
129
+ gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
130
+ gem.authors = ['Martin Corino']
131
+ gem.files = R2CORBA::Gem.manifest(:extbin)
132
+ gem.extensions = []
133
+ gem.require_paths = %w{ext}
134
+ gem.executables = []
135
+ if R2CORBA::Config.rb_ver_major < 2
136
+ gem.required_ruby_version = '>= 1.9.3'
137
+ else
138
+ gem.required_ruby_version = '>= 2.0.0'
139
+ end
140
+ gem.licenses = ['R2CORBA', 'ACE']
141
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so'
142
+ end
143
+ R2CORBA::Gem.build_gem(gemspec)
144
+ ensure
145
+ ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
146
+ end
147
+ end
148
+
149
+ # binary gem file
150
+ t_ = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba', R2CORBA::R2CORBA_VERSION, :bin)}.gem") => R2CORBA::Gem.manifest(:bin, true) do
151
+ unless defined?(JRUBY_VERSION)
152
+ if ENV['FULL_BINGEM']
153
+ # prepare required shared libs for ext libs
154
+ if R2CORBA::Config.is_win32
155
+ ext_deplibs = R2CORBA::Ext.ace_shlibs + R2CORBA::Ext.sys_dlls
156
+ elsif R2CORBA::Config.is_linux
157
+ ext_deplibs = R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| Dir.glob(acelib).first }
158
+ else
159
+ ext_deplibs = R2CORBA::Ext.ace_shlibs
160
+ end
161
+ ext_deplibs.each {|deplib| cp(deplib, File.join('ext', File.basename(deplib)), :verbose => false) }
162
+ else
163
+ touch(File.join('ext', '.keep'))
164
+ end
165
+ end
166
+ begin
167
+ # create gemspec
168
+ gemspec = R2CORBA::Gem.define_spec('r2corba', R2CORBA::R2CORBA_VERSION, :bin) do |gem|
169
+ gem.summary = %Q{CORBA language mapping implementation for Ruby}
170
+ gem.description = %Q{OMG CORBA v. 3.3 compliant CORBA language mapping implementation for Ruby. Depends on ridl gem for providing native Ruby IDL compiler. }
171
+ gem.email = 'mcorino@remedy.nl'
172
+ gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
173
+ gem.authors = ['Martin Corino']
174
+ gem.files = R2CORBA::Gem.manifest(:bin)
175
+ gem.require_paths = %w{lib}
176
+ gem.executables = %w{ridlc rins r2corba}
177
+ gem.extensions = ['mkrf_conf_bingem.rb']
178
+ if defined?(JRUBY_VERSION)
179
+ gem.require_paths << 'jacorb/lib'
180
+ gem.required_ruby_version = '>= 1.7.0'
181
+ gem.licenses = ['R2CORBA', 'JacORB']
182
+ else
183
+ gem.files << File.join('ext', '.keep') unless ENV['FULL_BINGEM'] # to force installation of ext folder if libs are left out
184
+ gem.required_ruby_version = '>= 1.9.3'
185
+ gem.licenses = ['R2CORBA', 'ACE', 'GPL']
186
+ gem.require_paths << 'ext'
187
+ end
188
+ gem.add_dependency 'ridl', '~> 2.5'
189
+ gem.add_dependency 'rake', '~> 10.0'
190
+ gem.rdoc_options << '--exclude=\\.dll' << '--exclude=\\.so' << '--exclude=\\.pidlc'
191
+ end
192
+ R2CORBA::Gem.build_gem(gemspec)
193
+ ensure
194
+ if ENV['FULL_BINGEM']
195
+ ext_deplibs.each {|deplib| rm_f(File.join('ext', File.basename(deplib)), :verbose => false) } unless defined?(JRUBY_VERSION)
196
+ else
197
+ rm_f(File.join('ext', '.keep')) unless defined?(JRUBY_VERSION)
198
+ end
199
+ end
200
+ end
201
+ t_.enhance ['mkrf_conf_bingem.rb']
202
+
203
+ unless defined?(JRUBY_VERSION) || !R2CORBA::Config.is_win32
204
+ # Devkit faker Gem for binary Windows gems
205
+ t_devkit = file File.join('pkg', "#{R2CORBA::Gem.gem_name('r2corba_devkit', '1.0.0', :devkit)}.gem") => 'lib/rubygems_plugin.rb' do
206
+ # create gemspec
207
+ gemspec = R2CORBA::Gem.define_spec('r2corba_devkit', '1.0.0', :devkit) do |gem|
208
+ gem.summary = %Q{R2CORBA Devkit faker for RubyInstaller Rubies}
209
+ gem.description = %Q{Fake Devkit loader to satisfy stupid RubyInstaller pre-install hook. }
210
+ gem.email = 'mcorino@remedy.nl'
211
+ gem.homepage = "https://osportal.remedy.nl/projects/r2corba"
212
+ gem.authors = ['Martin Corino']
213
+ gem.files = 'lib/rubygems_plugin.rb'
214
+ gem.require_paths = %w{lib}
215
+ gem.executables = []
216
+ gem.extensions = []
217
+ gem.required_ruby_version = '>= 1.9.3'
218
+ gem.licenses = ['R2CORBA']
219
+ end
220
+ R2CORBA::Gem.build_gem(gemspec)
221
+ end
222
+ namespace :r2corba do
223
+ namespace :gem do
224
+ task :devkit => t_devkit.name
225
+ end
226
+ end
227
+ end
228
+
229
+ desc 'Build R2CORBA gem'
230
+ if defined?(JRUBY_VERSION)
231
+ task :gem => 'r2corba:gem:bingem'
232
+ elsif R2CORBA::Config.is_win32
233
+ task :gem => 'r2corba:gem:bingem'
234
+ else
235
+ task :gem => 'r2corba:gem:srcgem'
212
236
  end
data/rakelib/gem.rb CHANGED
@@ -1,146 +1,146 @@
1
- #--------------------------------------------------------------------
2
- # gem.rb - build file
3
- #
4
- # Author: Martin Corino
5
- #
6
- # This program is free software; you can redistribute it and/or
7
- # modify it under the terms of the R2CORBA LICENSE which is
8
- # included with this program.
9
- #
10
- # Copyright (c) Remedy IT Expertise BV
11
- # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
- #--------------------------------------------------------------------
13
-
14
- require 'rubygems'
15
- begin
16
- require 'rubygems/builder'
17
- rescue LoadError
18
- require 'rubygems/package'
19
- end
20
-
21
- require File.join(File.dirname(__FILE__), 'config.rb')
22
- unless defined?(JRUBY_VERSION)
23
- require File.join(File.dirname(__FILE__), 'ext.rb')
24
- end
25
-
26
- module R2CORBA
27
-
28
- module Gem
29
-
30
- unless defined?(JRUBY_VERSION)
31
-
32
- @@ace_dlls = nil
33
-
34
- def self.ace_dlls
35
- unless @@ace_dlls
36
- @@ace_dlls = []
37
- # collect required dll paths
38
- if R2CORBA::Config.is_win32
39
- @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
40
- @@ace_dlls.concat(R2CORBA::Ext.sys_dlls.collect {|sysdll| File.join('ext', File.basename(sysdll))})
41
- elsif R2CORBA::Config.is_linux
42
- @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| File.join('ext', File.basename(Dir.glob(acelib).first)) })
43
- else
44
- @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
45
- end
46
- end
47
- @@ace_dlls
48
- end
49
- end
50
-
51
- def self.manifest(gemtype = :src, exclude_ace_dll = false)
52
- # create MANIFEST list with included files
53
- manifest = []
54
- if gemtype == :bin
55
- manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
56
- manifest.concat %w{bin/ridlc.bat bin/rins.bat bin/r2corba.bat} if R2CORBA::Config.is_win32 || defined?(JRUBY_VERSION)
57
- if defined?(JRUBY_VERSION)
58
- manifest.concat(Dir['jacorb/lib/*.jar'].select do |fnm|
59
- !%w{idl jacorb-sources picocontainer wrapper}.any? {|nm| /^#{nm}/ =~ File.basename(fnm) }
60
- end)
61
- elsif ENV['FULL_BINGEM']
62
- manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
63
- manifest.concat(Dir['ext/*.so'])
64
- end
65
- manifest.concat Dir['lib/corba/**/*']
66
- manifest.concat Dir['lib/ridlbe/**/*']
67
- manifest << 'lib/corba.rb'
68
- manifest.concat Dir['test/**/*']
69
- manifest.concat %w{LICENSE README THANKS CHANGES mkrf_conf_bingem.rb}
70
- manifest << 'LICENSE.jacorb' if defined?(JRUBY_VERSION)
71
- elsif gemtype == :extbin
72
- unless defined?(JRUBY_VERSION)
73
- manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
74
- manifest.concat(Dir['ext/*.so'])
75
- end
76
- else
77
- manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
78
- manifest.concat Dir['ext/**/*.{rb,c,cpp,h,mwc}']
79
- manifest.concat Dir['lib/corba/**/*[^CS].*'].select {|path| File.basename(path) != 'r2c_orb.rb'}
80
- manifest.concat Dir['lib/ridlbe/**/*.[^p]*']
81
- manifest << 'lib/corba.rb'
82
- manifest.concat Dir['test/**/*']
83
- manifest.concat %w{LICENSE README THANKS CHANGES mkrf_conf_srcgem.rb}
84
- end
85
- unless gemtype == :extbin
86
- if defined?(JRUBY_VERSION)
87
- manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help|ext/ =~ fnm ? false : true })
88
- else
89
- manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help/ =~ fnm ? false : true })
90
- end
91
- end
92
- manifest
93
- end
94
-
95
- def self.define_spec(name, version, gemtype = :src, &block)
96
- name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
97
- name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
98
- gemspec = ::Gem::Specification.new(name,version.dup)
99
- if gemtype == :bin || gemtype == :extbin
100
- gemspec.platform = ::Gem::Platform::CURRENT
101
- end
102
- gemspec.required_rubygems_version = ::Gem::Requirement.new(">= 0") if gemspec.respond_to? :required_rubygems_version=
103
- block.call(gemspec) if block_given?
104
- gemspec
105
- end
106
-
107
- def self.gem_name(name, version, gemtype = :src)
108
- name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
109
- name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
110
- gemspec = ::Gem::Specification.new(name,version.dup)
111
- if gemtype == :bin || gemtype == :extbin
112
- gemspec.platform = ::Gem::Platform::CURRENT
113
- end
114
- gemspec.full_name
115
- end
116
-
117
- def self.build_gem(gemspec)
118
- if defined?(::Gem::Builder)
119
- gem_file_name = ::Gem::Builder.new(gemspec).build
120
- else
121
- gem_file_name = ::Gem::Package.build(gemspec)
122
- end
123
-
124
- FileUtils.mkdir_p('pkg')
125
-
126
- FileUtils.mv(gem_file_name, 'pkg')
127
- end
128
-
129
- unless defined?(JRUBY_VERSION) || R2CORBA::Config.is_win32
130
- def self.patch_extlib_rpath
131
- if R2CORBA::Config.is_osx
132
- # TODO
133
- else
134
- rpath = "#{File.expand_path('ext')}:#{get_config('libdir')}"
135
- Dir['ext/*.so'].each do |extlib|
136
- unless Rake.sh("#{R2CORBA::Config.rpath_patch} '#{rpath}' #{extlib}")
137
- raise 'Failed to patch RPATH for #{extlib}'
138
- end
139
- end
140
- end
141
- end
142
- end
143
-
144
- end
145
-
1
+ #--------------------------------------------------------------------
2
+ # gem.rb - build file
3
+ #
4
+ # Author: Martin Corino
5
+ #
6
+ # This program is free software; you can redistribute it and/or
7
+ # modify it under the terms of the R2CORBA LICENSE which is
8
+ # included with this program.
9
+ #
10
+ # Copyright (c) Remedy IT Expertise BV
11
+ # Chamber of commerce Rotterdam nr.276339, The Netherlands
12
+ #--------------------------------------------------------------------
13
+
14
+ require 'rubygems'
15
+ require 'rubygems/package'
16
+ begin
17
+ require 'rubygems/builder'
18
+ rescue LoadError
19
+ end
20
+
21
+ require File.join(File.dirname(__FILE__), 'config.rb')
22
+ unless defined?(JRUBY_VERSION)
23
+ require File.join(File.dirname(__FILE__), 'ext.rb')
24
+ end
25
+
26
+ module R2CORBA
27
+
28
+ module Gem
29
+
30
+ unless defined?(JRUBY_VERSION)
31
+
32
+ @@ace_dlls = nil
33
+
34
+ def self.ace_dlls
35
+ unless @@ace_dlls
36
+ @@ace_dlls = []
37
+ # collect required dll paths
38
+ if R2CORBA::Config.is_win32
39
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
40
+ @@ace_dlls.concat(R2CORBA::Ext.sys_dlls.collect {|sysdll| File.join('ext', File.basename(sysdll))})
41
+ elsif R2CORBA::Config.is_linux
42
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs('.so.*').collect {|acelib| File.join('ext', File.basename(Dir.glob(acelib).first)) })
43
+ else
44
+ @@ace_dlls.concat(R2CORBA::Ext.ace_shlibs(R2CORBA::Ext.so_ext, 'ext'))
45
+ end
46
+ end
47
+ @@ace_dlls
48
+ end
49
+ end
50
+
51
+ def self.manifest(gemtype = :src, exclude_ace_dll = false)
52
+ # create MANIFEST list with included files
53
+ manifest = []
54
+ if gemtype == :bin
55
+ manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
56
+ manifest.concat %w{bin/ridlc.bat bin/rins.bat bin/r2corba.bat} if R2CORBA::Config.is_win32 || defined?(JRUBY_VERSION)
57
+ if defined?(JRUBY_VERSION)
58
+ manifest.concat(Dir['jacorb/lib/*.jar'].select do |fnm|
59
+ !%w{idl jacorb-sources picocontainer wrapper}.any? {|nm| /^#{nm}/ =~ File.basename(fnm) }
60
+ end)
61
+ elsif ENV['FULL_BINGEM']
62
+ manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
63
+ manifest.concat(Dir['ext/*.so'])
64
+ end
65
+ manifest.concat Dir['lib/corba/**/*']
66
+ manifest.concat Dir['lib/ridlbe/**/*']
67
+ manifest << 'lib/corba.rb'
68
+ manifest.concat Dir['test/**/*']
69
+ manifest.concat %w{LICENSE README THANKS CHANGES mkrf_conf_bingem.rb}
70
+ manifest << 'LICENSE.jacorb' if defined?(JRUBY_VERSION)
71
+ elsif gemtype == :extbin
72
+ unless defined?(JRUBY_VERSION)
73
+ manifest.concat(R2CORBA::Gem.ace_dlls) unless exclude_ace_dll
74
+ manifest.concat(Dir['ext/*.so'])
75
+ end
76
+ else
77
+ manifest.concat %w{bin/ridlc bin/rins bin/r2corba}
78
+ manifest.concat Dir['ext/**/*.{rb,c,cpp,h,mwc}']
79
+ manifest.concat Dir['lib/corba/**/*[^CS].*'].select {|path| File.basename(path) != 'r2c_orb.rb'}
80
+ manifest.concat Dir['lib/ridlbe/**/*.[^p]*']
81
+ manifest << 'lib/corba.rb'
82
+ manifest.concat Dir['test/**/*']
83
+ manifest.concat %w{LICENSE README THANKS CHANGES mkrf_conf_srcgem.rb}
84
+ end
85
+ unless gemtype == :extbin
86
+ if defined?(JRUBY_VERSION)
87
+ manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help|ext/ =~ fnm ? false : true })
88
+ else
89
+ manifest.concat(Dir['rakelib/**/*'].select {|fnm| /install|help/ =~ fnm ? false : true })
90
+ end
91
+ end
92
+ manifest
93
+ end
94
+
95
+ def self.define_spec(name, version, gemtype = :src, &block)
96
+ name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
97
+ name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
98
+ gemspec = ::Gem::Specification.new(name,version.dup)
99
+ if gemtype == :bin || gemtype == :extbin
100
+ gemspec.platform = defined?(JRUBY_VERSION) ? ::Gem::Platform.new('universal-java') : ::Gem::Platform::CURRENT
101
+ end
102
+ gemspec.required_rubygems_version = ::Gem::Requirement.new(">= 0") if gemspec.respond_to? :required_rubygems_version=
103
+ block.call(gemspec) if block_given?
104
+ gemspec
105
+ end
106
+
107
+ def self.gem_name(name, version, gemtype = :src)
108
+ name += '_ext' if gemtype == :extbin && !defined?(JRUBY_VERSION)
109
+ name = "#{name}#{R2CORBA::Config.rb_ver_major}#{R2CORBA::Config.rb_ver_minor}" if (gemtype == :extbin || (gemtype == :bin && ENV['FULL_BINGEM'])) && !defined?(JRUBY_VERSION)
110
+ gemspec = ::Gem::Specification.new(name,version.dup)
111
+ if gemtype == :bin || gemtype == :extbin
112
+ gemspec.platform = defined?(JRUBY_VERSION) ? ::Gem::Platform.new('universal-java') : ::Gem::Platform::CURRENT
113
+ end
114
+ gemspec.full_name
115
+ end
116
+
117
+ def self.build_gem(gemspec)
118
+ if defined?(::Gem::Package) && ::Gem::Package.respond_to?(:build)
119
+ gem_file_name = ::Gem::Package.build(gemspec)
120
+ else
121
+ gem_file_name = ::Gem::Builder.new(gemspec).build
122
+ end
123
+
124
+ FileUtils.mkdir_p('pkg')
125
+
126
+ FileUtils.mv(gem_file_name, 'pkg')
127
+ end
128
+
129
+ unless defined?(JRUBY_VERSION) || R2CORBA::Config.is_win32
130
+ def self.patch_extlib_rpath
131
+ if R2CORBA::Config.is_osx
132
+ # TODO
133
+ else
134
+ rpath = "#{File.expand_path('ext')}:#{get_config('libdir')}"
135
+ Dir['ext/*.so'].each do |extlib|
136
+ unless Rake.sh("#{R2CORBA::Config.rpath_patch} '#{rpath}' #{extlib}")
137
+ raise 'Failed to patch RPATH for #{extlib}'
138
+ end
139
+ end
140
+ end
141
+ end
142
+ end
143
+
144
+ end
145
+
146
146
  end