grpc.gemspec.template 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. %YAML 1.2
  2. --- |
  3. # -*- ruby -*-
  4. # encoding: utf-8
  5. $LOAD_PATH.push File.expand_path('../src/ruby/lib', __FILE__)
  6. require 'grpc/version'
  7. Gem::Specification.new do |s|
  8. s.name = 'grpc'
  9. s.version = GRPC::VERSION
  10. s.authors = ['gRPC Authors']
  11. s.email = 'grpc-io@googlegroups.com'
  12. s.homepage = 'https://github.com/google/grpc/tree/master/src/ruby'
  13. s.summary = 'GRPC system in Ruby'
  14. s.description = 'Send RPCs from Ruby using GRPC'
  15. s.license = 'Apache-2.0'
  16. s.required_ruby_version = '>= 2.5.0'
  17. s.files = %w( Makefile .yardopts )
  18. s.files += %w( etc/roots.pem )
  19. s.files += Dir.glob('src/ruby/bin/**/*')
  20. s.files += Dir.glob('src/ruby/ext/**/*')
  21. s.files += Dir.glob('src/ruby/lib/**/*').reject do |f|
  22. # Binaries are included by rake-compiler and would lead to circular dependencies here
  23. File.fnmatch("**/?.?/grpc_c.so", f)
  24. end
  25. s.files += Dir.glob('src/ruby/pb/**/*').reject do |f|
  26. f.match(%r{^src/ruby/pb/test})
  27. end
  28. s.files += Dir.glob('include/grpc/**/*')
  29. s.test_files = Dir.glob('src/ruby/spec/**/*')
  30. s.bindir = 'src/ruby/bin'
  31. s.require_paths = %w( src/ruby/lib src/ruby/bin src/ruby/pb )
  32. s.platform = Gem::Platform::RUBY
  33. s.add_dependency 'google-protobuf', '~> ${settings.protobuf_major_minor_version}'
  34. s.add_dependency 'googleapis-common-protos-types', '~> 1.0'
  35. s.add_development_dependency 'bundler', '>= 1.9'
  36. s.add_development_dependency 'facter', '~> 2.4'
  37. s.add_development_dependency 'logging', '~> 2.0'
  38. s.add_development_dependency 'simplecov', '~> 0.14.1'
  39. s.add_development_dependency 'rake', '~> 13.0'
  40. s.add_development_dependency 'rake-compiler', '<= 1.1.1'
  41. s.add_development_dependency 'rake-compiler-dock', '~> 1.1'
  42. s.add_development_dependency 'rspec', '~> 3.6'
  43. s.add_development_dependency 'rubocop', '~> 0.49.1'
  44. s.add_development_dependency 'signet', '~> 0.7'
  45. s.add_development_dependency 'googleauth', '>= 0.5.1', '< 0.10'
  46. s.extensions = %w(src/ruby/ext/grpc/extconf.rb)
  47. <%
  48. files = []
  49. ruby_deps = ruby_gem.get('deps', [])
  50. lib_maps = {lib.name: lib for lib in libs}
  51. for dep in ruby_deps[:]:
  52. ruby_deps.extend(lib_maps[dep].transitive_deps)
  53. for dep in ruby_deps:
  54. lib = lib_maps[dep]
  55. files.extend(lib.get('public_headers', []) + lib.headers + lib.src)
  56. files = sorted(set(files))
  57. %>
  58. % for file in files:
  59. s.files += %w( ${file} )
  60. % endfor
  61. end