summaryrefslogtreecommitdiffstats
path: root/third-party/build_config.rb
blob: e06a4ccca4e000eaacdefd85dffc0ee5e0b09284 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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