rake-compiler 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,9 @@
1
+ === 0.9.2 / 2013-11-14
2
+
3
+ * Bugfixes:
4
+ * Pre-load resolver to avoid Bundler blow up during cross-compilation
5
+ Pull #83 [larskanis]
6
+
1
7
  === 0.9.1 / 2013-08-03
2
8
 
3
9
  * Bugfixes:
@@ -225,7 +225,16 @@ How can this be you say? Simple, rake-compiler's cross compilation features
225
225
  take advantage of GCC's host/target capabilities to build 'target' binaries on
226
226
  different 'host' OS's.
227
227
 
228
- === How I do this from Linux or OSX?
228
+ === How do I do this from Linux or OSX?
229
+
230
+ ==== The Easy Way
231
+
232
+ Use rake-compiler-dev-box, a virtual machine provisioned with all the necessary
233
+ build tools. With one command, you can cross-compile and package your gem into
234
+ native, Java, and Windows fat binaries (with 1.8, 1.9, and 2.0 support). See
235
+ https://github.com/tjschuck/rake-compiler-dev-box for more information.
236
+
237
+ ==== The Manual Way
229
238
 
230
239
  In addition to having the development tool chain installed (GCC), you also need to
231
240
  install your platform's <tt>mingw32</tt> cross compilation package.
@@ -256,7 +265,7 @@ Download and extract. After that, make sure the bin directory is added to the PA
256
265
 
257
266
  You can add this to your <tt>.profile</tt> to avoid the repitition.
258
267
 
259
- === I've got my tool-chain installed, now what?
268
+ ==== I've got my tool-chain installed, now what?
260
269
 
261
270
  First, you need to build Ruby for Windows on your Linux or OSX system.
262
271
 
@@ -292,7 +301,7 @@ The host will vary depending on provider (mingw32 versus mingw-w64 projects).
292
301
  Please consult the documentation and website of the MinGW package provider before
293
302
  reporting any issues.
294
303
 
295
- === OK, let's cross compile some gems!
304
+ ==== OK, let's cross compile some gems!
296
305
 
297
306
  Now, you only need specify a few additional options in your extension definition:
298
307
 
@@ -314,7 +323,7 @@ platform for Ruby.
314
323
  To target gems for MRI Ruby's current official distribution, please force the
315
324
  platform to the one (i386-mswin32-60) previously shown.
316
325
 
317
- === Warning, magician about to do some tricks, don't blink!
326
+ ==== Warning, magician about to do some tricks, don't blink!
318
327
 
319
328
  Cross compiling is still very simple:
320
329
 
@@ -326,7 +335,7 @@ And now, building gems for your Windows users is just 5 more letters:
326
335
 
327
336
  And you're done, yeah.
328
337
 
329
- === But wait, there's more
338
+ ==== But wait, there's more
330
339
 
331
340
  You can specify which version of Ruby to build the extension against:
332
341
 
@@ -372,7 +381,7 @@ This approach catch the cases of provided fat binaries or gems compiled by the
372
381
  end user installing the gem. It has also been implemented successfully in
373
382
  several projects.
374
383
 
375
- === What are you talking about? (Give me examples)
384
+ == What are you talking about? (Give me examples)
376
385
 
377
386
  I know all the above sounds like a complete foreign language (it does even for me!).
378
387
  So, what if I show you some examples?
@@ -380,6 +380,17 @@ Java extension should be preferred.
380
380
  # copy mkmf from cross-ruby location
381
381
  file "#{tmp_path}/mkmf.rb" => [mkmf_file] do |t|
382
382
  cp t.prerequisites.first, t.name
383
+ if ruby_ver < "1.9" && "1.9" <= RUBY_VERSION
384
+ File.open(t.name, 'r+t') do |f|
385
+ content = f.read
386
+ content.sub!(/^( break )\*(defaults)$/, '\\1\\2.first')
387
+ content.sub!(/^( return )\*(defaults)$/, '\\1\\2.first')
388
+ content.sub!(/^( mfile\.)print( configuration\(srcprefix\))$/, '\\1puts\\2')
389
+ f.rewind
390
+ f.write content
391
+ f.truncate(f.tell)
392
+ end
393
+ end
383
394
  end
384
395
 
385
396
  # genearte fake.rb for different ruby versions
@@ -471,6 +482,11 @@ Java extension should be preferred.
471
482
 
472
483
  def fake_rb(platform, version)
473
484
  <<-FAKE_RB
485
+ # Pre-load resolver library before faking, in order to avoid error
486
+ # "cannot load such file -- win32/resolv" when it is required later on.
487
+ # See also: https://github.com/tjschuck/rake-compiler-dev-box/issues/5
488
+ require 'resolv'
489
+
474
490
  class Object
475
491
  remove_const :RUBY_PLATFORM
476
492
  remove_const :RUBY_VERSION
@@ -3,7 +3,7 @@ require 'rubygems/package_task'
3
3
  GEM_SPEC = Gem::Specification.new do |s|
4
4
  # basic information
5
5
  s.name = "rake-compiler"
6
- s.version = "0.9.1"
6
+ s.version = "0.9.2"
7
7
  s.platform = Gem::Platform::RUBY
8
8
 
9
9
  # description and details
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-compiler
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Luis Lavena
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-08-03 00:00:00 Z
18
+ date: 2013-11-14 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  version_requirements: &id001 !ruby/object:Gem::Requirement