rake-compiler 1.1.1 → 1.1.2

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: 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.