From af4aa9bd64229d726d62a532f5f31a415ff74725 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Thu, 4 Feb 2016 10:44:22 -0800 Subject: Added support for binary gems. --- ruby/Gemfile.lock | 4 ++-- ruby/Rakefile | 5 +++++ ruby/lib/google/protobuf.rb | 6 +++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index 8599da75..2c030dd2 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - google-protobuf (3.0.0.alpha.4.0) + google-protobuf (3.0.0.alpha.5.0) GEM remote: https://rubygems.org/ @@ -25,4 +25,4 @@ DEPENDENCIES test-unit BUNDLED WITH - 1.10.6 + 1.11.2 diff --git a/ruby/Rakefile b/ruby/Rakefile index c25103d8..44497dea 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -21,6 +21,11 @@ else ext.ext_dir = "ext/google/protobuf_c" ext.lib_dir = "lib/google" end + + task 'gem:windows' do + require 'rake_compiler_dock' + RakeCompilerDock.sh "bundle && rake cross native gem" + end end Gem::PackageTask.new(spec) do |pkg| diff --git a/ruby/lib/google/protobuf.rb b/ruby/lib/google/protobuf.rb index f0eb6268..62bdd1bf 100644 --- a/ruby/lib/google/protobuf.rb +++ b/ruby/lib/google/protobuf.rb @@ -44,7 +44,11 @@ if RUBY_PLATFORM == "java" require 'json' require 'google/protobuf_java' else - require 'google/protobuf_c' + begin + require "google/#{RUBY_VERSION.sub(/\.\d$/, '')}/protobuf_c" + rescue LoadError + require 'google/protobuf_c' + end end require 'google/protobuf/repeated_field' -- cgit v1.2.3 From 70a4b03086fae034d1cdf03b6a65d0eb7e8e92e7 Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Thu, 4 Feb 2016 14:18:14 -0800 Subject: Add rake-compiler-dock as a dep. --- ruby/Gemfile.lock | 2 ++ ruby/google-protobuf.gemspec | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index 2c030dd2..27e57506 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -10,6 +10,7 @@ GEM rake (10.4.2) rake-compiler (0.9.5) rake + rake-compiler-dock (0.5.1) rubygems-tasks (0.2.4) test-unit (3.0.9) power_assert @@ -21,6 +22,7 @@ PLATFORMS DEPENDENCIES google-protobuf! rake-compiler + rake-compiler-dock rubygems-tasks test-unit diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 312a0c8c..0762da97 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -9,11 +9,12 @@ Gem::Specification.new do |s| s.email = "protobuf@googlegroups.com" s.require_paths = ["lib"] s.files = `git ls-files -z`.split("\x0").find_all{|f| f =~ /lib\/.+\.rb/} - unless RUBY_PLATFORM == "java" + if RUBY_PLATFORM == "java" + s.files += ["lib/google/protobuf_java.jar"] + else s.files += `git ls-files "*.c" "*.h" extconf.rb Makefile`.split s.extensions= ["ext/google/protobuf_c/extconf.rb"] - else - s.files += ["lib/google/protobuf_java.jar"] + s.add_development_dependency "rake-compiler-dock" end s.test_files = ["tests/basic.rb", "tests/stress.rb", -- cgit v1.2.3 From 4e141bb3b885f2f79664958b7086fa4a0a526bef Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Sat, 6 Feb 2016 00:55:28 +0100 Subject: Removing usage of git - not everyone grabs the gem using it. --- ruby/google-protobuf.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec index 0762da97..7b64ee77 100644 --- a/ruby/google-protobuf.gemspec +++ b/ruby/google-protobuf.gemspec @@ -8,11 +8,11 @@ Gem::Specification.new do |s| s.authors = ["Protobuf Authors"] s.email = "protobuf@googlegroups.com" s.require_paths = ["lib"] - s.files = `git ls-files -z`.split("\x0").find_all{|f| f =~ /lib\/.+\.rb/} + s.files = Dir.glob('lib/**/*.rb') if RUBY_PLATFORM == "java" s.files += ["lib/google/protobuf_java.jar"] else - s.files += `git ls-files "*.c" "*.h" extconf.rb Makefile`.split + s.files += Dir.glob('ext/**/*') s.extensions= ["ext/google/protobuf_c/extconf.rb"] s.add_development_dependency "rake-compiler-dock" end -- cgit v1.2.3 From bbb188acddce91bea47bd708d217e33b9eab4442 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Sat, 6 Feb 2016 00:55:45 +0100 Subject: Actually enabling cross compilation. --- ruby/Rakefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ruby/Rakefile b/ruby/Rakefile index 44497dea..81c3119e 100644 --- a/ruby/Rakefile +++ b/ruby/Rakefile @@ -20,11 +20,17 @@ else Rake::ExtensionTask.new("protobuf_c", spec) do |ext| ext.ext_dir = "ext/google/protobuf_c" ext.lib_dir = "lib/google" + ext.cross_compile = true + ext.cross_platform = [ + 'x86-mingw32', 'x64-mingw32', + 'x86_64-linux', 'x86-linux', + 'universal-darwin' + ] end task 'gem:windows' do require 'rake_compiler_dock' - RakeCompilerDock.sh "bundle && rake cross native gem" + RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.6" end end -- cgit v1.2.3