summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-07-15 14:03:09 +0900
committerGitHub <[email protected]>2020-07-15 14:03:09 +0900
commitbfd58a3fb3a374ba9db4badf95649001b0ca33eb (patch)
treeb8210cad6f008189dc68e4952a280e2b1eb13fef /tasks
parent1a4089803d5d94300ec7e2f0e2783a9e61053766 (diff)
parent49896a4d28f1fa054c95ccb7ec97c610fb75b3d2 (diff)
downloadmruby-bfd58a3fb3a374ba9db4badf95649001b0ca33eb.tar.gz
mruby-bfd58a3fb3a374ba9db4badf95649001b0ca33eb.zip
Merge pull request #5036 from shuujii/fix-build_dir-mrbgems-gem_init.c-generation-condition
Fix `${build_dir}/mrbgems/gem_init.c` generation condition; ref #5010
Diffstat (limited to 'tasks')
-rw-r--r--tasks/mrbgems.rake12
1 files changed, 11 insertions, 1 deletions
diff --git a/tasks/mrbgems.rake b/tasks/mrbgems.rake
index c814a16db..0a3ae652d 100644
--- a/tasks/mrbgems.rake
+++ b/tasks/mrbgems.rake
@@ -5,9 +5,10 @@ MRuby.each_target do
gems.check self
# loader all gems
+ active_gems_txt = "#{build_dir}/mrbgems/active_gems.txt"
self.libmruby_objs << objfile("#{build_dir}/mrbgems/gem_init")
file objfile("#{build_dir}/mrbgems/gem_init") => ["#{build_dir}/mrbgems/gem_init.c", "#{build_dir}/LEGAL"]
- file "#{build_dir}/mrbgems/gem_init.c" => [MRUBY_CONFIG, __FILE__, *Dir.glob("#{build_dir}/mrbgems/mruby-*/*.c")] do |t|
+ file "#{build_dir}/mrbgems/gem_init.c" => [active_gems_txt, MRUBY_CONFIG, __FILE__] do |t|
mkdir_p "#{build_dir}/mrbgems"
open(t.name, 'w') do |f|
gem_func_gems = gems.select { |g| g.generate_functions }
@@ -49,6 +50,15 @@ MRuby.each_target do
f.puts %Q[}]
end
end
+ file active_gems_txt => :generate_active_gems_txt
+ task :generate_active_gems_txt do |t|
+ def t.timestamp; Time.at(0) end
+ active_gems = gems.sort_by(&:name).inject(""){|s, g| s << "#{g.name}\n"}
+ if !File.exist?(active_gems_txt) || File.read(active_gems_txt) != active_gems
+ mkdir_p File.dirname(active_gems_txt)
+ File.write(active_gems_txt, active_gems)
+ end
+ end
end
# legal documents