rake-compiler 1.1.1 → 1.1.2

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