1Gem::Specification.new do |s| 2 s.name = "google-protobuf" 3 s.version = "4.29.4" 4 git_tag = "v#{s.version.to_s.sub('.rc.', '-rc')}" # Converts X.Y.Z.rc.N to vX.Y.Z-rcN, used for the git tag 5 s.licenses = ["BSD-3-Clause"] 6 s.summary = "Protocol Buffers" 7 s.description = "Protocol Buffers are Google's data interchange format." 8 s.homepage = "https://developers.google.com/protocol-buffers" 9 s.authors = ["Protobuf Authors"] 10 s.email = "protobuf@googlegroups.com" 11 s.metadata = { "source_code_uri" => "https://github.com/protocolbuffers/protobuf/tree/#{git_tag}/ruby" } 12 s.require_paths = ["lib"] 13 s.files = Dir.glob('lib/**/*.{rb,rake}') 14 if RUBY_PLATFORM == "java" 15 s.platform = "java" 16 s.files += ["lib/google/protobuf_java.jar"] + 17 Dir.glob('ext/**/*').reject do |file| 18 File.basename(file) =~ /^((convert|defs|map|repeated_field)\.[ch]| 19 BUILD\.bazel|extconf\.rb|wrap_memcpy\.c)$/x 20 end 21 s.extensions = ["ext/google/protobuf_c/Rakefile"] 22 s.add_dependency "ffi", "~>1" 23 s.add_dependency "ffi-compiler", "~>1" 24 else 25 s.files += Dir.glob('ext/**/*').reject do |file| 26 File.basename(file) =~ /^(BUILD\.bazel)$/ 27 end 28 s.extensions = %w[ 29 ext/google/protobuf_c/extconf.rb 30 ext/google/protobuf_c/Rakefile 31 ] 32 s.add_development_dependency "rake-compiler-dock", "= 1.2.1" 33 end 34 s.required_ruby_version = '>= 3.0' 35 # bigdecimal must be used as a non-built in gem as of ruby-3.4 36 s.add_dependency "bigdecimal" 37 # TODO: evaluate removing Rakefile and moving logic to extconf.rb, so that we 38 # can remove this runtime dependency on rake. See the discussion here for 39 # more details: 40 # https://github.com/protocolbuffers/protobuf/pull/15203 41 s.add_dependency "rake", ">= 13" 42 s.add_development_dependency "ffi", "~>1" 43 s.add_development_dependency "ffi-compiler", "~>1" 44 s.add_development_dependency "rake-compiler", "~> 1.1.0" 45 s.add_development_dependency "test-unit", '~> 3.0', '>= 3.0.9' 46end 47