summaryrefslogtreecommitdiffstats
path: root/third-party/build_config.rb
diff options
context:
space:
mode:
Diffstat (limited to 'third-party/build_config.rb')
-rw-r--r--third-party/build_config.rb34
1 files changed, 34 insertions, 0 deletions
diff --git a/third-party/build_config.rb b/third-party/build_config.rb
new file mode 100644
index 0000000..e06a4cc
--- /dev/null
+++ b/third-party/build_config.rb
@@ -0,0 +1,34 @@
+def config(conf)
+ toolchain :clang if ENV['MRUBY_CC'].include? "clang"
+ toolchain :gcc if ENV['MRUBY_CC'].include? "gcc"
+
+ conf.cc.command = ENV['MRUBY_CC']
+ conf.cxx.command = ENV['MRUBY_CXX']
+
+ if ENV['MRUBY_LD']
+ conf.linker.command = ENV['MRUBY_LD']
+ end
+ if ENV['MRUBY_AR']
+ conf.archiver.command = ENV['MRUBY_AR']
+ end
+
+ # C++ project needs this. Without this, mruby exception does not
+ # properly destroy C++ object allocated on stack.
+ conf.enable_cxx_exception
+
+ conf.build_dir = ENV['BUILD_DIR']
+
+ # include the default GEMs
+ conf.gembox 'default'
+ conf.gem :core => 'mruby-eval'
+end
+
+if ENV['BUILD'] == ENV['HOST'] then
+ MRuby::Build.new do |conf|
+ config(conf)
+ end
+else
+ MRuby::CrossBuild.new(ENV['HOST']) do |conf|
+ config(conf)
+ end
+end