rake-compiler 0.4.0 → 0.4.1
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.
- 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
|