xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/tests/Podfile (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Workersource 'https://github.com/CocoaPods/Specs.git'
2*cc02d7e2SAndroid Build Coastguard Worker
3*cc02d7e2SAndroid Build Coastguard Workerinstall! 'cocoapods', :deterministic_uuids => false
4*cc02d7e2SAndroid Build Coastguard Worker
5*cc02d7e2SAndroid Build Coastguard Worker# Location of gRPC's repo root relative to this file.
6*cc02d7e2SAndroid Build Coastguard WorkerGRPC_LOCAL_SRC = '../../..'
7*cc02d7e2SAndroid Build Coastguard Worker
8*cc02d7e2SAndroid Build Coastguard Workerdef grpc_deps
9*cc02d7e2SAndroid Build Coastguard Worker  pod 'Protobuf', :path => "#{GRPC_LOCAL_SRC}/third_party/protobuf", :inhibit_warnings => true
10*cc02d7e2SAndroid Build Coastguard Worker
11*cc02d7e2SAndroid Build Coastguard Worker  pod '!ProtoCompiler',            :path => "#{GRPC_LOCAL_SRC}/src/objective-c"
12*cc02d7e2SAndroid Build Coastguard Worker  pod '!ProtoCompiler-gRPCPlugin', :path => "#{GRPC_LOCAL_SRC}/src/objective-c"
13*cc02d7e2SAndroid Build Coastguard Worker
14*cc02d7e2SAndroid Build Coastguard Worker  pod 'BoringSSL-GRPC',       :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c", :inhibit_warnings => true
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC/InternalTesting',           :path => GRPC_LOCAL_SRC
17*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC-Core',                      :path => GRPC_LOCAL_SRC, :inhibit_warnings => true
18*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC-RxLibrary',                 :path => GRPC_LOCAL_SRC
19*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC-ProtoRPC',                  :path => GRPC_LOCAL_SRC, :inhibit_warnings => true
20*cc02d7e2SAndroid Build Coastguard Worker  pod 'RemoteTest', :path => "RemoteTestClient", :inhibit_warnings => true
21*cc02d7e2SAndroid Build Coastguard Worker  pod 'Common', :path => "Common"
22*cc02d7e2SAndroid Build Coastguard Workerend
23*cc02d7e2SAndroid Build Coastguard Worker
24*cc02d7e2SAndroid Build Coastguard Workertarget 'TvTests' do
25*cc02d7e2SAndroid Build Coastguard Worker  platform :tvos, '10.0'
26*cc02d7e2SAndroid Build Coastguard Worker  grpc_deps
27*cc02d7e2SAndroid Build Coastguard Workerend
28*cc02d7e2SAndroid Build Coastguard Worker
29*cc02d7e2SAndroid Build Coastguard Workertarget 'MacTests' do
30*cc02d7e2SAndroid Build Coastguard Worker  platform :osx, '10.12'
31*cc02d7e2SAndroid Build Coastguard Worker  grpc_deps
32*cc02d7e2SAndroid Build Coastguard Workerend
33*cc02d7e2SAndroid Build Coastguard Worker
34*cc02d7e2SAndroid Build Coastguard Worker%w(
35*cc02d7e2SAndroid Build Coastguard Worker  UnitTests
36*cc02d7e2SAndroid Build Coastguard Worker  InteropTests
37*cc02d7e2SAndroid Build Coastguard Worker).each do |target_name|
38*cc02d7e2SAndroid Build Coastguard Worker  target target_name do
39*cc02d7e2SAndroid Build Coastguard Worker    platform :ios, '10.0'
40*cc02d7e2SAndroid Build Coastguard Worker    grpc_deps
41*cc02d7e2SAndroid Build Coastguard Worker  end
42*cc02d7e2SAndroid Build Coastguard Workerend
43*cc02d7e2SAndroid Build Coastguard Worker
44*cc02d7e2SAndroid Build Coastguard Workertarget 'CronetTests' do
45*cc02d7e2SAndroid Build Coastguard Worker  platform :ios, '10.0'
46*cc02d7e2SAndroid Build Coastguard Worker  grpc_deps
47*cc02d7e2SAndroid Build Coastguard Worker
48*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC/GRPCCoreCronet',           :path => GRPC_LOCAL_SRC
49*cc02d7e2SAndroid Build Coastguard Worker  pod 'CronetFramework', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
50*cc02d7e2SAndroid Build Coastguard Workerend
51*cc02d7e2SAndroid Build Coastguard Worker
52*cc02d7e2SAndroid Build Coastguard Workertarget 'PerfTests' do
53*cc02d7e2SAndroid Build Coastguard Worker  platform :ios, '10.0'
54*cc02d7e2SAndroid Build Coastguard Worker  grpc_deps
55*cc02d7e2SAndroid Build Coastguard Worker
56*cc02d7e2SAndroid Build Coastguard Worker  pod 'gRPC/GRPCCoreCronet',           :path => GRPC_LOCAL_SRC
57*cc02d7e2SAndroid Build Coastguard Worker  pod 'CronetFramework', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
58*cc02d7e2SAndroid Build Coastguard Workerend
59*cc02d7e2SAndroid Build Coastguard Worker
60*cc02d7e2SAndroid Build Coastguard Workerpost_install do |installer|
61*cc02d7e2SAndroid Build Coastguard Worker  installer.pods_project.targets.each do |target|
62*cc02d7e2SAndroid Build Coastguard Worker    target.build_configurations.each do |config|
63*cc02d7e2SAndroid Build Coastguard Worker      config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES'
64*cc02d7e2SAndroid Build Coastguard Worker      if config.name == 'Test'
65*cc02d7e2SAndroid Build Coastguard Worker        config.build_settings['GCC_OPTIMIZATION_LEVEL'] = '0'
66*cc02d7e2SAndroid Build Coastguard Worker        config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone'
67*cc02d7e2SAndroid Build Coastguard Worker      end
68*cc02d7e2SAndroid Build Coastguard Worker    end
69*cc02d7e2SAndroid Build Coastguard Worker
70*cc02d7e2SAndroid Build Coastguard Worker    # CocoaPods creates duplicated library targets of gRPC-Core when the test targets include
71*cc02d7e2SAndroid Build Coastguard Worker    # non-default subspecs of gRPC-Core. All of these library targets start with prefix 'gRPC-Core'
72*cc02d7e2SAndroid Build Coastguard Worker    # and require the same error suppresion.
73*cc02d7e2SAndroid Build Coastguard Worker    if target.name.start_with?('gRPC-Core')
74*cc02d7e2SAndroid Build Coastguard Worker      target.build_configurations.each do |config|
75*cc02d7e2SAndroid Build Coastguard Worker        # TODO(zyc): Remove this setting after the issue is resolved
76*cc02d7e2SAndroid Build Coastguard Worker        # GPR_UNREACHABLE_CODE causes "Control may reach end of non-void
77*cc02d7e2SAndroid Build Coastguard Worker        # function" warning
78*cc02d7e2SAndroid Build Coastguard Worker        config.build_settings['GCC_WARN_ABOUT_RETURN_TYPE'] = 'NO'
79*cc02d7e2SAndroid Build Coastguard Worker        # Abseil isn't free from the following warning
80*cc02d7e2SAndroid Build Coastguard Worker        config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'NO'
81*cc02d7e2SAndroid Build Coastguard Worker        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = '$(inherited) COCOAPODS=1 GRPC_CRONET_WITH_PACKET_COALESCING=1 GRPC_CFSTREAM=1'
82*cc02d7e2SAndroid Build Coastguard Worker      end
83*cc02d7e2SAndroid Build Coastguard Worker    end
84*cc02d7e2SAndroid Build Coastguard Worker
85*cc02d7e2SAndroid Build Coastguard Worker    # Activate Cronet for the dedicated build configuration 'Cronet', which will be used solely by
86*cc02d7e2SAndroid Build Coastguard Worker    # the test target 'InteropTestsRemoteWithCronet'
87*cc02d7e2SAndroid Build Coastguard Worker    # Activate GRPCCall+InternalTests functions for the dedicated build configuration 'Test', which will
88*cc02d7e2SAndroid Build Coastguard Worker    # be used by all test targets using it.
89*cc02d7e2SAndroid Build Coastguard Worker    if /gRPC(-macOS|-iOS|-tvOS|\.|-[0-9a-f])/.match(target.name)
90*cc02d7e2SAndroid Build Coastguard Worker      target.build_configurations.each do |config|
91*cc02d7e2SAndroid Build Coastguard Worker        if config.name == 'Cronet'
92*cc02d7e2SAndroid Build Coastguard Worker          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = '$(inherited) COCOAPODS=1 GRPC_COMPILE_WITH_CRONET=1 GRPC_TEST_OBJC=1'
93*cc02d7e2SAndroid Build Coastguard Worker        elsif config.name == 'Test'
94*cc02d7e2SAndroid Build Coastguard Worker          config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = '$(inherited) COCOAPODS=1 GRPC_TEST_OBJC=1'
95*cc02d7e2SAndroid Build Coastguard Worker        end
96*cc02d7e2SAndroid Build Coastguard Worker      end
97*cc02d7e2SAndroid Build Coastguard Worker    end
98*cc02d7e2SAndroid Build Coastguard Worker
99*cc02d7e2SAndroid Build Coastguard Worker    # Enable NSAssert on gRPC
100*cc02d7e2SAndroid Build Coastguard Worker    if /(gRPC|ProtoRPC|RxLibrary)/.match(target.name)
101*cc02d7e2SAndroid Build Coastguard Worker      target.build_configurations.each do |config|
102*cc02d7e2SAndroid Build Coastguard Worker        if config.name != 'Release'
103*cc02d7e2SAndroid Build Coastguard Worker          config.build_settings['ENABLE_NS_ASSERTIONS'] = 'YES'
104*cc02d7e2SAndroid Build Coastguard Worker        end
105*cc02d7e2SAndroid Build Coastguard Worker      end
106*cc02d7e2SAndroid Build Coastguard Worker    end
107*cc02d7e2SAndroid Build Coastguard Worker  end
108*cc02d7e2SAndroid Build Coastguard Workerend
109