summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-21 16:07:03 +0900
committerGitHub <[email protected]>2020-11-21 16:07:03 +0900
commitc6c18c32b061960ca706e40594b3d32046d0ab8f (patch)
treee1dca5b3e4842e24dcc8c51588825aa4a72eb49c /tasks
parent00751ccbcd14a6681f2a9ff1f6dce84708309bc0 (diff)
parent551bf0c635ca5dda1741a39a92de528dc82e90d6 (diff)
downloadmruby-c6c18c32b061960ca706e40594b3d32046d0ab8f.tar.gz
mruby-c6c18c32b061960ca706e40594b3d32046d0ab8f.zip
Merge pull request #5162 from shuujii/move-some-.rake-files-to-tasks-directory-for-consistency
Move some `.rake` files to `tasks` directory for consistency
Diffstat (limited to 'tasks')
-rw-r--r--tasks/core.rake17
-rw-r--r--tasks/mrblib.rake30
2 files changed, 47 insertions, 0 deletions
diff --git a/tasks/core.rake b/tasks/core.rake
new file mode 100644
index 000000000..c4816d4ce
--- /dev/null
+++ b/tasks/core.rake
@@ -0,0 +1,17 @@
+as_cxx_srcs = %w[vm error gc].map{|name| "#{MRUBY_ROOT}/src/#{name}.c"}
+
+MRuby.each_target do
+ objs = Dir.glob("#{MRUBY_ROOT}/src/*.c").map do |src|
+ dst = src.pathmap("#{build_dir}/src/%n")
+ if cxx_exception_enabled? && as_cxx_srcs.include?(src)
+ compile_as_cxx(src, "#{dst}.cxx")
+ else
+ objfile(dst)
+ end
+ end
+ self.libmruby_objs << objs
+
+ file libmruby_core_static => objs do |t|
+ archiver.run t.name, t.prerequisites
+ end
+end
diff --git a/tasks/mrblib.rake b/tasks/mrblib.rake
new file mode 100644
index 000000000..7231b63bc
--- /dev/null
+++ b/tasks/mrblib.rake
@@ -0,0 +1,30 @@
+MRuby.each_target do
+ src = "#{build_dir}/mrblib/mrblib.c"
+ obj = objfile(src.ext)
+ rbfiles = Dir["#{MRUBY_ROOT}/mrblib/*.rb"].sort!
+
+ self.libmruby_objs << obj
+
+ file obj => src
+ file src => [mrbcfile, __FILE__, *rbfiles] do |t|
+ mkdir_p File.dirname(t.name)
+ File.open(t.name, 'w') do |f|
+ _pp "GEN", "mrblib/*.rb", "#{t.name.relative_path}"
+ f.puts %Q[/*]
+ f.puts %Q[ * This file is loading the mrblib]
+ f.puts %Q[ *]
+ f.puts %Q[ * IMPORTANT:]
+ f.puts %Q[ * This file was generated!]
+ f.puts %Q[ * All manual changes will get lost.]
+ f.puts %Q[ */]
+ mrbc.run f, rbfiles, 'mrblib_proc'
+ f.puts <<INIT_END
+void
+mrb_init_mrblib(mrb_state *mrb)
+{
+ mrb_load_proc(mrb, mrblib_proc);
+}
+INIT_END
+ end
+ end
+end