aboutsummaryrefslogtreecommitdiffhomepage
path: root/gRPC.podspec
blob: 562b797eaffac71fcef50a4cb905f6beec130caf (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
Pod::Spec.new do |s|
  s.name     = 'gRPC'
  s.version  = '0.0.1'
  s.summary  = 'Generic gRPC client library for iOS'
  s.homepage = 'https://www.grpc.io'
  s.license  = 'New BSD'
  s.authors  = { 'Jorge Canizales' => 'jcanizales@google.com' }

  # s.source = { :git => 'https://github.com/grpc/grpc.git',  :tag => 'release-0_5_0' }
  s.source_files = 'src/objective-c/GRPCClient/*.{h,m}', 'src/objective-c/GRPCClient/private/*.{h,m}'
  s.private_header_files = 'src/objective-c/GRPCClient/private/*.h'

  s.platform = :ios
  s.ios.deployment_target = '6.0'
  s.requires_arc = true

  s.subspec 'RxLibrary' do |rs|
    rs.summary  = 'Reactive Extensions library for iOS'
    rs.authors  = { 'Jorge Canizales' => 'jcanizales@google.com' }

    rs.source_files = 'src/objective-c/RxLibrary/*.{h,m}', 'src/objective-c/RxLibrary/transformations/*.{h,m}', 'src/objective-c/RxLibrary/private/*.{h,m}'
    rs.private_header_files = 'src/objective-c/RxLibrary/private/*.h'
  end

  s.subspec 'C-Core' do |cs|
    cs.summary  = 'Core gRPC library, written in C'
    cs.authors = { 'Craig Tiller'   => 'ctiller@google.com',
                   'David Klempner' => 'klempner@google.com',
                   'Nicolas Noble'  => 'nnoble@google.com',
                   'Vijay Pai'      => 'vpai@google.com',
                   'Yang Gao'       => 'yangg@google.com' }

    cs.source_files = 'src/core/**/*.{h,c}', 'include/grpc/*.h', 'include/grpc/**/*.h'
    cs.private_header_files = 'src/core/**/*.h'
    cs.header_mappings_dir = '.'
    cs.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Build/gRPC" "$(PODS_ROOT)/Headers/Build/gRPC/include"' }

    cs.requires_arc = false
    cs.libraries = 'z'
    cs.dependency 'OpenSSL', '~> 1.0.200'
  end

  # This is a workaround for Cocoapods Issue #1437.
  # It renames time.h and string.h to grpc_time.h and grpc_string.h.
  s.prepare_command = <<-CMD
    DIR_TIME="grpc/support"
    BAD_TIME="$DIR_TIME/time.h"
    GOOD_TIME="$DIR_TIME/grpc_time.h"
    if [ -f "include/$BAD_TIME" ];
    then
      grep -rl "$BAD_TIME" include/grpc src/core | xargs sed -i '' -e s@$BAD_TIME@$GOOD_TIME@g
      mv "include/$BAD_TIME" "include/$GOOD_TIME"
    fi

    DIR_STRING="src/core/support"
    BAD_STRING="$DIR_STRING/string.h"
    GOOD_STRING="$DIR_STRING/grpc_string.h"
    if [ -f "$BAD_STRING" ];
    then
      grep -rl "$BAD_STRING" include/grpc src/core | xargs sed -i '' -e s@$BAD_STRING@$GOOD_STRING@g
      mv "$BAD_STRING" "$GOOD_STRING"
    fi
  CMD

  s.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/gRPC/include"' }

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