rake-compiler 1.1.0 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
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