summaryrefslogtreecommitdiffhomepage
path: root/core/mruby_build_host.rb
diff options
context:
space:
mode:
Diffstat (limited to 'core/mruby_build_host.rb')
-rw-r--r--core/mruby_build_host.rb94
1 files changed, 94 insertions, 0 deletions
diff --git a/core/mruby_build_host.rb b/core/mruby_build_host.rb
new file mode 100644
index 0000000..7e0b77c
--- /dev/null
+++ b/core/mruby_build_host.rb
@@ -0,0 +1,94 @@
+configure_project_root = File.expand_path('../..')
+configure_mrbgem_dir = File.expand_path("#{configure_project_root}/mrbgems")
+
+
+MRuby::Build.new do |conf|
+ # load specific toolchain settings
+ conf.toolchain :clang
+ #conf.toolchain
+
+ disable_lock # disables being stuck on a single commit
+
+ # -- CORE GEMS --
+ conf.gembox "stdlib"
+ conf.gembox "stdlib-ext"
+ conf.gembox "math"
+ conf.gembox "metaprog"
+ #conf.gembox "stdlib-io"
+
+ # Use standard IO/File class
+ conf.gem :core => "mruby-io"
+
+ # TODO: this gem doesnt current work
+ # with windows export
+ #conf.gem :core => "mruby-socket"
+
+ # Use standard print/puts/p
+ conf.gem :core => "mruby-print"
+
+ # Generate mrbc command
+ conf.gem :core => "mruby-bin-mrbc"
+
+ # Generate mirb command
+ conf.gem :core => "mruby-bin-mirb"
+
+ # Generate mruby command
+ conf.gem :core => "mruby-bin-mruby"
+
+ # Generate mruby-strip command
+ conf.gem :core => "mruby-bin-strip"
+
+ # Generate mruby-config command
+ conf.gem :core => "mruby-bin-config"
+
+ # -- POTENTIAL GEMS --
+ # gems that we may want incorperated
+
+ # Simple Http
+ #conf.gem :git => 'https://github.com/matsumotory/mruby-simplehttp'
+
+ # Memory Profiler
+ #conf.gem :git => 'https://github.com/iij/mruby-memprof'
+
+ # Testing Framework
+ #conf.gem :git => 'https://github.com/iij/mruby-mtest'
+
+ # Regex
+ #conf.gem :git => 'https://github.com/iij/mruby-regexp-pcre'
+
+ # JSON
+ #conf.gem :git => 'https://github.com/iij/mruby-iijson'
+
+ # Dir
+ #conf.gem :git => 'https://github.com/iij/mruby-dir'
+
+ # -- YOUR GEMS --
+ # gems added into the mrbgems directory
+
+ Dir.each_child(configure_mrbgem_dir) do |mrb_gem|
+ conf.gem "#{configure_mrbgem_dir}/#{mrb_gem}"
+ end
+
+ # ---
+
+ # C compiler settings
+ conf.cc do |cc|
+ cc.command = 'zig cc -target native -O2'
+ cc.include_paths << ["#{configure_project_root}/vendor/tux/include"]
+ end
+
+ # Linker settings
+ conf.linker do |linker|
+ #linker.command = ENV['LD'] || 'gcc'
+ linker.command = 'zig c++ -target native -O2'
+ linker.flags << ['-lraylib -lGL -lm -lpthread -ldl -lrt -lX11']
+ linker.library_paths << ["#{configure_project_root}/vendor/tux/lib"]
+ end
+
+ conf.cxx.command = 'zig c++ -target native -O2'
+
+ # Turn on `enable_debug` for better debugging
+ # conf.enable_debug
+ conf.enable_bintest
+ conf.enable_test
+end