1def config(conf) 2 toolchain :clang if ENV['MRUBY_CC'].include? "clang" 3 toolchain :gcc if ENV['MRUBY_CC'].include? "gcc" 4 5 conf.cc.command = ENV['MRUBY_CC'] 6 conf.cxx.command = ENV['MRUBY_CXX'] 7 8 if ENV['MRUBY_LD'] 9 conf.linker.command = ENV['MRUBY_LD'] 10 end 11 if ENV['MRUBY_AR'] 12 conf.archiver.command = ENV['MRUBY_AR'] 13 end 14 15 # C++ project needs this. Without this, mruby exception does not 16 # properly destroy C++ object allocated on stack. 17 conf.enable_cxx_exception 18 19 conf.build_dir = ENV['BUILD_DIR'] 20 21 # Here is the mruby gems included in default.gembox minus 22 # mruby-bin-debugger which causes the application to crash. 23 conf.gembox "stdlib" 24 conf.gembox "stdlib-ext" 25 conf.gembox "stdlib-io" 26 conf.gembox "math" 27 conf.gembox "metaprog" 28 29 # Generate mrbc command 30 conf.gem :core => "mruby-bin-mrbc" 31 32 # Generate mirb command 33 conf.gem :core => "mruby-bin-mirb" 34 35 # Generate mruby command 36 conf.gem :core => "mruby-bin-mruby" 37 38 # Generate mruby-strip command 39 conf.gem :core => "mruby-bin-strip" 40 41 # Generate mruby-config command 42 conf.gem :core => "mruby-bin-config" 43 44 # Added by nghttp2 project 45 conf.gem :core => 'mruby-eval' 46end 47 48if ENV['BUILD'] == ENV['HOST'] then 49 MRuby::Build.new do |conf| 50 config(conf) 51 end 52else 53 MRuby::CrossBuild.new(ENV['HOST']) do |conf| 54 config(conf) 55 end 56end 57