aboutsummaryrefslogtreecommitdiffhomepage
path: root/gRPC.podspec
blob: 67e7a8174f82b30ec494c588625fe229f049306f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
# GRPC CocoaPods podspec
# This file has been automatically generated from a template file.
# Please look at the templates directory instead.
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh

# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
#     * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#     * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Pod::Spec.new do |s|
  s.name     = 'gRPC'
  version = '0.14.0'
  s.version  = version
  s.summary  = 'gRPC client library for iOS/OSX'
  s.homepage = 'http://www.grpc.io'
  s.license  = 'New BSD'
  s.authors  = { 'The gRPC contributors' => 'grpc-packages@google.com' }

  s.source = { :git => 'https://github.com/grpc/grpc.git',
               :tag => "release-#{version.gsub(/\./, '_')}-objectivec-#{version}",
               :submodules => true }


  s.ios.deployment_target = '7.1'
  s.osx.deployment_target = '10.9'
  s.requires_arc = true

  objc_dir = 'src/objective-c'

  # Reactive Extensions library for iOS.
  s.subspec 'RxLibrary' do |ss|
    src_dir = "#{objc_dir}/RxLibrary"
    ss.source_files = "#{src_dir}/*.{h,m}", "#{src_dir}/**/*.{h,m}"
    ss.private_header_files = "#{src_dir}/private/*.h"
    ss.header_mappings_dir = "#{objc_dir}"
  end

  # Core cross-platform gRPC library, written in C.
  s.subspec 'C-Core' do |ss|
    ss.source_files = 'src/core/lib/profiling/timers.h',
                      'src/core/lib/support/backoff.h',
                      'src/core/lib/support/block_annotate.h',
                      'src/core/lib/support/env.h',
                      'src/core/lib/support/load_file.h',
                      'src/core/lib/support/murmur_hash.h',
                      'src/core/lib/support/stack_lockfree.h',
                      'src/core/lib/support/string.h',
                      'src/core/lib/support/string_win32.h',
                      'src/core/lib/support/thd_internal.h',
                      'src/core/lib/support/time_precise.h',
                      'src/core/lib/support/tmpfile.h',
                      'include/grpc/support/alloc.h',
                      'include/grpc/support/atm.h',
                      'include/grpc/support/atm_gcc_atomic.h',
                      'include/grpc/support/atm_gcc_sync.h',
                      'include/grpc/support/atm_win32.h',
                      'include/grpc/support/avl.h',
                      'include/grpc/support/cmdline.h',
                      'include/grpc/support/cpu.h',
                      'include/grpc/support/histogram.h',
                      'include/grpc/support/host_port.h',
                      'include/grpc/support/log.h',
                      'include/grpc/support/log_win32.h',
                      'include/grpc/support/port_platform.h',
                      'include/grpc/support/slice.h',
                      'include/grpc/support/slice_buffer.h',
                      'include/grpc/support/string_util.h',
                      'include/grpc/support/subprocess.h',
                      'include/grpc/support/sync.h',
                      'include/grpc/support/sync_generic.h',
                      'include/grpc/support/sync_posix.h',
                      'include/grpc/support/sync_win32.h',
                      'include/grpc/support/thd.h',
                      'include/grpc/support/time.h',
                      'include/grpc/support/tls.h',
                      'include/grpc/support/tls_gcc.h',
                      'include/grpc/support/tls_msvc.h',
                      'include/grpc/support/tls_pthread.h',
                      'include/grpc/support/useful.h',
                      'include/grpc/impl/codegen/alloc.h',
                      'include/grpc/impl/codegen/atm.h',
                      'include/grpc/impl/codegen/atm_gcc_atomic.h',
                      'include/grpc/impl/codegen/atm_gcc_sync.h',
                      'include/grpc/impl/codegen/atm_win32.h',
                      'include/grpc/impl/codegen/log.h',
                      'include/grpc/impl/codegen/port_platform.h',
                      'include/grpc/impl/codegen/slice.h',
                      'include/grpc/impl/codegen/slice_buffer.h',
                      'include/grpc/impl/codegen/sync.h',
                      'include/grpc/impl/codegen/sync_generic.h',
                      'include/grpc/impl/codegen/sync_posix.h',
                      'include/grpc/impl/codegen/sync_win32.h',
                      'include/grpc/impl/codegen/time.h',
                      'src/core/lib/profiling/basic_timers.c',
                      'src/core/lib/profiling/stap_timers.c',
                      'src/core/lib/support/alloc.c',
                      'src/core/lib/support/avl.c',
                      'src/core/lib/support/backoff.c',
                      'src/core/lib/support/cmdline.c',
                      'src/core/lib/support/cpu_iphone.c',
                      'src/core/lib/support/cpu_linux.c',
                      'src/core/lib/support/cpu_posix.c',
                      'src/core/lib/support/cpu_windows.c',
                      'src/core/lib/support/env_linux.c',
                      'src/core/lib/support/env_posix.c',
                      'src/core/lib/support/env_win32.c',
                      'src/core/lib/support/histogram.c',
                      'src/core/lib/support/host_port.c',
                      'src/core/lib/support/load_file.c',
                      'src/core/lib/support/log.c',
                      'src/core/lib/support/log_android.c',
                      'src/core/lib/support/log_linux.c',
                      'src/core/lib/support/log_posix.c',
                      'src/core/lib/support/log_win32.c',
                      'src/core/lib/support/murmur_hash.c',
                      'src/core/lib/support/slice.c',
                      'src/core/lib/support/slice_buffer.c',
                      'src/core/lib/support/stack_lockfree.c',
                      'src/core/lib/support/string.c',
                      'src/core/lib/support/string_posix.c',
                      'src/core/lib/support/string_util_win32.c',
                      'src/core/lib/support/string_win32.c',
                      'src/core/lib/support/subprocess_posix.c',
                      'src/core/lib/support/subprocess_windows.c',
                      'src/core/lib/support/sync.c',
                      'src/core/lib/support/sync_posix.c',
                      'src/core/lib/support/sync_win32.c',
                      'src/core/lib/support/thd.c',
                      'src/core/lib/support/thd_posix.c',
                      'src/core/lib/support/thd_win32.c',
                      'src/core/lib/support/time.c',
                      'src/core/lib/support/time_posix.c',
                      'src/core/lib/support/time_precise.c',
                      'src/core/lib/support/time_win32.c',
                      'src/core/lib/support/tls_pthread.c',
                      'src/core/lib/support/tmpfile_msys.c',
                      'src/core/lib/support/tmpfile_posix.c',
                      'src/core/lib/support/tmpfile_win32.c',
                      'src/core/lib/support/wrap_memcpy.c',
                      'src/core/lib/channel/channel_args.h',
                      'src/core/lib/channel/channel_stack.h',
                      'src/core/lib/channel/channel_stack_builder.h',
                      'src/core/lib/channel/compress_filter.h',
                      'src/core/lib/channel/connected_channel.h',
                      'src/core/lib/channel/context.h',
                      'src/core/lib/channel/http_client_filter.h',
                      'src/core/lib/channel/http_server_filter.h',
                      'src/core/lib/compression/algorithm_metadata.h',
                      'src/core/lib/compression/message_compress.h',
                      'src/core/lib/debug/trace.h',
                      'src/core/lib/http/format_request.h',
                      'src/core/lib/http/httpcli.h',
                      'src/core/lib/http/parser.h',
                      'src/core/lib/iomgr/closure.h',
                      'src/core/lib/iomgr/endpoint.h',
                      'src/core/lib/iomgr/endpoint_pair.h',
                      'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
                      'src/core/lib/iomgr/ev_poll_posix.h',
                      'src/core/lib/iomgr/ev_posix.h',
                      'src/core/lib/iomgr/exec_ctx.h',
                      'src/core/lib/iomgr/executor.h',
                      'src/core/lib/iomgr/iocp_windows.h',
                      'src/core/lib/iomgr/iomgr.h',
                      'src/core/lib/iomgr/iomgr_internal.h',
                      'src/core/lib/iomgr/iomgr_posix.h',
                      'src/core/lib/iomgr/pollset.h',
                      'src/core/lib/iomgr/pollset_set.h',
                      'src/core/lib/iomgr/pollset_set_windows.h',
                      'src/core/lib/iomgr/pollset_windows.h',
                      'src/core/lib/iomgr/resolve_address.h',
                      'src/core/lib/iomgr/sockaddr.h',
                      'src/core/lib/iomgr/sockaddr_posix.h',
                      'src/core/lib/iomgr/sockaddr_utils.h',
                      'src/core/lib/iomgr/sockaddr_win32.h',
                      'src/core/lib/iomgr/socket_utils_posix.h',
                      'src/core/lib/iomgr/socket_windows.h',
                      'src/core/lib/iomgr/tcp_client.h',
                      'src/core/lib/iomgr/tcp_posix.h',
                      'src/core/lib/iomgr/tcp_server.h',
                      'src/core/lib/iomgr/tcp_windows.h',
                      'src/core/lib/iomgr/time_averaged_stats.h',
                      'src/core/lib/iomgr/timer.h',
                      'src/core/lib/iomgr/timer_heap.h',
                      'src/core/lib/iomgr/udp_server.h',
                      'src/core/lib/iomgr/unix_sockets_posix.h',
                      'src/core/lib/iomgr/wakeup_fd_pipe.h',
                      'src/core/lib/iomgr/wakeup_fd_posix.h',
                      'src/core/lib/iomgr/workqueue.h',
                      'src/core/lib/iomgr/workqueue_posix.h',
                      'src/core/lib/iomgr/workqueue_windows.h',
                      'src/core/lib/json/json.h',
                      'src/core/lib/json/json_common.h',
                      'src/core/lib/json/json_reader.h',
                      'src/core/lib/json/json_writer.h',
                      'src/core/lib/surface/api_trace.h',
                      'src/core/lib/surface/call.h',
                      'src/core/lib/surface/call_test_only.h',
                      'src/core/lib/surface/channel.h',
                      'src/core/lib/surface/channel_init.h',
                      'src/core/lib/surface/channel_stack_type.h',
                      'src/core/lib/surface/completion_queue.h',
                      'src/core/lib/surface/event_string.h',
                      'src/core/lib/surface/init.h',
                      'src/core/lib/surface/lame_client.h',
                      'src/core/lib/surface/server.h',
                      'src/core/lib/surface/surface_trace.h',
                      'src/core/lib/transport/byte_stream.h',
                      'src/core/lib/transport/connectivity_state.h',
                      'src/core/lib/transport/metadata.h',
                      'src/core/lib/transport/metadata_batch.h',
                      'src/core/lib/transport/static_metadata.h',
                      'src/core/lib/transport/transport.h',
                      'src/core/lib/transport/transport_impl.h',
                      'src/core/ext/transport/chttp2/transport/bin_encoder.h',
                      'src/core/ext/transport/chttp2/transport/chttp2_transport.h',
                      'src/core/ext/transport/chttp2/transport/frame.h',
                      'src/core/ext/transport/chttp2/transport/frame_data.h',
                      'src/core/ext/transport/chttp2/transport/frame_goaway.h',
                      'src/core/ext/transport/chttp2/transport/frame_ping.h',
                      'src/core/ext/transport/chttp2/transport/frame_rst_stream.h',
                      'src/core/ext/transport/chttp2/transport/frame_settings.h',
                      'src/core/ext/transport/chttp2/transport/frame_window_update.h',
                      'src/core/ext/transport/chttp2/transport/hpack_encoder.h',
                      'src/core/ext/transport/chttp2/transport/hpack_parser.h',
                      'src/core/ext/transport/chttp2/transport/hpack_table.h',
                      'src/core/ext/transport/chttp2/transport/http2_errors.h',
                      'src/core/ext/transport/chttp2/transport/huffsyms.h',
                      'src/core/ext/transport/chttp2/transport/incoming_metadata.h',
                      'src/core/ext/transport/chttp2/transport/internal.h',
                      'src/core/ext/transport/chttp2/transport/status_conversion.h',
                      'src/core/ext/transport/chttp2/transport/stream_map.h',
                      'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
                      'src/core/ext/transport/chttp2/transport/varint.h',
                      'src/core/ext/transport/chttp2/alpn/alpn.h',
                      'src/core/lib/security/auth_filters.h',
                      'src/core/lib/security/b64.h',
                      'src/core/lib/security/credentials.h',
                      'src/core/lib/security/handshake.h',
                      'src/core/lib/security/json_token.h',
                      'src/core/lib/security/jwt_verifier.h',
                      'src/core/lib/security/secure_endpoint.h',
                      'src/core/lib/security/security_connector.h',
                      'src/core/lib/security/security_context.h',
                      'src/core/lib/tsi/fake_transport_security.h',
                      'src/core/lib/tsi/ssl_transport_security.h',
                      'src/core/lib/tsi/ssl_types.h',
                      'src/core/lib/tsi/transport_security.h',
                      'src/core/lib/tsi/transport_security_interface.h',
                      'src/core/ext/client_config/client_channel.h',
                      'src/core/ext/client_config/client_channel_factory.h',
                      'src/core/ext/client_config/client_config.h',
                      'src/core/ext/client_config/connector.h',
                      'src/core/ext/client_config/initial_connect_string.h',
                      'src/core/ext/client_config/lb_policy.h',
                      'src/core/ext/client_config/lb_policy_factory.h',
                      'src/core/ext/client_config/lb_policy_registry.h',
                      'src/core/ext/client_config/parse_address.h',
                      'src/core/ext/client_config/resolver.h',
                      'src/core/ext/client_config/resolver_factory.h',
                      'src/core/ext/client_config/resolver_registry.h',
                      'src/core/ext/client_config/subchannel.h',
                      'src/core/ext/client_config/subchannel_call_holder.h',
                      'src/core/ext/client_config/subchannel_index.h',
                      'src/core/ext/client_config/uri_parser.h',
                      'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
                      'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
                      'third_party/nanopb/pb.h',
                      'third_party/nanopb/pb_common.h',
                      'third_party/nanopb/pb_decode.h',
                      'third_party/nanopb/pb_encode.h',
                      'src/core/ext/census/aggregation.h',
                      'src/core/ext/census/census_interface.h',
                      'src/core/ext/census/census_rpc_stats.h',
                      'src/core/ext/census/grpc_filter.h',
                      'src/core/ext/census/mlog.h',
                      'src/core/ext/census/rpc_metric_id.h',
                      'include/grpc/byte_buffer.h',
                      'include/grpc/byte_buffer_reader.h',
                      'include/grpc/compression.h',
                      'include/grpc/grpc.h',
                      'include/grpc/status.h',
                      'include/grpc/impl/codegen/byte_buffer.h',
                      'include/grpc/impl/codegen/byte_buffer_reader.h',
                      'include/grpc/impl/codegen/compression_types.h',
                      'include/grpc/impl/codegen/connectivity_state.h',
                      'include/grpc/impl/codegen/grpc_types.h',
                      'include/grpc/impl/codegen/propagation_bits.h',
                      'include/grpc/impl/codegen/status.h',
                      'include/grpc/impl/codegen/alloc.h',
                      'include/grpc/impl/codegen/atm.h',
                      'include/grpc/impl/codegen/atm_gcc_atomic.h',
                      'include/grpc/impl/codegen/atm_gcc_sync.h',
                      'include/grpc/impl/codegen/atm_win32.h',
                      'include/grpc/impl/codegen/log.h',
                      'include/grpc/impl/codegen/port_platform.h',
                      'include/grpc/impl/codegen/slice.h',
                      'include/grpc/impl/codegen/slice_buffer.h',
                      'include/grpc/impl/codegen/sync.h',
                      'include/grpc/impl/codegen/sync_generic.h',
                      'include/grpc/impl/codegen/sync_posix.h',
                      'include/grpc/impl/codegen/sync_win32.h',
                      'include/grpc/impl/codegen/time.h',
                      'include/grpc/grpc_cronet.h',
                      'include/grpc/grpc_security.h',
                      'include/grpc/grpc_security_constants.h',
                      'include/grpc/census.h',
                      'src/core/lib/surface/init.c',
                      'src/core/lib/channel/channel_args.c',
                      'src/core/lib/channel/channel_stack.c',
                      'src/core/lib/channel/channel_stack_builder.c',
                      'src/core/lib/channel/compress_filter.c',
                      'src/core/lib/channel/connected_channel.c',
                      'src/core/lib/channel/http_client_filter.c',
                      'src/core/lib/channel/http_server_filter.c',
                      'src/core/lib/compression/compression_algorithm.c',
                      'src/core/lib/compression/message_compress.c',
                      'src/core/lib/debug/trace.c',
                      'src/core/lib/http/format_request.c',
                      'src/core/lib/http/httpcli.c',
                      'src/core/lib/http/parser.c',
                      'src/core/lib/iomgr/closure.c',
                      'src/core/lib/iomgr/endpoint.c',
                      'src/core/lib/iomgr/endpoint_pair_posix.c',
                      'src/core/lib/iomgr/endpoint_pair_windows.c',
                      'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
                      'src/core/lib/iomgr/ev_poll_posix.c',
                      'src/core/lib/iomgr/ev_posix.c',
                      'src/core/lib/iomgr/exec_ctx.c',
                      'src/core/lib/iomgr/executor.c',
                      'src/core/lib/iomgr/iocp_windows.c',
                      'src/core/lib/iomgr/iomgr.c',
                      'src/core/lib/iomgr/iomgr_posix.c',
                      'src/core/lib/iomgr/iomgr_windows.c',
                      'src/core/lib/iomgr/pollset_set_windows.c',
                      'src/core/lib/iomgr/pollset_windows.c',
                      'src/core/lib/iomgr/resolve_address_posix.c',
                      'src/core/lib/iomgr/resolve_address_windows.c',
                      'src/core/lib/iomgr/sockaddr_utils.c',
                      'src/core/lib/iomgr/socket_utils_common_posix.c',
                      'src/core/lib/iomgr/socket_utils_linux.c',
                      'src/core/lib/iomgr/socket_utils_posix.c',
                      'src/core/lib/iomgr/socket_windows.c',
                      'src/core/lib/iomgr/tcp_client_posix.c',
                      'src/core/lib/iomgr/tcp_client_windows.c',
                      'src/core/lib/iomgr/tcp_posix.c',
                      'src/core/lib/iomgr/tcp_server_posix.c',
                      'src/core/lib/iomgr/tcp_server_windows.c',
                      'src/core/lib/iomgr/tcp_windows.c',
                      'src/core/lib/iomgr/time_averaged_stats.c',
                      'src/core/lib/iomgr/timer.c',
                      'src/core/lib/iomgr/timer_heap.c',
                      'src/core/lib/iomgr/udp_server.c',
                      'src/core/lib/iomgr/unix_sockets_posix.c',
                      'src/core/lib/iomgr/unix_sockets_posix_noop.c',
                      'src/core/lib/iomgr/wakeup_fd_eventfd.c',
                      'src/core/lib/iomgr/wakeup_fd_nospecial.c',
                      'src/core/lib/iomgr/wakeup_fd_pipe.c',
                      'src/core/lib/iomgr/wakeup_fd_posix.c',
                      'src/core/lib/iomgr/workqueue_posix.c',
                      'src/core/lib/iomgr/workqueue_windows.c',
                      'src/core/lib/json/json.c',
                      'src/core/lib/json/json_reader.c',
                      'src/core/lib/json/json_string.c',
                      'src/core/lib/json/json_writer.c',
                      'src/core/lib/surface/alarm.c',
                      'src/core/lib/surface/api_trace.c',
                      'src/core/lib/surface/byte_buffer.c',
                      'src/core/lib/surface/byte_buffer_reader.c',
                      'src/core/lib/surface/call.c',
                      'src/core/lib/surface/call_details.c',
                      'src/core/lib/surface/call_log_batch.c',
                      'src/core/lib/surface/channel.c',
                      'src/core/lib/surface/channel_init.c',
                      'src/core/lib/surface/channel_ping.c',
                      'src/core/lib/surface/channel_stack_type.c',
                      'src/core/lib/surface/completion_queue.c',
                      'src/core/lib/surface/event_string.c',
                      'src/core/lib/surface/lame_client.c',
                      'src/core/lib/surface/metadata_array.c',
                      'src/core/lib/surface/server.c',
                      'src/core/lib/surface/validate_metadata.c',
                      'src/core/lib/surface/version.c',
                      'src/core/lib/transport/byte_stream.c',
                      'src/core/lib/transport/connectivity_state.c',
                      'src/core/lib/transport/metadata.c',
                      'src/core/lib/transport/metadata_batch.c',
                      'src/core/lib/transport/static_metadata.c',
                      'src/core/lib/transport/transport.c',
                      'src/core/lib/transport/transport_op_string.c',
                      'src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c',
                      'src/core/ext/transport/chttp2/transport/bin_encoder.c',
                      'src/core/ext/transport/chttp2/transport/chttp2_plugin.c',
                      'src/core/ext/transport/chttp2/transport/chttp2_transport.c',
                      'src/core/ext/transport/chttp2/transport/frame_data.c',
                      'src/core/ext/transport/chttp2/transport/frame_goaway.c',
                      'src/core/ext/transport/chttp2/transport/frame_ping.c',
                      'src/core/ext/transport/chttp2/transport/frame_rst_stream.c',
                      'src/core/ext/transport/chttp2/transport/frame_settings.c',
                      'src/core/ext/transport/chttp2/transport/frame_window_update.c',
                      'src/core/ext/transport/chttp2/transport/hpack_encoder.c',
                      'src/core/ext/transport/chttp2/transport/hpack_parser.c',
                      'src/core/ext/transport/chttp2/transport/hpack_table.c',
                      'src/core/ext/transport/chttp2/transport/huffsyms.c',
                      'src/core/ext/transport/chttp2/transport/incoming_metadata.c',
                      'src/core/ext/transport/chttp2/transport/parsing.c',
                      'src/core/ext/transport/chttp2/transport/status_conversion.c',
                      'src/core/ext/transport/chttp2/transport/stream_lists.c',
                      'src/core/ext/transport/chttp2/transport/stream_map.c',
                      'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
                      'src/core/ext/transport/chttp2/transport/varint.c',
                      'src/core/ext/transport/chttp2/transport/writing.c',
                      'src/core/ext/transport/chttp2/alpn/alpn.c',
                      'src/core/lib/http/httpcli_security_connector.c',
                      'src/core/lib/security/b64.c',
                      'src/core/lib/security/client_auth_filter.c',
                      'src/core/lib/security/credentials.c',
                      'src/core/lib/security/credentials_metadata.c',
                      'src/core/lib/security/credentials_posix.c',
                      'src/core/lib/security/credentials_win32.c',
                      'src/core/lib/security/google_default_credentials.c',
                      'src/core/lib/security/handshake.c',
                      'src/core/lib/security/json_token.c',
                      'src/core/lib/security/jwt_verifier.c',
                      'src/core/lib/security/secure_endpoint.c',
                      'src/core/lib/security/security_connector.c',
                      'src/core/lib/security/security_context.c',
                      'src/core/lib/security/server_auth_filter.c',
                      'src/core/lib/surface/init_secure.c',
                      'src/core/lib/tsi/fake_transport_security.c',
                      'src/core/lib/tsi/ssl_transport_security.c',
                      'src/core/lib/tsi/transport_security.c',
                      'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
                      'src/core/ext/client_config/channel_connectivity.c',
                      'src/core/ext/client_config/client_channel.c',
                      'src/core/ext/client_config/client_channel_factory.c',
                      'src/core/ext/client_config/client_config.c',
                      'src/core/ext/client_config/client_config_plugin.c',
                      'src/core/ext/client_config/connector.c',
                      'src/core/ext/client_config/default_initial_connect_string.c',
                      'src/core/ext/client_config/initial_connect_string.c',
                      'src/core/ext/client_config/lb_policy.c',
                      'src/core/ext/client_config/lb_policy_factory.c',
                      'src/core/ext/client_config/lb_policy_registry.c',
                      'src/core/ext/client_config/parse_address.c',
                      'src/core/ext/client_config/resolver.c',
                      'src/core/ext/client_config/resolver_factory.c',
                      'src/core/ext/client_config/resolver_registry.c',
                      'src/core/ext/client_config/subchannel.c',
                      'src/core/ext/client_config/subchannel_call_holder.c',
                      'src/core/ext/client_config/subchannel_index.c',
                      'src/core/ext/client_config/uri_parser.c',
                      'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
                      'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
                      'src/core/ext/transport/cronet/client/secure/cronet_channel_create.c',
                      'src/core/ext/transport/cronet/transport/cronet_api_dummy.c',
                      'src/core/ext/transport/cronet/transport/cronet_transport.c',
                      'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
                      'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.c',
                      'third_party/nanopb/pb_common.c',
                      'third_party/nanopb/pb_decode.c',
                      'third_party/nanopb/pb_encode.c',
                      'src/core/ext/lb_policy/pick_first/pick_first.c',
                      'src/core/ext/lb_policy/round_robin/round_robin.c',
                      'src/core/ext/resolver/dns/native/dns_resolver.c',
                      'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
                      'src/core/ext/census/context.c',
                      'src/core/ext/census/grpc_context.c',
                      'src/core/ext/census/grpc_filter.c',
                      'src/core/ext/census/grpc_plugin.c',
                      'src/core/ext/census/initialize.c',
                      'src/core/ext/census/mlog.c',
                      'src/core/ext/census/operation.c',
                      'src/core/ext/census/placeholders.c',
                      'src/core/ext/census/tracing.c',
                      'src/core/plugin_registry/grpc_plugin_registry.c'

    ss.private_header_files = 'src/core/lib/profiling/timers.h',
                              'src/core/lib/support/backoff.h',
                              'src/core/lib/support/block_annotate.h',
                              'src/core/lib/support/env.h',
                              'src/core/lib/support/load_file.h',
                              'src/core/lib/support/murmur_hash.h',
                              'src/core/lib/support/stack_lockfree.h',
                              'src/core/lib/support/string.h',
                              'src/core/lib/support/string_win32.h',
                              'src/core/lib/support/thd_internal.h',
                              'src/core/lib/support/time_precise.h',
                              'src/core/lib/support/tmpfile.h',
                              'src/core/lib/channel/channel_args.h',
                              'src/core/lib/channel/channel_stack.h',
                              'src/core/lib/channel/channel_stack_builder.h',
                              'src/core/lib/channel/compress_filter.h',
                              'src/core/lib/channel/connected_channel.h',
                              'src/core/lib/channel/context.h',
                              'src/core/lib/channel/http_client_filter.h',
                              'src/core/lib/channel/http_server_filter.h',
                              'src/core/lib/compression/algorithm_metadata.h',
                              'src/core/lib/compression/message_compress.h',
                              'src/core/lib/debug/trace.h',
                              'src/core/lib/http/format_request.h',
                              'src/core/lib/http/httpcli.h',
                              'src/core/lib/http/parser.h',
                              'src/core/lib/iomgr/closure.h',
                              'src/core/lib/iomgr/endpoint.h',
                              'src/core/lib/iomgr/endpoint_pair.h',
                              'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
                              'src/core/lib/iomgr/ev_poll_posix.h',
                              'src/core/lib/iomgr/ev_posix.h',
                              'src/core/lib/iomgr/exec_ctx.h',
                              'src/core/lib/iomgr/executor.h',
                              'src/core/lib/iomgr/iocp_windows.h',
                              'src/core/lib/iomgr/iomgr.h',
                              'src/core/lib/iomgr/iomgr_internal.h',
                              'src/core/lib/iomgr/iomgr_posix.h',
                              'src/core/lib/iomgr/pollset.h',
                              'src/core/lib/iomgr/pollset_set.h',
                              'src/core/lib/iomgr/pollset_set_windows.h',
                              'src/core/lib/iomgr/pollset_windows.h',
                              'src/core/lib/iomgr/resolve_address.h',
                              'src/core/lib/iomgr/sockaddr.h',
                              'src/core/lib/iomgr/sockaddr_posix.h',
                              'src/core/lib/iomgr/sockaddr_utils.h',
                              'src/core/lib/iomgr/sockaddr_win32.h',
                              'src/core/lib/iomgr/socket_utils_posix.h',
                              'src/core/lib/iomgr/socket_windows.h',
                              'src/core/lib/iomgr/tcp_client.h',
                              'src/core/lib/iomgr/tcp_posix.h',
                              'src/core/lib/iomgr/tcp_server.h',
                              'src/core/lib/iomgr/tcp_windows.h',
                              'src/core/lib/iomgr/time_averaged_stats.h',
                              'src/core/lib/iomgr/timer.h',
                              'src/core/lib/iomgr/timer_heap.h',
                              'src/core/lib/iomgr/udp_server.h',
                              'src/core/lib/iomgr/unix_sockets_posix.h',
                              'src/core/lib/iomgr/wakeup_fd_pipe.h',
                              'src/core/lib/iomgr/wakeup_fd_posix.h',
                              'src/core/lib/iomgr/workqueue.h',
                              'src/core/lib/iomgr/workqueue_posix.h',
                              'src/core/lib/iomgr/workqueue_windows.h',
                              'src/core/lib/json/json.h',
                              'src/core/lib/json/json_common.h',
                              'src/core/lib/json/json_reader.h',
                              'src/core/lib/json/json_writer.h',
                              'src/core/lib/surface/api_trace.h',
                              'src/core/lib/surface/call.h',
                              'src/core/lib/surface/call_test_only.h',
                              'src/core/lib/surface/channel.h',
                              'src/core/lib/surface/channel_init.h',
                              'src/core/lib/surface/channel_stack_type.h',
                              'src/core/lib/surface/completion_queue.h',
                              'src/core/lib/surface/event_string.h',
                              'src/core/lib/surface/init.h',
                              'src/core/lib/surface/lame_client.h',
                              'src/core/lib/surface/server.h',
                              'src/core/lib/surface/surface_trace.h',
                              'src/core/lib/transport/byte_stream.h',
                              'src/core/lib/transport/connectivity_state.h',
                              'src/core/lib/transport/metadata.h',
                              'src/core/lib/transport/metadata_batch.h',
                              'src/core/lib/transport/static_metadata.h',
                              'src/core/lib/transport/transport.h',
                              'src/core/lib/transport/transport_impl.h',
                              'src/core/ext/transport/chttp2/transport/bin_encoder.h',
                              'src/core/ext/transport/chttp2/transport/chttp2_transport.h',
                              'src/core/ext/transport/chttp2/transport/frame.h',
                              'src/core/ext/transport/chttp2/transport/frame_data.h',
                              'src/core/ext/transport/chttp2/transport/frame_goaway.h',
                              'src/core/ext/transport/chttp2/transport/frame_ping.h',
                              'src/core/ext/transport/chttp2/transport/frame_rst_stream.h',
                              'src/core/ext/transport/chttp2/transport/frame_settings.h',
                              'src/core/ext/transport/chttp2/transport/frame_window_update.h',
                              'src/core/ext/transport/chttp2/transport/hpack_encoder.h',
                              'src/core/ext/transport/chttp2/transport/hpack_parser.h',
                              'src/core/ext/transport/chttp2/transport/hpack_table.h',
                              'src/core/ext/transport/chttp2/transport/http2_errors.h',
                              'src/core/ext/transport/chttp2/transport/huffsyms.h',
                              'src/core/ext/transport/chttp2/transport/incoming_metadata.h',
                              'src/core/ext/transport/chttp2/transport/internal.h',
                              'src/core/ext/transport/chttp2/transport/status_conversion.h',
                              'src/core/ext/transport/chttp2/transport/stream_map.h',
                              'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
                              'src/core/ext/transport/chttp2/transport/varint.h',
                              'src/core/ext/transport/chttp2/alpn/alpn.h',
                              'src/core/lib/security/auth_filters.h',
                              'src/core/lib/security/b64.h',
                              'src/core/lib/security/credentials.h',
                              'src/core/lib/security/handshake.h',
                              'src/core/lib/security/json_token.h',
                              'src/core/lib/security/jwt_verifier.h',
                              'src/core/lib/security/secure_endpoint.h',
                              'src/core/lib/security/security_connector.h',
                              'src/core/lib/security/security_context.h',
                              'src/core/lib/tsi/fake_transport_security.h',
                              'src/core/lib/tsi/ssl_transport_security.h',
                              'src/core/lib/tsi/ssl_types.h',
                              'src/core/lib/tsi/transport_security.h',
                              'src/core/lib/tsi/transport_security_interface.h',
                              'src/core/ext/client_config/client_channel.h',
                              'src/core/ext/client_config/client_channel_factory.h',
                              'src/core/ext/client_config/client_config.h',
                              'src/core/ext/client_config/connector.h',
                              'src/core/ext/client_config/initial_connect_string.h',
                              'src/core/ext/client_config/lb_policy.h',
                              'src/core/ext/client_config/lb_policy_factory.h',
                              'src/core/ext/client_config/lb_policy_registry.h',
                              'src/core/ext/client_config/parse_address.h',
                              'src/core/ext/client_config/resolver.h',
                              'src/core/ext/client_config/resolver_factory.h',
                              'src/core/ext/client_config/resolver_registry.h',
                              'src/core/ext/client_config/subchannel.h',
                              'src/core/ext/client_config/subchannel_call_holder.h',
                              'src/core/ext/client_config/subchannel_index.h',
                              'src/core/ext/client_config/uri_parser.h',
                              'third_party/objective_c/Cronet/cronet_c_for_grpc.h',
                              'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
                              'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v1/load_balancer.pb.h',
                              'third_party/nanopb/pb.h',
                              'third_party/nanopb/pb_common.h',
                              'third_party/nanopb/pb_decode.h',
                              'third_party/nanopb/pb_encode.h',
                              'src/core/ext/census/aggregation.h',
                              'src/core/ext/census/census_interface.h',
                              'src/core/ext/census/census_rpc_stats.h',
                              'src/core/ext/census/grpc_filter.h',
                              'src/core/ext/census/mlog.h',
                              'src/core/ext/census/rpc_metric_id.h'

    ss.header_mappings_dir = '.'
    # This isn't officially supported in Cocoapods. We've asked for an alternative:
    # https://github.com/CocoaPods/CocoaPods/issues/4386
    ss.xcconfig = {
      'USE_HEADERMAP' => 'NO',
      'ALWAYS_SEARCH_USER_PATHS' => 'NO',
      'USER_HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC"',
      'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC/include"'
    }

    ss.requires_arc = false
    ss.libraries = 'z'
    ss.dependency 'BoringSSL', '~> 3.0'

    # ss.compiler_flags = '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w'
  end

  # Objective-C wrapper around the core gRPC library.
  s.subspec 'GRPCClient' do |ss|
    src_dir = "#{objc_dir}/GRPCClient"
    ss.source_files = "#{src_dir}/*.{h,m}", "#{src_dir}/**/*.{h,m}"
    ss.private_header_files = "#{src_dir}/private/*.h"
    ss.header_mappings_dir = "#{objc_dir}"

    ss.dependency 'gRPC/C-Core'
    ss.dependency 'gRPC/RxLibrary'

    # Certificates, to be able to establish TLS connections:
    ss.resource_bundles = { 'gRPCCertificates' => ['etc/roots.pem'] }
  end

  # RPC library for ProtocolBuffers, based on gRPC
  s.subspec 'ProtoRPC' do |ss|
    src_dir = "#{objc_dir}/ProtoRPC"
    ss.source_files = "#{src_dir}/*.{h,m}"
    ss.header_mappings_dir = "#{objc_dir}"

    ss.dependency 'gRPC/GRPCClient'
    ss.dependency 'gRPC/RxLibrary'
    ss.dependency 'Protobuf', '~> 3.0.0-alpha-4'
  end
end