• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%YAML 1.2
2--- |
3  # This file has been automatically generated from a template file.
4  # Please make modifications to `templates/gRPC.podspec.template`
5  # instead. This file can be regenerated from the template by running
6  # `tools/buildgen/generate_projects.sh`.
7
8  # Copyright 2015 gRPC authors.
9  #
10  # Licensed under the Apache License, Version 2.0 (the "License");
11  # you may not use this file except in compliance with the License.
12  # You may obtain a copy of the License at
13  #
14  #     http://www.apache.org/licenses/LICENSE-2.0
15  #
16  # Unless required by applicable law or agreed to in writing, software
17  # distributed under the License is distributed on an "AS IS" BASIS,
18  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  # See the License for the specific language governing permissions and
20  # limitations under the License.
21
22
23  Pod::Spec.new do |s|
24    s.name     = 'gRPC'
25    version = '${settings.version}'
26    s.version  = version
27    s.summary  = 'gRPC client library for iOS/OSX'
28    s.homepage = 'https://grpc.io'
29    s.license  = 'Apache License, Version 2.0'
30    s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }
31
32    s.source = {
33      :git => 'https://github.com/grpc/grpc.git',
34      :tag => "v#{version}",
35    }
36
37    name = 'GRPCClient'
38    s.module_name = name
39    s.header_dir = name
40
41    s.default_subspec = 'Interface', 'GRPCCore', 'Interface-Legacy'
42
43    s.pod_target_xcconfig = {
44      # This is needed by all pods that depend on gRPC-RxLibrary:
45      'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
46      'CLANG_WARN_STRICT_PROTOTYPES' => 'NO',
47      'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17',
48    }
49
50    s.ios.deployment_target = '11.0'
51    s.osx.deployment_target = '10.14'
52    s.tvos.deployment_target = '13.0'
53    s.watchos.deployment_target = '6.0'
54    s.visionos.deployment_target = '1.0'
55
56    # Exposes the privacy manifest. Depended on by any subspecs containing
57    # non-interface files.
58    s.subspec 'Privacy' do |ss|
59      ss.resource_bundles = {
60        s.module_name => 'src/objective-c/PrivacyInfo.xcprivacy'
61      }
62    end
63
64    s.subspec 'Interface-Legacy' do |ss|
65      ss.header_mappings_dir = 'src/objective-c/GRPCClient'
66
67      ss.public_header_files = "src/objective-c/GRPCClient/GRPCCall+ChannelArg.h",
68                               "src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h",
69                               "src/objective-c/GRPCClient/GRPCCall+Cronet.h",
70                               "src/objective-c/GRPCClient/GRPCCall+OAuth2.h",
71                               "src/objective-c/GRPCClient/GRPCCall+Tests.h",
72                               "src/objective-c/GRPCClient/GRPCCallLegacy.h",
73                               "src/objective-c/GRPCClient/GRPCTypes.h"
74
75      ss.source_files = "src/objective-c/GRPCClient/GRPCCall+ChannelArg.h",
76                        "src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h",
77                        "src/objective-c/GRPCClient/GRPCCall+Cronet.h",
78                        "src/objective-c/GRPCClient/GRPCCall+OAuth2.h",
79                        "src/objective-c/GRPCClient/GRPCCall+Tests.h",
80                        "src/objective-c/GRPCClient/GRPCCallLegacy.h",
81                        "src/objective-c/GRPCClient/GRPCTypes.h",
82                        "src/objective-c/GRPCClient/GRPCTypes.mm"
83      ss.dependency "gRPC-RxLibrary/Interface", version
84      ss.dependency "#{s.name}/Privacy", version
85      s.ios.deployment_target = '11.0'
86      s.osx.deployment_target = '10.14'
87      s.tvos.deployment_target = '13.0'
88      s.watchos.deployment_target = '6.0'
89      s.visionos.deployment_target = '1.0'
90    end
91
92    s.subspec 'Interface' do |ss|
93      ss.header_mappings_dir = 'src/objective-c/GRPCClient'
94
95      ss.public_header_files = 'src/objective-c/GRPCClient/GRPCCall.h',
96                               'src/objective-c/GRPCClient/GRPCCall+Interceptor.h',
97                               'src/objective-c/GRPCClient/GRPCCallOptions.h',
98                               'src/objective-c/GRPCClient/GRPCInterceptor.h',
99                               'src/objective-c/GRPCClient/GRPCTransport.h',
100                               'src/objective-c/GRPCClient/GRPCDispatchable.h',
101                               'src/objective-c/GRPCClient/version.h'
102
103      ss.source_files = 'src/objective-c/GRPCClient/GRPCCall.h',
104                        'src/objective-c/GRPCClient/GRPCCall.mm',
105                        'src/objective-c/GRPCClient/GRPCCall+Interceptor.h',
106                        'src/objective-c/GRPCClient/GRPCCall+Interceptor.mm',
107                        'src/objective-c/GRPCClient/GRPCCallOptions.h',
108                        'src/objective-c/GRPCClient/GRPCCallOptions.mm',
109                        'src/objective-c/GRPCClient/GRPCDispatchable.h',
110                        'src/objective-c/GRPCClient/GRPCInterceptor.h',
111                        'src/objective-c/GRPCClient/GRPCInterceptor.mm',
112                        'src/objective-c/GRPCClient/GRPCTransport.h',
113                        'src/objective-c/GRPCClient/GRPCTransport.mm',
114                        'src/objective-c/GRPCClient/internal/*.h',
115                        'src/objective-c/GRPCClient/private/GRPCTransport+Private.h',
116                        'src/objective-c/GRPCClient/private/GRPCTransport+Private.mm',
117                        'src/objective-c/GRPCClient/version.h'
118
119      ss.dependency "#{s.name}/Interface-Legacy", version
120      ss.dependency "#{s.name}/Privacy", version
121      s.ios.deployment_target = '11.0'
122      s.osx.deployment_target = '10.14'
123      s.tvos.deployment_target = '13.0'
124      s.watchos.deployment_target = '6.0'
125      s.visionos.deployment_target = '1.0'
126    end
127
128    s.subspec 'GRPCCore' do |ss|
129      ss.header_mappings_dir = 'src/objective-c/GRPCClient'
130
131      ss.public_header_files = 'src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h',
132                               'src/objective-c/GRPCClient/GRPCCall+Cronet.h',
133                               'src/objective-c/GRPCClient/GRPCCall+OAuth2.h',
134                               'src/objective-c/GRPCClient/GRPCCall+Tests.h',
135                               'src/objective-c/GRPCClient/GRPCCall+ChannelArg.h'
136      ss.private_header_files = 'src/objective-c/GRPCClient/private/GRPCCore/*.h'
137      ss.source_files = 'src/objective-c/GRPCClient/private/GRPCCore/*.{h,mm}',
138                        'src/objective-c/GRPCClient/GRPCCall+ChannelArg.h',
139                        'src/objective-c/GRPCClient/GRPCCall+ChannelArg.mm',
140                        'src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h',
141                        'src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.mm',
142                        'src/objective-c/GRPCClient/GRPCCall+Cronet.h',
143                        'src/objective-c/GRPCClient/GRPCCall+Cronet.mm',
144                        'src/objective-c/GRPCClient/GRPCCall+OAuth2.h',
145                        'src/objective-c/GRPCClient/GRPCCall+OAuth2.mm',
146                        'src/objective-c/GRPCClient/GRPCCall+Tests.h',
147                        'src/objective-c/GRPCClient/GRPCCall+Tests.mm',
148                        'src/objective-c/GRPCClient/GRPCCallLegacy.mm'
149
150      # Certificates, to be able to establish TLS connections:
151      ss.resource_bundles = { 'gRPCCertificates' => ['etc/roots.pem'] }
152
153      ss.dependency "#{s.name}/Interface-Legacy", version
154      ss.dependency "#{s.name}/Interface", version
155      ss.dependency "#{s.name}/Privacy", version
156      ss.dependency 'gRPC-Core', version
157      ss.dependency 'gRPC-RxLibrary', version
158
159      s.ios.deployment_target = '11.0'
160      s.osx.deployment_target = '10.14'
161      s.tvos.deployment_target = '13.0'
162      s.watchos.deployment_target = '6.0'
163      s.visionos.deployment_target = '1.0'
164    end
165
166    s.subspec 'GRPCCoreCronet' do |ss|
167      ss.header_mappings_dir = 'src/objective-c/GRPCClient'
168
169      ss.source_files = 'src/objective-c/GRPCClient/GRPCCall+Cronet.h',
170                        'src/objective-c/GRPCClient/GRPCCall+Cronet.mm',
171                        'src/objective-c/GRPCClient/private/GRPCCore/GRPCCoreCronet/*.{h,mm}'
172      ss.dependency "#{s.name}/GRPCCore", version
173      ss.dependency "#{s.name}/Privacy", version
174      ss.dependency 'gRPC-Core/Cronet-Implementation', version
175      ss.dependency 'CronetFramework'
176
177      ss.ios.deployment_target = '11.0'
178    end
179
180    # CFStream is now default. Leaving this subspec only for compatibility purpose.
181    s.subspec 'CFStream' do |ss|
182      ss.dependency "#{s.name}/GRPCCore", version
183
184      s.ios.deployment_target = '11.0'
185      s.osx.deployment_target = '10.14'
186      s.tvos.deployment_target = '13.0'
187      s.watchos.deployment_target = '6.0'
188      s.visionos.deployment_target = '1.0'
189    end
190
191    s.subspec 'InternalTesting' do |ss|
192      ss.dependency "#{s.name}/GRPCCore", version
193      ss.public_header_files = 'src/objective-c/GRPCClient/internal_testing/*.h'
194      ss.source_files = 'src/objective-c/GRPCClient/internal_testing/*.{h,mm}'
195      ss.header_mappings_dir = 'src/objective-c/GRPCClient'
196
197      s.ios.deployment_target = '11.0'
198      s.osx.deployment_target = '10.14'
199      s.tvos.deployment_target = '13.0'
200      s.watchos.deployment_target = '6.0'
201      s.visionos.deployment_target = '1.0'
202    end
203  end
204