|
@@ -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"
|
|
@@ -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
|
|
|
|
|
|
|