summaryrefslogtreecommitdiff
path: root/lib/rake/extensiontask.rb
diff options
context:
space:
mode:
authorLars Kanis <lars@greiz-reinsdorf.de>2013-03-13 14:48:27 +0100
committerLars Kanis <lars@greiz-reinsdorf.de>2013-03-13 14:48:27 +0100
commit88288256708b68e96c93bf56c3271cb9d155530e (patch)
treeca07c159ded9e8cd86595af621e818c2f07969aa /lib/rake/extensiontask.rb
parent2d7bc8c65ba1f40582dcb054e668ea5eeea0b700 (diff)
downloadrake-compiler-88288256708b68e96c93bf56c3271cb9d155530e.tar.gz
Add possibility to set per-platform cross_config_options.
This is especially useful to set distinct library paths for different target platforms.
Diffstat (limited to 'lib/rake/extensiontask.rb')
-rwxr-xr-xlib/rake/extensiontask.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb
index 9b8135b..2d7b08e 100755
--- a/lib/rake/extensiontask.rb
+++ b/lib/rake/extensiontask.rb
@@ -12,7 +12,7 @@ module Rake
attr_accessor :config_script
attr_accessor :cross_compile
attr_accessor :cross_platform
- attr_accessor :cross_config_options
+ attr_writer :cross_config_options
attr_accessor :no_native
attr_accessor :config_includes
@@ -73,6 +73,19 @@ Rerun `rake` under MRI Ruby 1.8.x/1.9.x to cross/native compile.
end
end
+ def cross_config_options(for_platform=nil)
+ return @cross_config_options unless for_platform
+
+ # apply options for this platform, only
+ @cross_config_options.map do |option|
+ if option.kind_of?(Hash)
+ option[for_platform] || []
+ else
+ option
+ end
+ end.flatten
+ end
+
private
def define_compile_tasks(for_platform = nil, ruby_ver = RUBY_VERSION)
# platform usage
@@ -136,7 +149,7 @@ Java extension should be preferred.
# rbconfig.rb will be present if we are cross compiling
if t.prerequisites.include?("#{tmp_path}/rbconfig.rb") then
- options.push(*@cross_config_options)
+ options.push(*cross_config_options(platf))
end
# add options to command