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