xref: /aosp_15_r20/external/grpc-grpc/templates/grpc.gemspec.template (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
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
8  Gem::Specification.new do |s|
9    s.name          = 'grpc'
10    s.version       = GRPC::VERSION
11    s.authors       = ['gRPC Authors']
12    s.email         = '[email protected]'
13    s.homepage      = 'https://github.com/google/grpc/tree/master/src/ruby'
14    s.summary       = 'GRPC system in Ruby'
15    s.description   = 'Send RPCs from Ruby using GRPC'
16    s.license       = 'Apache-2.0'
17
18    s.required_ruby_version = '>= 2.5.0'
19
20    s.files = %w( Makefile .yardopts )
21    s.files += %w( etc/roots.pem )
22    s.files += Dir.glob('src/ruby/bin/**/*')
23    s.files += Dir.glob('src/ruby/ext/**/*')
24    s.files += Dir.glob('src/ruby/lib/**/*')
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.test_files += Dir.glob('src/ruby/pb/test/**/*')
31    s.bindir = 'src/ruby/bin'
32    s.require_paths = %w( src/ruby/lib src/ruby/bin src/ruby/pb )
33    s.platform      = Gem::Platform::RUBY
34
35    ## Once protobuf 4.x is working with other dependencies,
36    ## please replace the following fixed 3.25 version with
37    ## '~> 4.${settings.protobuf_version.split(".")[1]}'
38    s.add_dependency 'google-protobuf', '~> 3.25'
39    s.add_dependency 'googleapis-common-protos-types', '~> 1.0'
40
41    s.add_development_dependency 'bundler',            '>= 1.9'
42    s.add_development_dependency 'facter',             '~> 2.4'
43    s.add_development_dependency 'logging',            '~> 2.0'
44    s.add_development_dependency 'simplecov',          '~> 0.22'
45    s.add_development_dependency 'rake',               '~> 13.0'
46    s.add_development_dependency 'rake-compiler',      '~> 1.2.1'
47    s.add_development_dependency 'rake-compiler-dock', '~> 1.4'
48    s.add_development_dependency 'rspec',              '~> 3.6'
49    s.add_development_dependency 'rubocop',            '~> 1.41.0'
50    s.add_development_dependency 'signet',             '~> 0.7'
51    s.add_development_dependency 'googleauth',         '~> 1.0'
52
53    s.extensions = %w(src/ruby/ext/grpc/extconf.rb)
54  <%
55    files = []
56    ruby_deps = ruby_gem.get('deps', [])
57    lib_maps = {lib.name: lib for lib in libs}
58    for dep in ruby_deps[:]:
59      ruby_deps.extend(lib_maps[dep].transitive_deps)
60    for dep in ruby_deps:
61      lib = lib_maps.get(dep, None)
62      if lib:
63        files.extend(lib.get('public_headers', []) + lib.headers + lib.src)
64    files = sorted(set(files))
65  %>
66    % for file in files:
67    s.files += %w( ${file} )
68    % endfor
69  end
70