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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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