rake-compiler 0.9.4 → 0.9.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.txt +6 -0
- data/README.rdoc +4 -5
- data/lib/rake/extensiontask.rb +25 -21
- data/spec/lib/rake/extensiontask_spec.rb +30 -0
- data/tasks/gem.rake +1 -1
- data/tasks/rspec.rake +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 27afa23965c11369d4a99dfb0bff5050e481a184
|
4
|
+
data.tar.gz: 2a7b657c3e7d72e18521f1104a2bf13eca469062
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63d63315f3b86beca6b95293f84aaab057d4bb35658e0b62db7269eeb46fffdfc1d999003a3346f9ff495fc28abd91cd465adc573fcbb0b807c5ba7478ce519d
|
7
|
+
data.tar.gz: b19295ad94ad980d2b2046558c376657e4b5f7bdeb811c0eb5638aba76148519d3aa5decf80394e64076edfa3ae93f00c20052e000f8008f8629aaaf4ced3a0f
|
data/History.txt
CHANGED
data/README.rdoc
CHANGED
@@ -390,7 +390,7 @@ So, what if I show you some examples?
|
|
390
390
|
Check our wiki with links to the proper rake files used by many developers and
|
391
391
|
projects and how they use rake-compiler.
|
392
392
|
|
393
|
-
http://github.com/
|
393
|
+
http://github.com/rake-compiler/rake-compiler/wiki/projects-using-rake-compiler
|
394
394
|
|
395
395
|
== Future
|
396
396
|
|
@@ -399,11 +399,10 @@ during the development of it! (and contributions too!)
|
|
399
399
|
|
400
400
|
You can find more information about rake-compiler:
|
401
401
|
|
402
|
-
* GitHub: https://github.com/
|
403
|
-
* Issues: https://github.com/
|
404
|
-
* Blog: http://blog.mmediasys.com
|
402
|
+
* GitHub: https://github.com/rake-compiler/rake-compiler
|
403
|
+
* Issues: https://github.com/rake-compiler/rake-compiler/issues
|
405
404
|
* Docs: http://rubydoc.info/gems/rake-compiler
|
406
|
-
* Wiki: https://github.com/
|
405
|
+
* Wiki: https://github.com/rake-compiler/rake-compiler/wiki
|
407
406
|
|
408
407
|
== Disclaimer
|
409
408
|
|
data/lib/rake/extensiontask.rb
CHANGED
@@ -87,6 +87,26 @@ Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
|
|
87
87
|
end
|
88
88
|
|
89
89
|
private
|
90
|
+
# copy other gem files to staging directory
|
91
|
+
def define_staging_file_tasks(files, lib_path, stage_path, platf, ruby_ver)
|
92
|
+
files.each do |gem_file|
|
93
|
+
# ignore directories and the binary extension
|
94
|
+
next if File.directory?(gem_file) || gem_file == "#{lib_path}/#{binary(platf)}"
|
95
|
+
stage_file = "#{stage_path}/#{gem_file}"
|
96
|
+
|
97
|
+
# copy each file from base to stage directory
|
98
|
+
unless Rake::Task.task_defined?(stage_file) then
|
99
|
+
directory File.dirname(stage_file)
|
100
|
+
file stage_file => [File.dirname(stage_file), gem_file] do
|
101
|
+
cp gem_file, stage_file
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# append each file to the copy task
|
106
|
+
task "copy:#{@name}:#{platf}:#{ruby_ver}" => [stage_file]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
90
110
|
def define_compile_tasks(for_platform = nil, ruby_ver = RUBY_VERSION)
|
91
111
|
# platform usage
|
92
112
|
platf = for_platform || platform
|
@@ -120,24 +140,7 @@ Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
|
|
120
140
|
end
|
121
141
|
|
122
142
|
# copy other gem files to staging directory
|
123
|
-
if @gem_spec
|
124
|
-
@gem_spec.files.each do |gem_file|
|
125
|
-
# ignore directories and the binary extension
|
126
|
-
next if File.directory?(gem_file) || gem_file == "#{lib_path}/#{binary(platf)}"
|
127
|
-
stage_file = "#{stage_path}/#{gem_file}"
|
128
|
-
|
129
|
-
# copy each file from base to stage directory
|
130
|
-
unless Rake::Task.task_defined?(stage_file) then
|
131
|
-
directory File.dirname(stage_file)
|
132
|
-
file stage_file => [File.dirname(stage_file), gem_file] do
|
133
|
-
cp gem_file, stage_file
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
|
-
# append each file to the copy task
|
138
|
-
task "copy:#{@name}:#{platf}:#{ruby_ver}" => [stage_file]
|
139
|
-
end
|
140
|
-
end
|
143
|
+
define_staging_file_tasks(@gem_spec.files, lib_path, stage_path, platf, ruby_ver) if @gem_spec
|
141
144
|
|
142
145
|
# binary in temporary folder depends on makefile and source files
|
143
146
|
# tmp/extension_name/extension_name.{so,bundle}
|
@@ -253,9 +256,7 @@ Java extension should be preferred.
|
|
253
256
|
spec.files += ext_files
|
254
257
|
|
255
258
|
# expose gem specification for customization
|
256
|
-
if callback
|
257
|
-
callback.call(spec)
|
258
|
-
end
|
259
|
+
callback.call(spec) if callback
|
259
260
|
|
260
261
|
# Generate a package for this gem
|
261
262
|
pkg = Gem::PackageTask.new(spec) do |pkg|
|
@@ -266,6 +267,9 @@ Java extension should be preferred.
|
|
266
267
|
pkg.package_files.clear
|
267
268
|
end
|
268
269
|
|
270
|
+
# copy other gem files to staging directory if added by the callback
|
271
|
+
define_staging_file_tasks(spec.files, lib_path, stage_path, platf, ruby_ver)
|
272
|
+
|
269
273
|
# Copy from staging directory to gem package directory.
|
270
274
|
# This is derived from the code of Gem::PackageTask
|
271
275
|
# but uses stage_path as source directory.
|
@@ -338,6 +338,36 @@ describe Rake::ExtensionTask do
|
|
338
338
|
}.should_not raise_error
|
339
339
|
end
|
340
340
|
|
341
|
+
it 'should generate additional rake tasks if files are added when cross compiling' do
|
342
|
+
config = mock(Hash)
|
343
|
+
config.stub!(:[]).and_return('/rubies/1.9.1/rbconfig.rb')
|
344
|
+
YAML.stub!(:load_file).and_return(config)
|
345
|
+
|
346
|
+
# Use a real spec instead of a mock because define_native_tasks dups and
|
347
|
+
# calls methods on Gem::Specification, which is more than mock can do.
|
348
|
+
spec = Gem::Specification.new do |s|
|
349
|
+
s.name = 'my_gem'
|
350
|
+
s.platform = Gem::Platform::RUBY
|
351
|
+
end
|
352
|
+
|
353
|
+
# Gem::PackageTask calls Rake::PackageTask which sets Gem.configuration.verbose,
|
354
|
+
# which initializes Gem::ConfigFile,
|
355
|
+
# which gets mad if it cannot find `sysconfdir`/gemrc
|
356
|
+
Gem.stub_chain(:configuration, :verbose=).and_return(true)
|
357
|
+
|
358
|
+
ENV['RUBY_CC_VERSION'] = '1.9.1'
|
359
|
+
Rake::ExtensionTask.new('extension_one', spec) do |ext|
|
360
|
+
ext.cross_compile = true
|
361
|
+
ext.cross_platform = 'universal-unknown'
|
362
|
+
ext.cross_compiling do |gem_spec|
|
363
|
+
gem_spec.files << 'somedir/somefile'
|
364
|
+
end
|
365
|
+
end
|
366
|
+
Rake::Task['native:my_gem:universal-unknown'].execute
|
367
|
+
Rake::Task.should have_defined("tmp/universal-unknown/stage/somedir")
|
368
|
+
Rake::Task.should have_defined("tmp/universal-unknown/stage/somedir/somefile")
|
369
|
+
end
|
370
|
+
|
341
371
|
it 'should allow usage of RUBY_CC_VERSION to indicate a different version of ruby' do
|
342
372
|
config = mock(Hash)
|
343
373
|
config.should_receive(:[]).with("rbconfig-i386-mingw32-1.9.1").and_return('/rubies/1.9.1/rbconfig.rb')
|
data/tasks/gem.rake
CHANGED
data/tasks/rspec.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.9.
|
4
|
+
version: 0.9.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-01-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|