rake-compiler 1.1.0 → 1.1.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35e7db61186e6ac822ec48065191781a60a74a088c902f62f369675b99f9733c
4
- data.tar.gz: '07856d6a003ba10db84433ecf3aba56d03a96f9e847367e8fecc71b82b2fa1cb'
3
+ metadata.gz: 2df6d32ecd0f965fa8cc4bcf0e9f759bfe8e73ec5bf63f87999c1eef85bbb5b9
4
+ data.tar.gz: 3d2667098cfec7225cdb964a3a583057cde8e4b4567bf0f55fa3ea536274c1ae
5
5
  SHA512:
6
- metadata.gz: 2051ec91b94117a923675a75662f0a5708906bcb8b1dbdb615320e1e5a1d767613ff208644c4ac3c79ee6b94d95a519717bd561f1294f48144c089c022e9d3e2
7
- data.tar.gz: b5c3a4f6e3a263cfa15f2a26cbc836f8cbf5af5f1ee5e874c9c9386b179db2cad57dfcf15b7c97fec070221f3bbe0de1c9b958be8a5c1cc2ebbf311408a2aa01
6
+ metadata.gz: f43f6999c6303f0b7bae2557aed5491c3d075a85708fc03df61012c345f7bfdc5388c85570d23d30a50d43d21243704f0b4d0041e251920e73471ff8a62d810c
7
+ data.tar.gz: 826c274c9cf1a6d5bb4a7e8c46e933e0aa144c18a02f8c5fe42b7f845ee346d150cfd6111a6073d5d98bcd18d645f2632a6dd640d4bb882d7153a5fee9073f00
data/History.md ADDED
@@ -0,0 +1,522 @@
1
+ ### 1.1.4 / 2021-12-11
2
+
3
+ * Fixes:
4
+ * Fix a regression bug that installed gem can't be found on cross compile.
5
+ [#195](https://github.com/rake-compiler/rake-compiler/issues/195) [Reported by Mike Dalessio]
6
+
7
+ ### 1.1.3 / 2021-12-08
8
+
9
+ * Fixes:
10
+ * Fix a regression bug that wrong install location is used.
11
+ [#194](https://github.com/rake-compiler/rake-compiler/issues/194) [Reported by Andrew Kane]
12
+
13
+ ### 1.1.2 / 2021-12-07
14
+
15
+ * Changes:
16
+ * Use .tar.gz instead of .tar.bz2 for Ruby archive.
17
+ [#179](https://github.com/rake-compiler/rake-compiler/pull/179) [Patch by Masaki Hara]
18
+ * Stop removing `CC`, `CXX`, `CPPFLAGS` and `LDFLAGS` environment variables for cross-build.
19
+ [#182](https://github.com/rake-compiler/rake-compiler/pull/182) [Patch by Lars Kanis]
20
+ * Remove IronRuby related message.
21
+ [#184](https://github.com/rake-compiler/rake-compiler/pull/184) [Patch by Thomas E Enebo]
22
+ * Suppress a warning.
23
+ [#185](https://github.com/rake-compiler/rake-compiler/pull/185) [Patch by Olle Jonsson]
24
+ * Rename `History.txt` to `History.md`.
25
+ [#174](https://github.com/rake-compiler/rake-compiler/pull/174) [Patch by MSP-Greg]
26
+ * Use `make install` instead of copying artifacts manually.
27
+ [#191](https://github.com/rake-compiler/rake-compiler/pull/191) [Patch by Lars Kanis]
28
+
29
+ * Enhancements:
30
+ * Add support for building cross rubies in parallel.
31
+ [#169](https://github.com/rake-compiler/rake-compiler/pull/169) [Patch by Lars Kanis]
32
+ * Use `RAKE_EXTENSION_TASK_NO_NATIVE` environment variable as the default `no_native` value.
33
+ * Add support for `rake native gem` without `cross`.
34
+ [#166](https://github.com/rake-compiler/rake-compiler/pull/166) [Patch by Lars Kanis]
35
+
36
+ ### 1.1.1 / 2020-07-10
37
+
38
+ * Changes:
39
+ * Bump the default Java bytecode to 1.7.
40
+ [#172](https://github.com/rake-compiler/rake-compiler/pull/172) [Patch by Charles Oliver Nutter]
41
+
42
+ * Enhancements:
43
+ * Add support for finding x86_64 MinGW GCC.
44
+ [#164](https://github.com/rake-compiler/rake-compiler/pull/164) [Patch by Lars Kanis]
45
+ * Strip cross compiled shared library automatically.
46
+ [#165](https://github.com/rake-compiler/rake-compiler/pull/165) [Patch by Lars Kanis]
47
+
48
+ ### 1.1.0 / 2019-12-25
49
+
50
+ * Bugfixes:
51
+ * Fix a bug that JavaExtenstionTask can't build anything.
52
+ [#163](https://github.com/rake-compiler/rake-compiler/issues/163) [Reported by Kai Kuchenbecker]
53
+
54
+ ### 1.0.9 / 2019-12-23
55
+
56
+ * Changes:
57
+ * Use "-Xlint" option for JRuby native extension by default.
58
+ [#158](https://github.com/rake-compiler/rake-compiler/pull/158) [Patch by Stephen George]
59
+
60
+ * Enhancements:
61
+ * Make customizable compiler Xlint option for JRuby native extension.
62
+ [#118](https://github.com/rake-compiler/rake-compiler/pull/118) [Patch by Hiroshi Hatake]
63
+ * Add support for Ruby 2.7.
64
+ [#161](https://github.com/rake-compiler/rake-compiler/pull/161) [Reported by Masaki Hara]
65
+
66
+ ### 1.0.8 / 2019-09-21
67
+
68
+ * Enhancements:
69
+ * Added Rake::JavaExtensionTask#encoding= to pass the -encoding option to
70
+ javac.
71
+ [#157](https://github.com/rake-compiler/rake-compiler/pull/157) [Patch by Tiago Dias]
72
+
73
+ * Bugfixes:
74
+ * Drop EOL'd rubyforge_project directive from .gemspec.
75
+ [#155](https://github.com/rake-compiler/rake-compiler/pull/155) [Patch by Olle Jonsson]
76
+
77
+ ### 1.0.7 / 2019-01-04
78
+
79
+ * Bugfixes:
80
+ * Fix a bug that JRuby class path detection is failed on
81
+ cross-compilation.
82
+ [#149](https://github.com/rake-compiler/rake-compiler/issues/149) [#151](https://github.com/rake-compiler/rake-compiler/pull/151) [Reported by Chalupa Petr][Patch by Prashant Vithani]
83
+
84
+ ### 1.0.6 / 2018-12-23
85
+
86
+ * Enhancements:
87
+ * Stop to make unreleased Ruby installable.
88
+ [#150](https://github.com/rake-compiler/rake-compiler/issues/150) [Reported by MSP-Greg]
89
+
90
+ ### 1.0.5 / 2018-08-31
91
+
92
+ * Enhancements:
93
+ * Improve JRuby class pass detection.
94
+ [#147](https://github.com/rake-compiler/rake-compiler/pull/147) [Patch by Prashant Vithani]
95
+ * Update the default source and target versions to Java 6.
96
+ [#148](https://github.com/rake-compiler/rake-compiler/pull/148) [Patch by Prashant Vithani]
97
+
98
+ ### 1.0.4 / 2017-05-27
99
+
100
+ * Enhancements:
101
+ * Migrate to RSpec 3 from RSpec 2.
102
+ * Add more tests.
103
+ [#140](https://github.com/rake-compiler/rake-compiler/pull/140) [Patch by Lars Kanis]
104
+ * Support C++ source files by default.
105
+ [#141](https://github.com/rake-compiler/rake-compiler/pull/141) [Patch by Takashi Kokubun]
106
+ * Suppress warnings.
107
+ [#142](https://github.com/rake-compiler/rake-compiler/pull/142) [Patch by Akira Matsuda]
108
+
109
+ ### 1.0.3 / 2016-12-02
110
+
111
+ * Enhancements:
112
+ * Support specifying required Ruby versions.
113
+ [#137](https://github.com/rake-compiler/rake-compiler/pull/137) [Patch by Lars Kanis]
114
+
115
+ ### 1.0.2 / 2016-11-13
116
+
117
+ * Bugfixes:
118
+ * Fix Ruby version detection example code in README.
119
+ [#135](https://github.com/rake-compiler/rake-compiler/pull/135) [Patch by Nicolas Noble]
120
+ * Fix version detection.
121
+ [#136](https://github.com/rake-compiler/rake-compiler/pull/136) [Patch by Lars Kanis]
122
+
123
+ ### 1.0.1 / 2016-06-21
124
+
125
+ * Bugfixes:
126
+ * Add missing dependency.
127
+
128
+ ### 1.0.0 / 2016-06-21
129
+
130
+ * Enhancements:
131
+ * Really support extension in sub directory.
132
+
133
+ ### 0.9.9 / 2016-05-10
134
+
135
+ * Bugfixes:
136
+ * Support Symbol as extension name again.
137
+ [#134](https://github.com/rake-compiler/rake-compiler/pull/134) [Patch by Takashi Kokubun]
138
+
139
+ ### 0.9.8 / 2016-04-29
140
+
141
+ * Enhancements:
142
+ * Support extension in sub directory.
143
+ [#128](https://github.com/rake-compiler/rake-compiler/pull/128), [#129](https://github.com/rake-compiler/rake-compiler/pull/129) [Patch by Kenta Murata]
144
+
145
+ ### 0.9.7 / 2016-03-16
146
+
147
+ * Bugfixes:
148
+ * May fix "make" detection on Windows.
149
+ [#123](https://github.com/rake-compiler/rake-compiler/issues/123) [Reported by Aaron Stone]
150
+
151
+ ### 0.9.6 / 2016-03-04
152
+
153
+ * Enhancements:
154
+ * Add more descriptions into README.
155
+ Closes [#105](https://github.com/rake-compiler/rake-compiler/pull/105) [Patch by Aaron Stone]
156
+ * Remove needless executable bits.
157
+ Closes [#107](https://github.com/rake-compiler/rake-compiler/pull/107) [Patch by Thibault Jouan]
158
+ * Update .gitignore.
159
+ Closes [#108](https://github.com/rake-compiler/rake-compiler/pull/108) [Patch by Thibault Jouan]
160
+ * Improve "make" detection on some platforms such as FreeBSD.
161
+ Closes [#109](https://github.com/rake-compiler/rake-compiler/pull/109) [Patch by Thibault Jouan]
162
+ * Enable cucumber steps for POSIX on *BSD.
163
+ Closes [#110](https://github.com/rake-compiler/rake-compiler/pull/110) [Patch by Thibault Jouan]
164
+ * Stop to build bundled extensions.
165
+ * Add description about CLI option into README.
166
+ Closes [#115](https://github.com/rake-compiler/rake-compiler/pull/115) [Patch by Richard Michael]
167
+ * Update description about using rake-compiler on virtual machine in
168
+ README.
169
+ Closes [#116](https://github.com/rake-compiler/rake-compiler/pull/116), [#117](https://github.com/rake-compiler/rake-compiler/pull/117) [Patch by Lars Kanis]
170
+ * Update fake mechanism to be compatible with Bundler.
171
+ Closes [#121](https://github.com/rake-compiler/rake-compiler/pull/121) [Patch by Lars Kanis]
172
+
173
+ * Bugfixes:
174
+ * Fix typos in README.
175
+ Closes [#102](https://github.com/rake-compiler/rake-compiler/pull/102), [#103](https://github.com/rake-compiler/rake-compiler/pull/103) [Patch by Robert Fletcher]
176
+
177
+ ### 0.9.5 / 2015-01-03
178
+
179
+ * Enhancements:
180
+ * Support adding bundled files in cross_compiling block.
181
+ Closes [#100](https://github.com/rake-compiler/rake-compiler/pull/100) [Patch by Aaron Stone]
182
+
183
+ ### 0.9.4 / 2014-12-28
184
+
185
+ * Notes:
186
+ * Change maintainer to Kouhei Sutou from Luis Lavena.
187
+ Thanks Luis Lavena for your great works!
188
+ * Change repository to https://github.com/rake-compiler/rake-compiler
189
+ from https://github.com/luislavena/rake-compiler .
190
+
191
+ * Bugfixes:
192
+ * Loose RubyGems dependency a little bit to ease old Debian/Ubuntu.
193
+ Closes [#93](https://github.com/rake-compiler/rake-compiler/issues/93)
194
+
195
+ ### 0.9.3 / 2014-08-03
196
+
197
+ * Bugfixes:
198
+ * Fix specs to run (and pass) on Ruby 2.1 and beyond.
199
+ Pull [#94](https://github.com/rake-compiler/rake-compiler/pull/94) [hggh]
200
+
201
+ ### 0.9.2 / 2013-11-14
202
+
203
+ * Bugfixes:
204
+ * Pre-load resolver to avoid Bundler blow up during cross-compilation
205
+ Pull [#83](https://github.com/rake-compiler/rake-compiler/pull/83) [larskanis]
206
+
207
+ ### 0.9.1 / 2013-08-03
208
+
209
+ * Bugfixes:
210
+ * Restore compatibility with RubyGems platforms for cross-compilation
211
+ (i386-mingw32 and x86-mingw32 are the same and supported)
212
+
213
+ ### 0.9.0 / 2013-08-03
214
+
215
+ * Enhancements:
216
+ * Add support for cross-builds and multiple platforms (x86/x64).
217
+ Pull [#74](https://github.com/rake-compiler/rake-compiler/pull/74) [larskanis]
218
+
219
+ ```text
220
+ $ rake-compiler cross-ruby VERSION=1.8.7-p371
221
+ $ rake-compiler cross-ruby VERSION=1.9.3-p392
222
+ $ rake-compiler cross-ruby VERSION=2.0.0-p0
223
+ $ rake-compiler cross-ruby VERSION=2.0.0-p0 HOST=x86_64-w64-mingw32
224
+ $ rake cross compile RUBY_CC_VERSION=1.8.7:1.9.3:2.0.0
225
+
226
+ # Rakefile
227
+ ext.cross_platform = %w[i386-mingw32 x64-mingw32]
228
+ ```
229
+
230
+ * Support for cross-platform specific options. Pull [#74](https://github.com/rake-compiler/rake-compiler/pull/74) [larskanis]
231
+
232
+ ```ruby
233
+ # Rakefile
234
+ ext.cross_config_options << "--with-common-option"
235
+ ext.cross_config_options << {"x64-mingw32" => "--enable-64bits"}
236
+ ```
237
+
238
+ * Bugfixes:
239
+ * Correct fat-gems support caused by RubyGems issues. Pull [#76](https://github.com/rake-compiler/rake-compiler/pull/76) [knu]
240
+
241
+ * Deprecations:
242
+ * Requires minimum Ruby 1.8.7 and RubyGems 1.8.25
243
+ * Usage of 'i386-mswin32' needs to be changed to 'i386-mswin32-60'
244
+
245
+ ### 0.9.0.pre.1 / 2013-05-05
246
+
247
+ See 0.9.0 changes.
248
+
249
+ ### 0.8.3 / 2013-02-16
250
+
251
+ * Bugfixes:
252
+ * Support FreeBSD 'mingw32-gcc' cross compiler. Closes [#72](https://github.com/rake-compiler/rake-compiler/pull/72) [knu]
253
+
254
+ ### 0.8.2 / 2013-01-11
255
+
256
+ * Bugfixes:
257
+ * Unset CC, LDFLAGS and CPPFLAGS prior cross-compiling. Closes [#55](https://github.com/rake-compiler/rake-compiler/issues/55)
258
+
259
+ ### 0.8.1 / 2012-04-15
260
+
261
+ * Bugfixes:
262
+ * Raise error when either make or gmake could be found. Closes [#53](https://github.com/rake-compiler/rake-compiler/issues/53), [#54](https://github.com/rake-compiler/rake-compiler/pull/54)
263
+
264
+ ### 0.8.0 / 2012-01-08
265
+
266
+ * Enhancements:
267
+ * Invocation from command line now support extra options similar to RubyGems.
268
+ Closes [#4](https://github.com/rake-compiler/rake-compiler/issues/4) from Pull [#47](https://github.com/rake-compiler/rake-compiler/pull/47) [jonforums]
269
+
270
+ $ rake compile -- --with-opt-dir=/opt/local
271
+
272
+ * Bugfixes:
273
+ * Only emit cross-compilation warnings for C when `cross` is invoked.
274
+ Closes [#16](https://github.com/rake-compiler/rake-compiler/issues/16) from Pull [#48](https://github.com/rake-compiler/rake-compiler/pull/48) [mvz]
275
+ * Only emit warnings when invoking cross-compilation tasks for JRuby.
276
+ Pull [#45](https://github.com/rake-compiler/rake-compiler/pull/45) [jfirebaugh]
277
+ * Use x86 MinGW cross-compiler. Pull [#49](https://github.com/rake-compiler/rake-compiler/pull/49) [larskanis]
278
+
279
+ ### 0.7.9 / 2011-06-08
280
+
281
+ * Enhancements:
282
+ * Consistently use RubyGems features available since version 1.3.2 and avoid
283
+ deprecation warnings with Rake > 0.8.7.
284
+
285
+ * Bugfixes:
286
+ * Use correct platform in fake.rb. Pull [#39](https://github.com/rake-compiler/rake-compiler/pull/39) [kou]
287
+ * Workaround Gem::Specification and Gem::PackageTask limitations. Closes [#43](https://github.com/rake-compiler/rake-compiler/issues/43)
288
+
289
+ ### 0.7.8 / 2011-04-26
290
+
291
+ * Enhancements:
292
+ * Bump default cross-ruby version to 1.8.7-p334.
293
+ * ExtensionTask now support config_includes to load additional directories.
294
+ [jfinkhaeuser]
295
+
296
+ ```ruby
297
+ Rake::ExtensionTask.new("myext", GEM_SPEC) do |ext|
298
+ ext.config_includes << File.expand_path("my", "custom", "dir")
299
+ end
300
+ ```
301
+
302
+ * Bugfixes:
303
+ * Warn if compiled files exists in extension's source directory. Closes [#35](https://github.com/rake-compiler/rake-compiler/issues/35)
304
+ * Workaround issue with WINE using proper build option. Closes [#37](https://github.com/rake-compiler/rake-compiler/issues/37)
305
+ * Use FileUtils#install instead of cp. Closes [#33](https://github.com/rake-compiler/rake-compiler/issues/33) [Eric Wong]
306
+ * Update README instructions for OSX. Closes [#29](https://github.com/rake-compiler/rake-compiler/issues/29) [tmm1]
307
+
308
+ ### 0.7.7 / 2011-04-04
309
+
310
+ * Bugfixes:
311
+ * Use Winsock2 as default to match Ruby 1.9.2 library linking.
312
+
313
+ ### 0.7.6 / 2011-02-04
314
+
315
+ * Bugfixes:
316
+ * Prefer Psych over Syck for YAML parsing on Ruby 1.9.2. [tenderlove]
317
+
318
+ ### 0.7.5 / 2010-11-25
319
+
320
+ * Enhancements:
321
+ * Promoted stable version for cross-compilation to 1.8.6-p398. Closes [#19](https://github.com/rake-compiler/rake-compiler/issues/19)
322
+
323
+ * Bugfixes:
324
+ * Generate a fake.rb compatible with Ruby 1.9.2. Closes [#25](https://github.com/rake-compiler/rake-compiler/issues/25)
325
+ * fake.rb will not try to mimic Ruby's own fake to the letter. Closes [#28](https://github.com/rake-compiler/rake-compiler/issues/28)
326
+ * Expand symlinks for tmp_dir. Closes [#24](https://github.com/rake-compiler/rake-compiler/issues/24)
327
+ * Silence make output during rake-compiler invocation.
328
+ * Usage of Gem.ruby instead of RbConfig ruby_install_name
329
+ This solve issues with ruby vs. ruby.exe and jruby.exe
330
+
331
+ * Experimental:
332
+ * Allow setting of HOST during cross-compilation. This enable usage
333
+ of mingw-w64 compiler and not the first one found in the PATH.
334
+
335
+ rake-compiler cross-ruby VERSION=1.9.2-p0 HOST=i686-w64-mingw32
336
+ rake-compiler cross-ruby HOST=i386-mingw32 (OSX mingw32 port)
337
+ rake-compiler cross-ruby HOST=i586-pc-mingw32 (Debian/Ubuntu mingw32)
338
+
339
+ ### 0.7.1 / 2010-08-07
340
+
341
+ * Bugfixes:
342
+ * Update gem files to make "gem install -t" works. Closes [#14](https://github.com/rake-compiler/rake-compiler/issues/14)
343
+ * Update mocks to work under 1.8.7. Closes [#15](https://github.com/rake-compiler/rake-compiler/issues/15) [luisparravicini]
344
+ * Do not allow cross-ruby be executed under Windows. Closes [#22](https://github.com/rake-compiler/rake-compiler/issues/22)
345
+
346
+ * Experimental:
347
+ * Allow JRuby to compile C extensions [timfel].
348
+ It is now possible compile C extensions using latest JRuby. Offered
349
+ in experimental mode since JRuby cext hasn't been officially released.
350
+
351
+ ### 0.7.0 / 2009-12-08
352
+
353
+ * Enhancements
354
+ * Allow generation of JRuby extensions. Thanks to Alex Coles (myabc) for the
355
+ contribution.
356
+ This will allow, with proper JDK tools, cross compilation of JRuby gems
357
+ from MRI.
358
+
359
+ ```ruby
360
+ Rake::JavaExtensionTask.new('my_java_extension', GEM_SPEC) do |ext|
361
+ # most of ExtensionTask options can be used
362
+ # plus, java_compiling:
363
+ ext.java_compiling do |gem_spec|
364
+ gem_spec.post_install_message = "This is a native JRuby gem!"
365
+ end
366
+ end
367
+ ```
368
+
369
+ Please note that cross-compiling JRuby gems requires either JRUBY_HOME or
370
+ JRUBY_PARENT_CLASSPATH environment variables being properly set.
371
+
372
+ * Allow alteration of the Gem Specification when cross compiling. Closes [#3](https://github.com/rake-compiler/rake-compiler/issues/3)
373
+ This is useful to indicate a custom requirement message, like DLLs
374
+ installation or similar.
375
+
376
+ ```ruby
377
+ Rake::ExtensionTask.new('my_extension', GEM_SPEC) do |ext|
378
+ ext.cross_compile = true
379
+ # ...
380
+ ext.cross_compiling do |gem_spec|
381
+ gem_spec.post_install_message = "You've installed a binary version of this gem"
382
+ end
383
+ end
384
+ ```
385
+
386
+ * Bugfixes
387
+ * Detect GNU make independently of distribution based naming.
388
+ Thanks to flori for patches.
389
+ * Usage of #dup to duplicate gemspec instead of YAML dumping.
390
+ * No longer support Ruby older than 1.8.6
391
+ * No longer support RubyGems older than 1.3.5
392
+ * Force definition of binary directory and executables. Closes [#11](https://github.com/rake-compiler/rake-compiler/issues/11)
393
+ * Workaround path with spaces issues using relative paths. Closes [#6](https://github.com/rake-compiler/rake-compiler/issues/6)
394
+ * Removed gemspec, GitHub gems no more
395
+
396
+ * Known issues
397
+ * Usage of rake-compiler under projects with Jeweler requires some tweaks
398
+ Please read issue 73) for Jeweler:
399
+ http://github.com/technicalpickles/jeweler/issues/73
400
+
401
+ For a workaround, look here:
402
+ http://gist.github.com/251663
403
+
404
+ ### 0.6.0 / 2009-07-25
405
+
406
+ * Enhancements
407
+ * Implemented 'fat-binaries' generation for cross compiling
408
+ (for now). Thanks to Aaron Patterson for the suggestion and
409
+ original idea.
410
+
411
+ rake cross native gem RUBY_CC_VERSION=1.8.6:1.9.1
412
+
413
+ Will package extensions for 1.8 and 1.9 versions of Ruby.
414
+ * Can now cross compile extensions for 1.9 using 1.8.x as base.
415
+ Be warned: works from 1.8 to 1.9, but not if your default ruby is 1.9
416
+
417
+ rake cross compile RUBY_CC_VERSION=1.9.1
418
+
419
+ * Allow simultaneous versions of Ruby to compile extensions.
420
+ This change allow 1.8.x compiles co-exist with 1.9.x ones
421
+ and don't override each other.
422
+
423
+ Please perform <tt>rake clobber</tt> prior compiling again.
424
+ * Allow optional source file URL for cross-compile tasks.
425
+ (Thanks to deepj for the patches)
426
+
427
+ rake-compiler cross-ruby VERSION=1.9.1-p0 SOURCE=http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p0.tar.bz2
428
+
429
+ * Bugfixes
430
+ * Removed strict versioning for gems since it clash with fat binaries.
431
+ From now on, if your gem only targets a specific version of Ruby, please
432
+ indicate it in the Gem::Specification (<tt>required_ruby_version</tt>)
433
+
434
+ ### 0.5.0 / 2009-04-25
435
+
436
+ * Enhancements
437
+ * Allow generation of multiple gems for Windows (EXPERIMENTAL)
438
+ This allows build gems for both VC6 and MinGW builts of Ruby
439
+ (Thanks to Jonathan Stott for the suggestion)
440
+
441
+ ```ruby
442
+ Rake::ExtensionTask.new('my_extension', GEM_SPEC) do |ext|
443
+ ext.cross_compile = true
444
+ ext.cross_platform = ['i386-mswin32', 'i386-mingw32']
445
+ end
446
+ ```
447
+
448
+ ### 0.4.1 / 2009-04-09
449
+
450
+ * Enhancements
451
+ * Target specific versions of Ruby when generating binaries.
452
+ This avoids installing a 1.8.x binary gem in 1.9.x and viceversa.
453
+ (Thanks to Aaron Patterson for the patches)
454
+
455
+ * Bugfixes
456
+ * No longer raises error if rake-compiler configuration is missing.
457
+ Not all users of a project would have it installed.
458
+ (Thanks to Aaron Patterson for the patch)
459
+
460
+ ### 0.4.0 / 2009-04-03
461
+
462
+ * Enhancements
463
+ * Bended the convention for extension folder.
464
+ Defining <tt>ext_dir</tt> for custom extension location.
465
+
466
+ ```ruby
467
+ Rake::ExtensionTask.new('my_extension') do |ext|
468
+ ext.ext_dir = 'custom/location' # look into custom/location
469
+ end # instead of ext/my_extension
470
+ ```
471
+
472
+ * Better detection of mingw target across Linux/OSX.
473
+ Exposed it as Rake::ExtensionCompiler
474
+ * Display list of available tasks when calling rake-compiler script
475
+ * Track Ruby full versioning (x.y.z).
476
+ This will help the compilation of extensions targetting 1.8.6/7 and 1.9.1
477
+
478
+ * Bugfixes
479
+ * Better output of Rake development tasks (Thanks to Luis Parravicini).
480
+ * Proper usage of Gem::Platform for native gems (Thanks to Dirkjan Bussink).
481
+ * Don't use autoload for YAML (present problems with Ruby 1.9.1).
482
+
483
+ ### 0.3.1 / 2009-01-09
484
+
485
+ * Enhancements
486
+ * Download cross-ruby source code using HTTP instead of FTP.
487
+ * Disabled Tcl/Tk extension building on cross-ruby (helps with 1.9).
488
+
489
+ * Bugfixes
490
+ * Workaround bug introduced by lack of Gem::Specification cloning. Fixes DM LH #757.
491
+ * Use proper binary extension on OSX (reported by Dirkjan Bussink).
492
+ * Ensure lib/binary task is defined prior clear of requisites.
493
+
494
+ ### 0.3.0 / 2008-12-07
495
+
496
+ * New features
497
+ * Let you specify the Ruby version used for cross compilation instead
498
+ of default one.
499
+
500
+ rake cross compile RUBY_CC_VERSION=1.8
501
+
502
+ * Enhancements
503
+ * Properly update rake-compiler configuration when new version is installed.
504
+ * Automated release process to RubyForge, yay!
505
+
506
+ * Bugfixes
507
+ * Corrected documentation to reflect the available options
508
+
509
+ ### 0.2.1 / 2008-11-30
510
+
511
+ * New features
512
+
513
+ * Allow cross compilation (cross compile) using mingw32 on Linux or OSX.
514
+ * Allow packaging of gems for Windows on Linux or OSX.
515
+
516
+ * Enhancements
517
+
518
+ * Made generation of extensions safe and target folders per-platform
519
+
520
+ * Bugfixes
521
+
522
+ * Ensure binaries for the specific platform are copied before packaging.
@@ -37,7 +37,7 @@ module Rake
37
37
  paths = ENV['PATH'].split(File::PATH_SEPARATOR)
38
38
 
39
39
  # the pattern to look into (captures *nix and windows executables)
40
- pattern = "{mingw32-,i?86*mingw*}gcc{,.*}"
40
+ pattern = "{mingw32-,i?86*mingw*,x86*mingw*}gcc{,.*}"
41
41
 
42
42
  @mingw_gcc_executable = paths.find do |path|
43
43
  # cleanup paths before globbing
@@ -23,9 +23,11 @@ module Rake
23
23
  @cross_compile = false
24
24
  @cross_config_options = []
25
25
  @cross_compiling = nil
26
- @no_native = false
26
+ @no_native = (ENV["RAKE_EXTENSION_TASK_NO_NATIVE"] == "true")
27
27
  @config_includes = []
28
- @ruby_versions_per_platform = {}
28
+ # Default to an empty list of ruby versions for each platform
29
+ @ruby_versions_per_platform = Hash.new { |h, k| h[k] = [] }
30
+ @make = nil
29
31
  end
30
32
 
31
33
  def cross_platform
@@ -45,15 +47,6 @@ module Rake
45
47
  end
46
48
 
47
49
  def define
48
- if (defined?(RUBY_ENGINE) && RUBY_ENGINE == 'ironruby')
49
- warn_once <<-EOF
50
- WARNING: You're attempting to (cross-)compile C extensions from a platform
51
- (#{RUBY_ENGINE}) that does not support native extensions or mkmf.rb.
52
- Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
53
- EOF
54
- return
55
- end
56
-
57
50
  super
58
51
 
59
52
  unless compiled_files.empty?
@@ -123,6 +116,7 @@ Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
123
116
  tmp_path = "#{@tmp_dir}/#{platf}/#{@name}/#{ruby_ver}"
124
117
  stage_path = "#{@tmp_dir}/#{platf}/stage"
125
118
 
119
+ siteconf_path = "#{tmp_path}/.rake-compiler-siteconf.rb"
126
120
  tmp_binary_path = "#{tmp_path}/#{binary_path}"
127
121
  tmp_binary_dir_path = File.dirname(tmp_binary_path)
128
122
  stage_binary_path = "#{stage_path}/#{lib_path}/#{binary_path}"
@@ -140,10 +134,27 @@ Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
140
134
  directory lib_binary_dir_path
141
135
  directory stage_binary_dir_path
142
136
 
137
+ directory File.dirname(siteconf_path)
138
+ # Set paths for "make install" destinations
139
+ file siteconf_path => File.dirname(siteconf_path) do
140
+ File.open(siteconf_path, "w") do |siteconf|
141
+ siteconf.puts "require 'rbconfig'"
142
+ siteconf.puts "require 'mkmf'"
143
+ siteconf.puts "dest_path = mkintpath(#{File.expand_path(lib_path).dump})"
144
+ %w[sitearchdir sitelibdir].each do |dir|
145
+ siteconf.puts "RbConfig::MAKEFILE_CONFIG['#{dir}'] = dest_path"
146
+ siteconf.puts "RbConfig::CONFIG['#{dir}'] = dest_path"
147
+ end
148
+ end
149
+ end
150
+
143
151
  # copy binary from temporary location to final lib
144
152
  # tmp/extension_name/extension_name.{so,bundle} => lib/
145
- task "copy:#{@name}:#{platf}:#{ruby_ver}" => [lib_binary_dir_path, tmp_binary_path] do
146
- install tmp_binary_path, "#{lib_path}/#{binary_path}"
153
+ task "copy:#{@name}:#{platf}:#{ruby_ver}" => [lib_binary_dir_path, tmp_binary_path, "#{tmp_path}/Makefile"] do
154
+ # install in lib for native platform only
155
+ unless for_platform
156
+ sh "#{make} install target_prefix=", chdir: tmp_path
157
+ end
147
158
  end
148
159
  # copy binary from temporary location to staging directory
149
160
  task "copy:#{@name}:#{platf}:#{ruby_ver}" => [stage_binary_dir_path, tmp_binary_path] do
@@ -172,12 +183,12 @@ Java extension should be preferred.
172
183
 
173
184
  # makefile depends of tmp_dir and config_script
174
185
  # tmp/extension_name/Makefile
175
- file "#{tmp_path}/Makefile" => [tmp_path, extconf] do |t|
186
+ file "#{tmp_path}/Makefile" => [tmp_path, extconf, siteconf_path] do |t|
176
187
  options = @config_options.dup
177
188
 
178
189
  # include current directory
179
190
  include_dirs = ['.'].concat(@config_includes).uniq.join(File::PATH_SEPARATOR)
180
- cmd = [Gem.ruby, "-I#{include_dirs}"]
191
+ cmd = [Gem.ruby, "-I#{include_dirs}", "-r#{File.basename(siteconf_path)}"]
181
192
 
182
193
  # build a relative path to extconf script
183
194
  abs_tmp_path = (Pathname.new(Dir.pwd) + tmp_path).realpath
@@ -242,6 +253,9 @@ Java extension should be preferred.
242
253
  # lib_path
243
254
  lib_path = lib_dir
244
255
 
256
+ # Update compiled platform/version combinations
257
+ @ruby_versions_per_platform[platf] << ruby_ver
258
+
245
259
  # create 'native:gem_name' and chain it to 'native' task
246
260
  unless Rake::Task.task_defined?("native:#{@gem_spec.name}:#{platf}")
247
261
  task "native:#{@gem_spec.name}:#{platf}" do |t|
@@ -254,7 +268,7 @@ Java extension should be preferred.
254
268
  spec.platform = Gem::Platform.new(platf)
255
269
 
256
270
  # set ruby version constraints
257
- ruby_versions = @ruby_versions_per_platform[platf] || []
271
+ ruby_versions = @ruby_versions_per_platform[platf]
258
272
  sorted_ruby_versions = ruby_versions.sort_by do |ruby_version|
259
273
  ruby_version.split(".").collect(&:to_i)
260
274
  end
@@ -357,8 +371,7 @@ Java extension should be preferred.
357
371
  end
358
372
 
359
373
  # Update cross compiled platform/version combinations
360
- ruby_versions = (@ruby_versions_per_platform[for_platform] ||= [])
361
- ruby_versions << version
374
+ @ruby_versions_per_platform[for_platform] << version
362
375
 
363
376
  define_cross_platform_tasks_with_version(for_platform, version)
364
377
 
@@ -403,8 +416,21 @@ Java extension should be preferred.
403
416
  # genearte fake.rb for different ruby versions
404
417
  file "#{tmp_path}/fake.rb" => [rbconfig_file] do |t|
405
418
  File.open(t.name, 'w') do |f|
406
- f.write fake_rb(for_platform, ruby_ver)
407
- f.write File.read(t.prerequisites.first)
419
+ # Keep the original RbConfig::CONFIG["ENABLE_SHARED"] to use
420
+ # the same RubyGems extension directory. See also
421
+ # Gem::BasicSpecificaion#extenions_dir and
422
+ # Gem.extension_api_version.
423
+ #
424
+ # if RbConfig::CONFIG["ENABLE_SHARED"] == "no"
425
+ # "extensions/x86_64-linux/2.5.0-static"
426
+ # else
427
+ # "extensions/x86_64-linux/2.5.0"
428
+ # end
429
+ f.puts("require 'rbconfig'")
430
+ f.puts("original_enable_shared = RbConfig::CONFIG['ENABLE_SHARED']")
431
+ f.puts(fake_rb(for_platform, ruby_ver))
432
+ f.puts(File.read(t.prerequisites.first))
433
+ f.puts("RbConfig::CONFIG['ENABLE_SHARED'] = original_enable_shared")
408
434
  end
409
435
  end
410
436