summaryrefslogtreecommitdiffhomepage
path: root/tasks
diff options
context:
space:
mode:
Diffstat (limited to 'tasks')
-rw-r--r--tasks/mrbgem_spec.rake8
-rw-r--r--tasks/mrbgems.rake2
-rw-r--r--tasks/mruby_build.rake5
-rw-r--r--tasks/mruby_build_commands.rake4
-rw-r--r--tasks/mruby_build_gem.rake9
5 files changed, 21 insertions, 7 deletions
diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake
index 5b01bc79b..649f99d0e 100644
--- a/tasks/mrbgem_spec.rake
+++ b/tasks/mrbgem_spec.rake
@@ -28,6 +28,8 @@ module MRuby
attr_accessor :test_objs, :test_rbfiles, :test_args
attr_accessor :test_preload
+ attr_accessor :bins
+
attr_block MRuby::Build::COMMANDS
def initialize(name, &block)
@@ -59,6 +61,8 @@ module MRuby
@test_preload = 'test/assert.rb'
@test_args = {}
+ @bins = []
+
instance_eval(&@initializer)
if !name || !licenses || !authors
@@ -76,6 +80,10 @@ module MRuby
define_gem_init_builder
end
+ def self.bin=(bin)
+ @bins = [bin].flatten
+ end
+
def build_dir
"#{build.build_dir}/mrbgems/#{name}"
end
diff --git a/tasks/mrbgems.rake b/tasks/mrbgems.rake
index 17f266105..2d670227f 100644
--- a/tasks/mrbgems.rake
+++ b/tasks/mrbgems.rake
@@ -9,7 +9,7 @@ MRuby.each_target do
# loader all gems
self.libmruby << objfile("#{build_dir}/mrbgems/gem_init")
file objfile("#{build_dir}/mrbgems/gem_init") => "#{build_dir}/mrbgems/gem_init.c"
- file "#{build_dir}/mrbgems/gem_init.c" => MRUBY_CONFIGS.flatten do |t|
+ file "#{build_dir}/mrbgems/gem_init.c" => [MRUBY_CONFIG] do |t|
FileUtils.mkdir_p "#{build_dir}/mrbgems"
open(t.name, 'w') do |f|
f.puts %Q[/*]
diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake
index d0809cbdc..1afb95334 100644
--- a/tasks/mruby_build.rake
+++ b/tasks/mruby_build.rake
@@ -182,8 +182,9 @@ module MRuby
puts " Binaries: #{@bins.join(', ')}" unless @bins.empty?
unless @gems.empty?
puts " Included Gems:"
- @gems.map(&:name).each do |name|
- puts " #{name}"
+ @gems.map do |gem|
+ puts " #{gem.name}"
+ puts " - Binaries: #{gem.bins.join(', ')}" unless gem.bins.empty?
end
end
puts "================================================"
diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake
index 3795b47d4..b647ccf98 100644
--- a/tasks/mruby_build_commands.rake
+++ b/tasks/mruby_build_commands.rake
@@ -78,9 +78,9 @@ module MRuby
@out_ext = build.exts.object
if build_dir.include? "mrbgems/"
- generated_file_matcher = Regexp.new("^#{build_dir}/(.*)#{Regexp.escape out_ext}$")
+ generated_file_matcher = Regexp.new("^#{Regexp.escape build_dir}/(.*)#{Regexp.escape out_ext}$")
else
- generated_file_matcher = Regexp.new("^#{build_dir}/(?!mrbgems/.+/)(.*)#{Regexp.escape out_ext}$")
+ generated_file_matcher = Regexp.new("^#{Regexp.escape build_dir}/(?!mrbgems/.+/)(.*)#{Regexp.escape out_ext}$")
end
source_exts.each do |ext, compile|
rule generated_file_matcher => [
diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake
index 69dd4cafc..24f53a501 100644
--- a/tasks/mruby_build_gem.rake
+++ b/tasks/mruby_build_gem.rake
@@ -1,7 +1,12 @@
module MRuby
module LoadGems
def gem(gemdir, &block)
- gemdir = load_external_gem(gemdir) if gemdir.is_a?(Hash)
+ caller_dir = File.expand_path(File.dirname(/^(.*?):\d/.match(caller.first).to_a[1]))
+ if gemdir.is_a?(Hash)
+ gemdir = load_external_gem(gemdir)
+ else
+ gemdir = File.expand_path(gemdir, caller_dir)
+ end
gemrake = File.join(gemdir, "mrbgem.rake")
fail "Can't find #{gemrake}" unless File.exists?(gemrake)
@@ -27,7 +32,7 @@ module MRuby
return gemdir if File.exists?(gemdir)
options = [params[:options]] || []
- options << "--branch \"#{params[:branch]}\"" if params[:tag]
+ options << "--branch \"#{params[:branch]}\"" if params[:branch]
FileUtils.mkdir_p "build/mrbgems"
git.run_clone gemdir, url, options