xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/examples/RemoteTestClient/RemoteTest.podspec (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard WorkerPod::Spec.new do |s|
2*cc02d7e2SAndroid Build Coastguard Worker  s.name     = 'RemoteTest'
3*cc02d7e2SAndroid Build Coastguard Worker  s.version  = '0.0.1'
4*cc02d7e2SAndroid Build Coastguard Worker  s.license  = 'Apache License, Version 2.0'
5*cc02d7e2SAndroid Build Coastguard Worker  s.authors  = { 'gRPC contributors' => '[email protected]' }
6*cc02d7e2SAndroid Build Coastguard Worker  s.homepage = 'https://grpc.io/'
7*cc02d7e2SAndroid Build Coastguard Worker  s.summary = 'RemoteTest example'
8*cc02d7e2SAndroid Build Coastguard Worker  s.source = { :git => 'https://github.com/grpc/grpc.git' }
9*cc02d7e2SAndroid Build Coastguard Worker
10*cc02d7e2SAndroid Build Coastguard Worker  s.ios.deployment_target = '10.0'
11*cc02d7e2SAndroid Build Coastguard Worker  s.osx.deployment_target = '10.12'
12*cc02d7e2SAndroid Build Coastguard Worker  s.tvos.deployment_target = '12.0'
13*cc02d7e2SAndroid Build Coastguard Worker  s.watchos.deployment_target = '6.0'
14*cc02d7e2SAndroid Build Coastguard Worker
15*cc02d7e2SAndroid Build Coastguard Worker  # Run protoc with the Objective-C and gRPC plugins to generate protocol messages and gRPC clients.
16*cc02d7e2SAndroid Build Coastguard Worker  s.dependency "!ProtoCompiler-gRPCPlugin"
17*cc02d7e2SAndroid Build Coastguard Worker
18*cc02d7e2SAndroid Build Coastguard Worker  repo_root = '../../../..'
19*cc02d7e2SAndroid Build Coastguard Worker  bazel_exec_root = "#{repo_root}/bazel-bin"
20*cc02d7e2SAndroid Build Coastguard Worker
21*cc02d7e2SAndroid Build Coastguard Worker  protoc = "#{bazel_exec_root}/external/com_google_protobuf/protoc"
22*cc02d7e2SAndroid Build Coastguard Worker  well_known_types_dir = "#{repo_root}/third_party/protobuf/src"
23*cc02d7e2SAndroid Build Coastguard Worker  plugin = "#{bazel_exec_root}/src/compiler/grpc_objective_c_plugin"
24*cc02d7e2SAndroid Build Coastguard Worker
25*cc02d7e2SAndroid Build Coastguard Worker  # Since we switched to importing full path, -I needs to be set to the directory
26*cc02d7e2SAndroid Build Coastguard Worker  # from which the imported file can be found, which is the grpc's root here
27*cc02d7e2SAndroid Build Coastguard Worker  s.prepare_command = <<-CMD
28*cc02d7e2SAndroid Build Coastguard Worker    #{protoc} \
29*cc02d7e2SAndroid Build Coastguard Worker        --plugin=protoc-gen-grpc=#{plugin} \
30*cc02d7e2SAndroid Build Coastguard Worker        --objc_out=. \
31*cc02d7e2SAndroid Build Coastguard Worker        --grpc_out=. \
32*cc02d7e2SAndroid Build Coastguard Worker        -I #{repo_root} \
33*cc02d7e2SAndroid Build Coastguard Worker        -I #{well_known_types_dir} \
34*cc02d7e2SAndroid Build Coastguard Worker        #{repo_root}/src/objective-c/examples/RemoteTestClient/*.proto
35*cc02d7e2SAndroid Build Coastguard Worker  CMD
36*cc02d7e2SAndroid Build Coastguard Worker
37*cc02d7e2SAndroid Build Coastguard Worker  s.subspec 'Messages' do |ms|
38*cc02d7e2SAndroid Build Coastguard Worker    ms.source_files = 'src/objective-c/examples/RemoteTestClient/*.pbobjc.{h,m}'
39*cc02d7e2SAndroid Build Coastguard Worker    ms.header_mappings_dir = '.'
40*cc02d7e2SAndroid Build Coastguard Worker    ms.requires_arc = false
41*cc02d7e2SAndroid Build Coastguard Worker    ms.dependency 'Protobuf'
42*cc02d7e2SAndroid Build Coastguard Worker  end
43*cc02d7e2SAndroid Build Coastguard Worker
44*cc02d7e2SAndroid Build Coastguard Worker  s.subspec 'Services' do |ss|
45*cc02d7e2SAndroid Build Coastguard Worker    ss.source_files = 'src/objective-c/examples/RemoteTestClient/*.pbrpc.{h,m}'
46*cc02d7e2SAndroid Build Coastguard Worker    ss.header_mappings_dir = '.'
47*cc02d7e2SAndroid Build Coastguard Worker    ss.requires_arc = true
48*cc02d7e2SAndroid Build Coastguard Worker    ss.dependency 'gRPC-ProtoRPC'
49*cc02d7e2SAndroid Build Coastguard Worker    ss.dependency "#{s.name}/Messages"
50*cc02d7e2SAndroid Build Coastguard Worker  end
51*cc02d7e2SAndroid Build Coastguard Worker
52*cc02d7e2SAndroid Build Coastguard Worker  s.pod_target_xcconfig = {
53*cc02d7e2SAndroid Build Coastguard Worker    # This is needed by all pods that depend on Protobuf:
54*cc02d7e2SAndroid Build Coastguard Worker    'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1',
55*cc02d7e2SAndroid Build Coastguard Worker    # This is needed by all pods that depend on gRPC-RxLibrary:
56*cc02d7e2SAndroid Build Coastguard Worker    'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
57*cc02d7e2SAndroid Build Coastguard Worker  }
58*cc02d7e2SAndroid Build Coastguard Worker
59*cc02d7e2SAndroid Build Coastguard Workerend
60