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