aboutsummaryrefslogtreecommitdiffhomepage
path: root/ruby
diff options
context:
space:
mode:
authorGravatar Joshua Haberman <jhaberman@gmail.com>2016-05-03 13:10:02 -0700
committerGravatar Joshua Haberman <jhaberman@gmail.com>2016-05-03 13:10:02 -0700
commit7dda312224b298fb857ddd791bed148d46aac94e (patch)
tree93e6a0bf3ece1c92ba1a2c7d2f6702fc36bd75b0 /ruby
parent09f1757cf55236f14ab5cc23cf36ec802860744f (diff)
parent236b93937f21fdd1ba040326e61ded3dc8e6561a (diff)
Merge pull request #1473 from nicolasnoble/rake-tweaks
Few tweaks to the rakefile to permit native gems compilation with the proto files generation.
Diffstat (limited to 'ruby')
-rw-r--r--ruby/Gemfile.lock2
-rw-r--r--ruby/Rakefile70
-rw-r--r--ruby/google-protobuf.gemspec2
3 files changed, 43 insertions, 31 deletions
diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock
index 27e57506..d0eb9cc4 100644
--- a/ruby/Gemfile.lock
+++ b/ruby/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- google-protobuf (3.0.0.alpha.5.0)
+ google-protobuf (3.0.0.alpha.5.0.5)
GEM
remote: https://rubygems.org/
diff --git a/ruby/Rakefile b/ruby/Rakefile
index 8eb7a2df..88a07a64 100644
--- a/ruby/Rakefile
+++ b/ruby/Rakefile
@@ -5,6 +5,40 @@ require "rake/testtask"
spec = Gem::Specification.load("google-protobuf.gemspec")
+well_known_protos = %w[
+ google/protobuf/any.proto
+ google/protobuf/api.proto
+ google/protobuf/duration.proto
+ google/protobuf/empty.proto
+ google/protobuf/field_mask.proto
+ google/protobuf/source_context.proto
+ google/protobuf/struct.proto
+ google/protobuf/timestamp.proto
+ google/protobuf/type.proto
+ google/protobuf/wrappers.proto
+]
+
+# These are omitted for now because we don't support proto2.
+proto2_protos = %w[
+ google/protobuf/descriptor.proto
+ google/protobuf/compiler/plugin.proto
+]
+
+genproto_output = []
+
+# We won't have access to .. from within docker, but the proto files
+# will be there, thanks to the :genproto rule dependency for gem:native.
+unless ENV['IN_DOCKER'] == 'true'
+ well_known_protos.each do |proto_file|
+ input_file = "../src/" + proto_file
+ output_file = "lib/" + proto_file.sub(/\.proto$/, ".rb")
+ genproto_output << output_file
+ file output_file => input_file do |file_task|
+ sh "../src/protoc -I../src --ruby_out=lib #{input_file}"
+ end
+ end
+end
+
if RUBY_PLATFORM == "java"
if `which mvn` == ''
raise ArgumentError, "maven needs to be installed"
@@ -30,37 +64,15 @@ else
task 'gem:windows' do
require 'rake_compiler_dock'
- RakeCompilerDock.sh "bundle && rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.6"
+ RakeCompilerDock.sh "bundle && IN_DOCKER=true rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.5:2.0.0"
end
-end
-
-well_known_protos = %w[
- google/protobuf/any.proto
- google/protobuf/api.proto
- google/protobuf/duration.proto
- google/protobuf/empty.proto
- google/protobuf/field_mask.proto
- google/protobuf/source_context.proto
- google/protobuf/struct.proto
- google/protobuf/timestamp.proto
- google/protobuf/type.proto
- google/protobuf/wrappers.proto
-]
-
-# These are omitted for now because we don't support proto2.
-proto2_protos = %w[
- google/protobuf/descriptor.proto
- google/protobuf/compiler/plugin.proto
-]
-
-genproto_output = []
-well_known_protos.each do |proto_file|
- input_file = "../src/" + proto_file
- output_file = "lib/" + proto_file.sub(/\.proto$/, ".rb")
- genproto_output << output_file
- file output_file => input_file do |file_task|
- sh "../src/protoc -I../src --ruby_out=lib #{input_file}"
+ if RUBY_PLATFORM =~ /darwin/
+ task 'gem:native' do
+ system "rake cross native gem RUBY_CC_VERSION=2.3.0:2.2.2:2.1.5:2.0.0"
+ end
+ else
+ task 'gem:native' => [:genproto, 'gem:windows']
end
end
diff --git a/ruby/google-protobuf.gemspec b/ruby/google-protobuf.gemspec
index 7b64ee77..1fa626fe 100644
--- a/ruby/google-protobuf.gemspec
+++ b/ruby/google-protobuf.gemspec
@@ -1,6 +1,6 @@
Gem::Specification.new do |s|
s.name = "google-protobuf"
- s.version = "3.0.0.alpha.5.0"
+ s.version = "3.0.0.alpha.5.0.5"
s.licenses = ["BSD"]
s.summary = "Protocol Buffers"
s.description = "Protocol Buffers are Google's data interchange format."