From 8eab806da82d1ea48a3c0a23a8885e681a7d75e5 Mon Sep 17 00:00:00 2001 From: kyab Date: Thu, 4 Jul 2013 22:09:05 +0900 Subject: Add --pull_gems option to minirake --- tasks/mruby_build_commands.rake | 11 ++++++++++- tasks/mruby_build_gem.rake | 18 ++++++++++++------ 2 files changed, 22 insertions(+), 7 deletions(-) (limited to 'tasks') diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index 1d69fa54d..b678b1f0e 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -220,19 +220,28 @@ module MRuby class Command::Git < Command attr_accessor :flags - attr_accessor :clone_options + attr_accessor :clone_options, :pull_options def initialize(build) super @command = 'git' @flags = [] @clone_options = "clone %{flags} %{url} %{dir}" + @pull_options = "pull" end def run_clone(dir, url, _flags = []) _pp "GIT", url, dir.relative_path _run clone_options, { :flags => [flags, _flags].flatten.join(' '), :url => url, :dir => filename(dir) } end + + def run_pull(dir, url) + root = Dir.pwd + Dir.chdir dir + _pp "GIT PULL", url, dir.relative_path + _run pull_options + Dir.chdir root + end end class Command::Mrbc < Command diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 870ccfa57..975b032a6 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -40,13 +40,19 @@ module MRuby elsif params[:git] url = params[:git] gemdir = "build/mrbgems/#{url.match(/([-\w]+)(\.[-\w]+|)$/).to_a[1]}" - return gemdir if File.exists?(gemdir) - options = [params[:options]] || [] - options << "--branch \"#{params[:branch]}\"" if params[:branch] - - FileUtils.mkdir_p "build/mrbgems" - git.run_clone gemdir, url, options + if File.exists?(gemdir) + if $pull_gems + git.run_pull gemdir, url + else + gemdir + end + else + options = [params[:options]] || [] + options << "--branch \"#{params[:branch]}\"" if params[:branch] + FileUtils.mkdir_p "build/mrbgems" + git.run_clone gemdir, url, options + end else fail "unknown gem option #{params}" end -- cgit v1.2.3 From e47e8a25120be53fd55d808210344aaea32c0a25 Mon Sep 17 00:00:00 2001 From: Robert Rowe Date: Mon, 8 Jul 2013 21:16:16 -0700 Subject: Fix the androideabi toolchain not matching host The included method of determining the host platform in the androideabi would not match to windows if RUBY_PLATFORM returned mingw, wince, or emx. As an added pre-caution, using a case statement with regexp matching will better determine the host platform since it won't be case sensitive and for windows is set to match more specifially than just "win". --- tasks/toolchains/androideabi.rake | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index a69fd1a9d..51897667e 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -41,20 +41,21 @@ MRuby::Toolchain.new(:androideabi) do |conf| end if ANDROID_STANDALONE_TOOLCHAIN == nil then - if RUBY_PLATFORM.include?('darwin') then + case RUBY_PLATFORM + when /cygwin|mswin|mingw|bccwin|wince|emx/i + HOST_PLATFORM = 'windows' + when /darwin/i HOST_PLATFORM = 'darwin-x86' - elsif RUBY_PLATFORM.include?('linux') then + when /linux/i HOST_PLATFORM = 'linux-x86' - elsif RUBY_PLATFORM.include?('win') then - HOST_PLATFORM = 'windows' else - # Unknown host platform. + # Unknown host platform end ANDROID_TARGET_PLATFORM = ENV['ANDROID_TARGET_PLATFORM'] || DEFAULT_ANDROID_TARGET_PLATFORM path_to_toolchain = ANDROID_NDK_HOME + '/toolchains/' - path_to_sysroot = ANDROID_NDK_HOME + '/platforms/' + ANDROID_TARGET_PLATFORM + path_to_sysroot = ANDROID_NDK_HOME + '/platforms/' + ANDROID_TARGET_PLATFORM if ANDROID_TOOLCHAIN.downcase == 'gcc' then case ANDROID_TARGET_ARCH.downcase when 'arch-arm', 'arm' then -- cgit v1.2.3 From 122770d17ffb2038b91e4b99d88c6586463b0f50 Mon Sep 17 00:00:00 2001 From: "Xuejie \"Rafael\" Xiao" Date: Mon, 15 Jul 2013 11:43:19 +0800 Subject: Allow programmers to specify build path manually --- tasks/mruby_build.rake | 7 ++----- tasks/mruby_build_gem.rake | 6 +++--- 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'tasks') diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index eeebd161b..ef7f06a81 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -43,7 +43,7 @@ module MRuby end include Rake::DSL include LoadGems - attr_accessor :name, :bins, :exts, :file_separator + attr_accessor :name, :bins, :exts, :file_separator, :build_dir attr_reader :libmruby, :gems COMPILERS = %w(cc cxx objc asm) @@ -63,6 +63,7 @@ module MRuby end @file_separator = '/' + @build_dir = "#{MRUBY_ROOT}/build/#{@name}" @cc = Command::Compiler.new(self, %w(.c)) @cxx = Command::Compiler.new(self, %w(.cc .cxx .cpp)) @objc = Command::Compiler.new(self, %w(.m)) @@ -95,10 +96,6 @@ module MRuby MRUBY_ROOT end - def build_dir - "#{MRUBY_ROOT}/build/#{self.name}" - end - def mrbcfile MRuby.targets['host'].exefile("#{MRuby.targets['host'].build_dir}/bin/mrbc") end diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 975b032a6..24aea71ab 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -39,18 +39,18 @@ module MRuby gemdir = "#{root}/mrbgems/#{params[:core]}" elsif params[:git] url = params[:git] - gemdir = "build/mrbgems/#{url.match(/([-\w]+)(\.[-\w]+|)$/).to_a[1]}" + gemdir = "#{build_dir}/mrbgems/#{url.match(/([-\w]+)(\.[-\w]+|)$/).to_a[1]}" if File.exists?(gemdir) if $pull_gems git.run_pull gemdir, url else gemdir - end + end else options = [params[:options]] || [] options << "--branch \"#{params[:branch]}\"" if params[:branch] - FileUtils.mkdir_p "build/mrbgems" + FileUtils.mkdir_p "#{build_dir}/mrbgems" git.run_clone gemdir, url, options end else -- cgit v1.2.3 From ccf69cde8ae52aee86db1b1eff286798e3cc5aed Mon Sep 17 00:00:00 2001 From: crimsonwoods Date: Sat, 20 Jul 2013 14:42:09 +0900 Subject: Improve Android NDK toolchain support. Linux-x86_64 has not been supported now. This commit add Linux-x86_64 platform support. --- tasks/toolchains/androideabi.rake | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tasks') diff --git a/tasks/toolchains/androideabi.rake b/tasks/toolchains/androideabi.rake index 51897667e..a20027c0d 100644 --- a/tasks/toolchains/androideabi.rake +++ b/tasks/toolchains/androideabi.rake @@ -46,6 +46,8 @@ MRuby::Toolchain.new(:androideabi) do |conf| HOST_PLATFORM = 'windows' when /darwin/i HOST_PLATFORM = 'darwin-x86' + when /x86_64-linux/i + HOST_PLATFORM = 'linux-x86_64' when /linux/i HOST_PLATFORM = 'linux-x86' else -- cgit v1.2.3 From 45cba2e27f549802f5f9e017c4708367d958093a Mon Sep 17 00:00:00 2001 From: Carson McDonald Date: Sat, 20 Jul 2013 22:22:27 -0400 Subject: Fail if dependency isn't found --- tasks/mrbgem_spec.rake | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tasks') diff --git a/tasks/mrbgem_spec.rake b/tasks/mrbgem_spec.rake index 3363b4885..df55e749f 100644 --- a/tasks/mrbgem_spec.rake +++ b/tasks/mrbgem_spec.rake @@ -275,13 +275,20 @@ module MRuby req_versions = dep[:requirements] # check each GEM dependency against all available GEMs + found_dep_gem = false each do |dep_g| if name == dep_g.name unless dep_g.version_ok?(req_versions) fail "#{name} version should be #{req_versions.join(' and ')} but was '#{dep_g.version}'" end + + found_dep_gem = true + break end end + + fail "The GEM '#{g.name}' depends on the GEM '#{name}' but it could not be found" unless found_dep_gem + end end end -- cgit v1.2.3 From e8df8dcae673cbe4c616d8d44b77d0aeb30f16e4 Mon Sep 17 00:00:00 2001 From: Tomoyuki Sahara Date: Tue, 23 Jul 2013 09:53:39 +0900 Subject: display multiple authors better. Before: Copyright (c) 2013 ["a", "b"] After: Copyright (c) 2013 a, b --- tasks/mrbgems.rake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tasks') diff --git a/tasks/mrbgems.rake b/tasks/mrbgems.rake index 5f156c45a..d8f56f88e 100644 --- a/tasks/mrbgems.rake +++ b/tasks/mrbgems.rake @@ -74,9 +74,10 @@ please check the following additional licenses too: GEMS_LEGAL gems.map do |g| + authors = [g.authors].flatten.sort.join(", ") f.puts f.puts "GEM: #{g.name}" - f.puts "Copyright (c) #{Time.now.year} #{g.authors}" + f.puts "Copyright (c) #{Time.now.year} #{authors}" f.puts "License: #{g.licenses}" end end -- cgit v1.2.3 From 494880fa10b75ca07789099d1a96185572c42647 Mon Sep 17 00:00:00 2001 From: kyab Date: Wed, 24 Jul 2013 18:37:00 +0900 Subject: Fix mrbc error for space included path --- tasks/mruby_build_commands.rake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tasks') diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index b678b1f0e..e09aee426 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -259,7 +259,7 @@ module MRuby infiles.each do |f| _pp "MRBC", f.relative_path, nil, :indent => 2 end - IO.popen("#{filename @command} #{@compile_options % {:funcname => funcname}} #{infiles.join(' ')}", 'r+') do |io| + IO.popen("#{filename @command} #{@compile_options % {:funcname => funcname}} #{filename(infiles).join(' ')}", 'r+') do |io| out.puts io.read end end -- cgit v1.2.3 From f4ae43249793259b4b6d4c79ca8a091c65de30ef Mon Sep 17 00:00:00 2001 From: fleuria Date: Thu, 25 Jul 2013 03:47:39 +0800 Subject: if mrbc.run fail, abort rake --- tasks/mruby_build_commands.rake | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tasks') diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index e09aee426..19d0b70a2 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -262,6 +262,11 @@ module MRuby IO.popen("#{filename @command} #{@compile_options % {:funcname => funcname}} #{filename(infiles).join(' ')}", 'r+') do |io| out.puts io.read end + # if mrbc execution fail, drop the file + if not $?.exitstatus + File.delete(out.path) + exit -1 + end end end -- cgit v1.2.3 From 961cd408a86580c4d428f56153da00fd46738e35 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 27 Jul 2013 14:21:09 +0900 Subject: replace "if not" to "unless" --- tasks/mrbgems_test.rake | 2 +- tasks/mruby_build_commands.rake | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tasks') diff --git a/tasks/mrbgems_test.rake b/tasks/mrbgems_test.rake index 717f0d76b..1050b84bb 100644 --- a/tasks/mrbgems_test.rake +++ b/tasks/mrbgems_test.rake @@ -38,7 +38,7 @@ MRuby.each_target do f.puts %Q[ }] f.puts %Q[ mrb_const_set(mrb2, mrb_obj_value(mrb2->object_class), mrb_intern(mrb2, "GEMNAME"), mrb_str_new(mrb2, "#{g.name}", #{g.name.length}));] - if not g.test_args.empty? + unless g.test_args.empty? f.puts %Q[ test_args_hash = mrb_hash_new_capa(mrb, #{g.test_args.length}); ] g.test_args.each do |arg_name, arg_value| escaped_arg_name = arg_name.gsub('\\', '\\\\\\\\').gsub('"', '\"') diff --git a/tasks/mruby_build_commands.rake b/tasks/mruby_build_commands.rake index 19d0b70a2..349b8717d 100644 --- a/tasks/mruby_build_commands.rake +++ b/tasks/mruby_build_commands.rake @@ -263,7 +263,7 @@ module MRuby out.puts io.read end # if mrbc execution fail, drop the file - if not $?.exitstatus + unless $?.exitstatus File.delete(out.path) exit -1 end -- cgit v1.2.3