rake-compiler 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +28 -25
- data/lib/rake/extensioncompiler.rb +7 -7
- data/lib/rake/extensiontask.rb +7 -1
- data/spec/lib/rake/extensiontask_spec.rb +10 -6
- data/spec/spec_helper.rb +4 -0
- data/spec/support/capture_output_helper.rb +22 -0
- data/tasks/gem.rake +1 -1
- data/tasks/news.rake +1 -1
- data/tasks/rdoc.rake +13 -7
- data/tasks/release.rake +1 -1
- metadata +3 -2
data/History.txt
CHANGED
@@ -1,70 +1,73 @@
|
|
1
|
-
|
1
|
+
=== 0.4.1 / 2009-04-09
|
2
2
|
|
3
|
-
|
3
|
+
* Enhancements
|
4
|
+
* Target specific versions of Ruby when generating binaries.
|
5
|
+
This avoids installing a 1.8.x binary gem in 1.9.x and viceversa.
|
6
|
+
(Thanks to Aaron Patterson for the patches)
|
4
7
|
|
8
|
+
* Bugfixes
|
9
|
+
* No longer raises error if rake-compiler configuration is missing.
|
10
|
+
Not all users of a project would have it installed.
|
11
|
+
(Thanks to Aaron Patterson for the patch)
|
12
|
+
|
13
|
+
=== 0.4.0 / 2009-04-03
|
14
|
+
|
15
|
+
* Enhancements
|
5
16
|
* Bended the convention for extension folder.
|
6
17
|
Defining <tt>ext_dir</tt> for custom extension location.
|
7
18
|
|
8
|
-
|
9
|
-
|
10
|
-
|
19
|
+
Rake::ExtensionTask.new('my_extension') do |ext|
|
20
|
+
ext.ext_dir = 'custom/location' # look into custom/location
|
21
|
+
end # instead of ext/my_extension
|
11
22
|
|
12
23
|
* Better detection of mingw target across Linux/OSX.
|
13
24
|
Exposed it as Rake::ExtensionCompiler
|
14
|
-
|
15
25
|
* Display list of available tasks when calling rake-compiler script
|
16
|
-
|
17
26
|
* Track Ruby full versioning (x.y.z).
|
18
27
|
This will help the compilation of extensions targetting 1.8.6/7 and 1.9.1
|
19
28
|
|
20
|
-
|
21
|
-
|
29
|
+
* Bugfixes
|
22
30
|
* Better output of Rake development tasks (Thanks to Luis Parravicini).
|
23
31
|
* Proper usage of Gem::Platform for native gems (Thanks to Dirkjan Bussink).
|
24
32
|
* Don't use autoload for YAML (present problems with Ruby 1.9.1).
|
25
33
|
|
26
|
-
|
27
|
-
|
28
|
-
=== Enhancements
|
34
|
+
=== 0.3.1 / 2009-01-09
|
29
35
|
|
36
|
+
* Enhancements
|
30
37
|
* Download cross-ruby source code using HTTP instead of FTP.
|
31
38
|
* Disabled Tcl/Tk extension building on cross-ruby (helps with 1.9).
|
32
39
|
|
33
|
-
|
34
|
-
|
40
|
+
* Bugfixes
|
35
41
|
* Workaround bug introduced by lack of Gem::Specification cloning. Fixes DM LH #757.
|
36
42
|
* Use proper binary extension on OSX (reported by Dirkjan Bussink).
|
37
43
|
* Ensure lib/binary task is defined prior clear of requisites.
|
38
44
|
|
39
|
-
|
40
|
-
|
41
|
-
=== New features
|
45
|
+
=== 0.3.0 / 2008-12-07
|
42
46
|
|
47
|
+
* New features
|
43
48
|
* Let you specify the Ruby version used for cross compilation instead
|
44
49
|
of default one.
|
45
50
|
|
46
51
|
rake cross compile RUBY_CC_VERSION=1.8
|
47
52
|
|
48
|
-
|
49
|
-
|
53
|
+
* Enhancements
|
50
54
|
* Properly update rake-compiler configuration when new version is installed.
|
51
55
|
* Automated release process to RubyForge, yay!
|
52
56
|
|
53
|
-
|
54
|
-
|
57
|
+
* Bugfixes
|
55
58
|
* Corrected documentation to reflect the available options
|
56
59
|
|
57
|
-
|
60
|
+
=== 0.2.1 / 2008-11-30
|
58
61
|
|
59
|
-
|
62
|
+
* New features
|
60
63
|
|
61
64
|
* Allow cross compilation (cross compile) using mingw32 on Linux or OSX.
|
62
65
|
* Allow packaging of gems for Windows on Linux or OSX.
|
63
66
|
|
64
|
-
|
67
|
+
* Enhancements
|
65
68
|
|
66
69
|
* Made generation of extensions safe and target folders per-platform
|
67
70
|
|
68
|
-
|
71
|
+
* Bugfixes
|
69
72
|
|
70
73
|
* Ensure binaries for the specific platform are copied before packaging.
|
@@ -1,13 +1,13 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
#
|
4
|
-
# HACK: Lousy API design, sue me. At least works ;-)
|
5
|
-
#
|
6
|
-
# Define a series of helpers to aid in search and usage of MinGW (GCC) Compiler
|
7
|
-
# by gem developer/creators.
|
8
|
-
#
|
9
|
-
|
10
3
|
module Rake
|
4
|
+
|
5
|
+
#
|
6
|
+
# HACK: Lousy API design, sue me. At least works ;-)
|
7
|
+
#
|
8
|
+
# Define a series of helpers to aid in search and usage of MinGW (GCC) Compiler
|
9
|
+
# by gem developer/creators.
|
10
|
+
#
|
11
11
|
module ExtensionCompiler
|
12
12
|
# return the host portion from the installed MinGW
|
13
13
|
def self.mingw_host
|
data/lib/rake/extensiontask.rb
CHANGED
@@ -188,6 +188,11 @@ module Rake
|
|
188
188
|
# include the files in the gem specification
|
189
189
|
spec.files += ext_files
|
190
190
|
|
191
|
+
# Make sure that the required ruby version matches the ruby version
|
192
|
+
# we've used for cross compiling:
|
193
|
+
target_version = RUBY_VERSION =~ /^1.8/ ? '1.8.6' : '1.9.0'
|
194
|
+
spec.required_ruby_version = "~> #{target_version}"
|
195
|
+
|
191
196
|
# Generate a package for this gem
|
192
197
|
gem_package = Rake::GemPackageTask.new(spec) do |pkg|
|
193
198
|
pkg.need_zip = false
|
@@ -229,7 +234,8 @@ module Rake
|
|
229
234
|
tmp_path = "#{@tmp_dir}/#{cross_platform}/#{@name}"
|
230
235
|
|
231
236
|
unless rbconfig_file = config_file["rbconfig-#{ruby_ver}"] then
|
232
|
-
|
237
|
+
warn "no configuration section for specified version of Ruby (rbconfig-#{ruby_ver})"
|
238
|
+
return
|
233
239
|
end
|
234
240
|
|
235
241
|
# define compilation tasks for cross platfrom!
|
@@ -265,13 +265,16 @@ describe Rake::ExtensionTask do
|
|
265
265
|
File.stub!(:open).and_yield(mock_fake_rb)
|
266
266
|
end
|
267
267
|
|
268
|
-
it 'should
|
268
|
+
it 'should warn if no rake-compiler configuration exist' do
|
269
269
|
File.should_receive(:exist?).with(@config_file).and_return(false)
|
270
|
-
|
270
|
+
|
271
|
+
out, err = capture_output do
|
271
272
|
Rake::ExtensionTask.new('extension_one') do |ext|
|
272
273
|
ext.cross_compile = true
|
273
274
|
end
|
274
|
-
|
275
|
+
end
|
276
|
+
|
277
|
+
err.should match(/rake-compiler must be configured first to enable cross-compilation/)
|
275
278
|
end
|
276
279
|
|
277
280
|
it 'should parse the config file using YAML' do
|
@@ -281,15 +284,16 @@ describe Rake::ExtensionTask do
|
|
281
284
|
end
|
282
285
|
end
|
283
286
|
|
284
|
-
it 'should
|
287
|
+
it 'should warn if no section of config file defines running version of ruby' do
|
285
288
|
config = mock(Hash)
|
286
289
|
config.should_receive(:[]).with("rbconfig-#{@ruby_ver}").and_return(nil)
|
287
290
|
YAML.stub!(:load_file).and_return(config)
|
288
|
-
|
291
|
+
out, err = capture_output do
|
289
292
|
Rake::ExtensionTask.new('extension_one') do |ext|
|
290
293
|
ext.cross_compile = true
|
291
294
|
end
|
292
|
-
|
295
|
+
end
|
296
|
+
err.should match(/no configuration section for specified version of Ruby/)
|
293
297
|
end
|
294
298
|
|
295
299
|
it 'should allow usage of RUBY_CC_VERSION to indicate a different version of ruby' do
|
data/spec/spec_helper.rb
CHANGED
@@ -5,5 +5,9 @@ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
|
5
5
|
require 'rubygems'
|
6
6
|
require 'spec'
|
7
7
|
|
8
|
+
# Console redirection helper
|
9
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'support/capture_output_helper'))
|
10
|
+
|
8
11
|
Spec::Runner.configure do |config|
|
12
|
+
include CaptureOutputHelper
|
9
13
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module CaptureOutputHelper
|
2
|
+
def capture_output(&block)
|
3
|
+
old_stdout = $stdout
|
4
|
+
old_stderr = $stderr
|
5
|
+
|
6
|
+
stream_out = StringIO.new
|
7
|
+
stream_err = StringIO.new
|
8
|
+
|
9
|
+
begin
|
10
|
+
$stdout = stream_out
|
11
|
+
$stderr = stream_err
|
12
|
+
yield
|
13
|
+
ensure
|
14
|
+
$stdout = old_stdout
|
15
|
+
$stderr = old_stderr
|
16
|
+
end
|
17
|
+
stream_out.rewind
|
18
|
+
stream_err.rewind
|
19
|
+
|
20
|
+
[stream_out.read, stream_err.read]
|
21
|
+
end
|
22
|
+
end
|
data/tasks/gem.rake
CHANGED
data/tasks/news.rake
CHANGED
data/tasks/rdoc.rake
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
-
|
1
|
+
begin
|
2
|
+
require 'rdoc/task'
|
3
|
+
rescue LoadError
|
4
|
+
warn "RDoc 2.4.3+ gem is required, please install it (gem install rdoc)."
|
5
|
+
end
|
2
6
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
if defined?(RDoc) then
|
8
|
+
DOC = RDoc::Task.new(:rdoc) do |rd|
|
9
|
+
rd.title = 'rake-compiler -- Documentation'
|
10
|
+
rd.main = 'README.rdoc'
|
11
|
+
rd.rdoc_dir = 'doc/api'
|
12
|
+
rd.options << '--line-numbers' << '--main' << 'README.rdoc' << '--title' << 'rake-compiler -- Documentation'
|
13
|
+
rd.rdoc_files.include %w(README.rdoc LICENSE.txt History.txt lib/**/*.rb)
|
14
|
+
end
|
9
15
|
end
|
data/tasks/release.rake
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rake-compiler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Lavena
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-04-
|
12
|
+
date: 2009-04-09 00:00:00 -03:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- lib/rake/extensiontask.rb
|
54
54
|
- spec/lib/rake/extensiontask_spec.rb
|
55
55
|
- spec/spec_helper.rb
|
56
|
+
- spec/support/capture_output_helper.rb
|
56
57
|
- tasks/bin/cross-ruby.rake
|
57
58
|
- tasks/common.rake
|
58
59
|
- tasks/cucumber.rake
|