Skip to content

Commit

Permalink
Few tweaks to the rakefile to permit native gems compilation with the…
Browse files Browse the repository at this point in the history
… proto files generation.
  • Loading branch information
nicolasnoble committed Apr 29, 2016
1 parent cbb6b28 commit 1f8b6da
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 32 deletions.
2 changes: 1 addition & 1 deletion ruby/Gemfile.lock
Original file line number Diff line number Diff line change
@@ -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/
Expand Down
64 changes: 34 additions & 30 deletions ruby/Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,38 @@ 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 = []

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"
Expand All @@ -30,38 +62,10 @@ 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}"
end
task 'gem:native' => [:genproto, 'gem:windows']
end


Expand Down
2 changes: 1 addition & 1 deletion ruby/google-protobuf.gemspec
Original file line number Diff line number Diff line change
@@ -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."
Expand Down

0 comments on commit 1f8b6da

Please sign in to comment.