Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 1 | Pod::Spec.new do |s| |
| 2 | s.name = 'gRPC' |
Jorge Canizales | cbf50c8 | 2015-06-13 01:34:44 -0700 | [diff] [blame^] | 3 | s.version = '0.6.0' |
Jorge Canizales | 043dc72 | 2015-06-02 15:15:07 -0700 | [diff] [blame] | 4 | s.summary = 'gRPC client library for iOS/OSX' |
| 5 | s.homepage = 'http://www.grpc.io' |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 6 | s.license = 'New BSD' |
Jorge Canizales | 043dc72 | 2015-06-02 15:15:07 -0700 | [diff] [blame] | 7 | s.authors = { 'The gRPC contributors' => 'grpc-packages@google.com' } |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 8 | |
Jorge Canizales | 043dc72 | 2015-06-02 15:15:07 -0700 | [diff] [blame] | 9 | # s.source = { :git => 'https://github.com/grpc/grpc.git', |
| 10 | # :tag => 'release-0_9_1-objectivec-0.5.1' } |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 11 | |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 12 | s.ios.deployment_target = '6.0' |
Vince Gatto | 167b972 | 2015-05-12 15:33:49 -0700 | [diff] [blame] | 13 | s.osx.deployment_target = '10.8' |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 14 | s.requires_arc = true |
| 15 | |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 16 | # Reactive Extensions library for iOS. |
Jorge Canizales | 045fabb | 2015-04-21 11:39:37 -0700 | [diff] [blame] | 17 | s.subspec 'RxLibrary' do |rs| |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 18 | rs.source_files = 'src/objective-c/RxLibrary/*.{h,m}', |
| 19 | 'src/objective-c/RxLibrary/transformations/*.{h,m}', |
| 20 | 'src/objective-c/RxLibrary/private/*.{h,m}' |
Jorge Canizales | 045fabb | 2015-04-21 11:39:37 -0700 | [diff] [blame] | 21 | rs.private_header_files = 'src/objective-c/RxLibrary/private/*.h' |
| 22 | end |
| 23 | |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 24 | # Core cross-platform gRPC library, written in C. |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 25 | s.subspec 'C-Core' do |cs| |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 26 | cs.source_files = 'src/core/**/*.{h,c}', 'include/grpc/*.h', 'include/grpc/**/*.h' |
| 27 | cs.private_header_files = 'src/core/**/*.h' |
| 28 | cs.header_mappings_dir = '.' |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 29 | # The core library includes its headers as either "src/core/..." or "grpc/...", meaning we have |
| 30 | # to tell XCode to look for headers under the "include" subdirectory too. |
| 31 | # |
| 32 | # TODO(jcanizales): Instead of doing this, during installation move everything under |
| 33 | # "include/grpc" one directory up. The directory names under PODS_ROOT are implementation |
| 34 | # details of Cocoapods, and have changed in the past, breaking this podspec. |
| 35 | cs.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Private/gRPC" ' + |
| 36 | '"$(PODS_ROOT)/Headers/Private/gRPC/include"' } |
Jorge Canizales | 043dc72 | 2015-06-02 15:15:07 -0700 | [diff] [blame] | 37 | cs.compiler_flags = '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w' |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 38 | |
| 39 | cs.requires_arc = false |
| 40 | cs.libraries = 'z' |
| 41 | cs.dependency 'OpenSSL', '~> 1.0.200' |
| 42 | end |
| 43 | |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 44 | # This is a workaround for Cocoapods Issue #1437. |
| 45 | # It renames time.h and string.h to grpc_time.h and grpc_string.h. |
| 46 | # It needs to be here (top-level) instead of in the C-Core subspec because Cocoapods doesn't run |
| 47 | # prepare_command's of subspecs. |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 48 | # |
| 49 | # TODO(jcanizales): Try out Todd Reed's solution at Issue #1437. |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 50 | s.prepare_command = <<-CMD |
| 51 | DIR_TIME="grpc/support" |
| 52 | BAD_TIME="$DIR_TIME/time.h" |
| 53 | GOOD_TIME="$DIR_TIME/grpc_time.h" |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 54 | grep -rl "$BAD_TIME" include/grpc src/core | xargs sed -i '' -e s@$BAD_TIME@$GOOD_TIME@g |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 55 | if [ -f "include/$BAD_TIME" ]; |
| 56 | then |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 57 | mv -f "include/$BAD_TIME" "include/$GOOD_TIME" |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 58 | fi |
| 59 | |
| 60 | DIR_STRING="src/core/support" |
| 61 | BAD_STRING="$DIR_STRING/string.h" |
| 62 | GOOD_STRING="$DIR_STRING/grpc_string.h" |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 63 | grep -rl "$BAD_STRING" include/grpc src/core | xargs sed -i '' -e s@$BAD_STRING@$GOOD_STRING@g |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 64 | if [ -f "$BAD_STRING" ]; |
| 65 | then |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 66 | mv -f "$BAD_STRING" "$GOOD_STRING" |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 67 | fi |
| 68 | CMD |
| 69 | |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 70 | # Objective-C wrapper around the core gRPC library. |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 71 | s.subspec 'GRPCClient' do |gs| |
Jorge Canizales | 146f177 | 2015-04-27 23:59:22 -0700 | [diff] [blame] | 72 | gs.source_files = 'src/objective-c/GRPCClient/*.{h,m}', |
| 73 | 'src/objective-c/GRPCClient/private/*.{h,m}' |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 74 | gs.private_header_files = 'src/objective-c/GRPCClient/private/*.h' |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 75 | gs.compiler_flags = '-GCC_WARN_INHIBIT_ALL_WARNINGS', '-w' |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 76 | |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 77 | gs.dependency 'gRPC/C-Core' |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 78 | # TODO(jcanizales): Remove this when the prepare_command moves everything under "include/grpc" |
| 79 | # one directory up. |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 80 | gs.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/Headers/Public/gRPC/include"' } |
| 81 | gs.dependency 'gRPC/RxLibrary' |
Jorge Canizales | ba37a3e | 2015-03-23 15:34:58 -0700 | [diff] [blame] | 82 | |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 83 | # Certificates, to be able to establish TLS connections: |
| 84 | gs.resource_bundles = { 'gRPC' => ['etc/roots.pem'] } |
| 85 | end |
| 86 | |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 87 | # RPC library for ProtocolBuffers, based on gRPC |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 88 | s.subspec 'ProtoRPC' do |ps| |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 89 | ps.source_files = 'src/objective-c/ProtoRPC/*.{h,m}' |
| 90 | |
| 91 | ps.dependency 'gRPC/GRPCClient' |
| 92 | ps.dependency 'gRPC/RxLibrary' |
Jorge Canizales | 461b094 | 2015-06-02 20:40:50 -0700 | [diff] [blame] | 93 | ps.dependency 'Protobuf', '~> 3.0.0-alpha-3' |
Jorge Canizales | 8957cae | 2015-04-22 23:40:18 -0700 | [diff] [blame] | 94 | end |
Jorge Canizales | c2d7ecb | 2015-02-27 01:22:41 -0800 | [diff] [blame] | 95 | end |