diff options
author | Lars Kanis <lars@greiz-reinsdorf.de> | 2013-03-13 14:48:27 +0100 |
---|---|---|
committer | Lars Kanis <lars@greiz-reinsdorf.de> | 2013-03-13 14:48:27 +0100 |
commit | 88288256708b68e96c93bf56c3271cb9d155530e (patch) | |
tree | ca07c159ded9e8cd86595af621e818c2f07969aa /lib/rake/extensiontask.rb | |
parent | 2d7bc8c65ba1f40582dcb054e668ea5eeea0b700 (diff) | |
download | rake-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-x | lib/rake/extensiontask.rb | 17 |
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 |