summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'tasks')
-rw-r--r--tasks/bin.rake2
-rw-r--r--tasks/libmruby.rake9
-rw-r--r--tasks/mrblib.rake2
-rw-r--r--tasks/presym.rake12
-rw-r--r--tasks/test.rake7
5 files changed, 19 insertions, 13 deletions
diff --git a/tasks/bin.rake b/tasks/bin.rake
index bc8820b66..5c764458d 100644
--- a/tasks/bin.rake
+++ b/tasks/bin.rake
@@ -6,8 +6,8 @@ MRuby.each_target do |build|
build.bins.each{|bin| build.products << define_installer_if_needed(bin)}
- linker_attrs = build.gems.linker_attrs
build.gems.each do |gem|
+ linker_attrs = build.gems.linker_attrs(gem)
gem.bins.each do |bin|
exe = build.exefile("#{build.build_dir}/bin/#{bin}")
objs = Dir["#{gem.dir}/tools/#{bin}/*.{c,cpp,cxx,cc}"].map do |f|
diff --git a/tasks/libmruby.rake b/tasks/libmruby.rake
index 23cd992ff..8cdb4ca2e 100644
--- a/tasks/libmruby.rake
+++ b/tasks/libmruby.rake
@@ -16,14 +16,15 @@ MRuby.each_target do
open(t.name, 'w') do |f|
f.puts "MRUBY_CFLAGS = #{cc.all_flags}"
- gem_flags = gems.map { |g| g.linker.flags }
- gem_library_paths = gems.map { |g| g.linker.library_paths }
+ libgems = gems.reject{|g| g.bin?}
+ gem_flags = libgems.map {|g| g.linker.flags }
+ gem_library_paths = libgems.map {|g| g.linker.library_paths }
f.puts "MRUBY_LDFLAGS = #{linker.all_flags(gem_library_paths, gem_flags)} #{linker.option_library_path % "#{build_dir}/lib"}"
- gem_flags_before_libraries = gems.map { |g| g.linker.flags_before_libraries }
+ gem_flags_before_libraries = libgems.map {|g| g.linker.flags_before_libraries }
f.puts "MRUBY_LDFLAGS_BEFORE_LIBS = #{[linker.flags_before_libraries, gem_flags_before_libraries].flatten.join(' ')}"
- gem_libraries = gems.map { |g| g.linker.libraries }
+ gem_libraries = libgems.map {|g| g.linker.libraries }
f.puts "MRUBY_LIBS = #{linker.option_library % 'mruby'} #{linker.library_flags(gem_libraries)}"
f.puts "MRUBY_LIBMRUBY_PATH = #{libmruby_static}"
diff --git a/tasks/mrblib.rake b/tasks/mrblib.rake
index 5567515d6..485375e55 100644
--- a/tasks/mrblib.rake
+++ b/tasks/mrblib.rake
@@ -28,7 +28,7 @@ MRuby.each_target do
f.puts %Q[#include <mruby.h>]
f.puts %Q[#include <mruby/irep.h>]
end
- mrbc.run f, rbfiles, "mrblib_#{suffix}", cdump
+ mrbc.run f, rbfiles, "mrblib_#{suffix}", cdump: cdump, static: true
f.puts %Q[void]
f.puts %Q[mrb_init_mrblib(mrb_state *mrb)]
f.puts %Q[{]
diff --git a/tasks/presym.rake b/tasks/presym.rake
index 2efc4d790..1ebc1a737 100644
--- a/tasks/presym.rake
+++ b/tasks/presym.rake
@@ -17,7 +17,7 @@ MRuby.each_target do |build|
build.gems.each{|gem| gem.compilers.each{|c| c.include_paths << include_dir}}
prereqs = {}
- pps = []
+ ppps = []
build_dir = "#{build.build_dir}/"
mrbc_build_dir = "#{build.mrbc_build.build_dir}/" if build.mrbc_build
build.products.each{|product| all_prerequisites.(product, prereqs)}
@@ -25,11 +25,15 @@ MRuby.each_target do |build|
next unless File.extname(prereq) == build.exts.object
next unless prereq.start_with?(build_dir)
next if mrbc_build_dir && prereq.start_with?(mrbc_build_dir)
- pps << prereq.ext(build.exts.presym_preprocessed)
+ ppp = prereq.ext(build.exts.presym_preprocessed)
+ if Rake.application.lookup(ppp) ||
+ Rake.application.enhance_with_matching_rule(ppp)
+ ppps << ppp
+ end
end
- file presym.list_path => pps do
- presyms = presym.scan(pps)
+ file presym.list_path => ppps do
+ presyms = presym.scan(ppps)
current_presyms = presym.read_list if File.exist?(presym.list_path)
update = presyms != current_presyms
presym.write_list(presyms) if update
diff --git a/tasks/test.rake b/tasks/test.rake
index a18635cc6..32a03fce6 100644
--- a/tasks/test.rake
+++ b/tasks/test.rake
@@ -10,7 +10,7 @@ namespace :test do |test_ns|
end
desc "build and run command binaries tests"
- task :bin => :all do
+ task :bin => "rake:all" do
test_ns["run:bin"].invoke
end
@@ -19,9 +19,10 @@ namespace :test do |test_ns|
namespace :build do |test_build_ns|
desc "build library tests"
- task :lib => :all do
+ task :lib => "rake:all" do
MRuby.each_target{|build| build.gem(core: 'mruby-test')}
- test_build_ns["lib_without_loading_gem"].invoke
+ test = test_build_ns["lib_without_loading_gem"]
+ test.invoke if test
end
end