xref: /aosp_15_r20/external/protobuf/Protobuf.podspec (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker# This file describes to Cocoapods how to integrate the Objective-C runtime into a dependent
2*1b3f573fSAndroid Build Coastguard Worker# project.
3*1b3f573fSAndroid Build Coastguard Worker# Despite this file being specific to Objective-C, it needs to be on the root of the repository.
4*1b3f573fSAndroid Build Coastguard Worker# Otherwise, Cocoapods gives trouble like not picking up the license file correctly, or not letting
5*1b3f573fSAndroid Build Coastguard Worker# dependent projects use the :git notation to refer to the library.
6*1b3f573fSAndroid Build Coastguard WorkerPod::Spec.new do |s|
7*1b3f573fSAndroid Build Coastguard Worker  s.name     = 'Protobuf'
8*1b3f573fSAndroid Build Coastguard Worker  s.version  = '3.21.12'
9*1b3f573fSAndroid Build Coastguard Worker  s.summary  = 'Protocol Buffers v.3 runtime library for Objective-C.'
10*1b3f573fSAndroid Build Coastguard Worker  s.homepage = 'https://github.com/protocolbuffers/protobuf'
11*1b3f573fSAndroid Build Coastguard Worker  s.license  = 'BSD-3-Clause'
12*1b3f573fSAndroid Build Coastguard Worker  s.authors  = { 'The Protocol Buffers contributors' => '[email protected]' }
13*1b3f573fSAndroid Build Coastguard Worker  s.cocoapods_version = '>= 1.0'
14*1b3f573fSAndroid Build Coastguard Worker
15*1b3f573fSAndroid Build Coastguard Worker  s.source = { :git => 'https://github.com/protocolbuffers/protobuf.git',
16*1b3f573fSAndroid Build Coastguard Worker               :tag => "v#{s.version}" }
17*1b3f573fSAndroid Build Coastguard Worker
18*1b3f573fSAndroid Build Coastguard Worker  s.source_files = 'objectivec/*.{h,m}',
19*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Any.pbobjc.h',
20*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Api.pbobjc.h',
21*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Duration.pbobjc.h',
22*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Empty.pbobjc.h',
23*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/FieldMask.pbobjc.h',
24*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/SourceContext.pbobjc.h',
25*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Struct.pbobjc.h',
26*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Timestamp.pbobjc.h',
27*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Type.pbobjc.h',
28*1b3f573fSAndroid Build Coastguard Worker                   'objectivec/google/protobuf/Wrappers.pbobjc.h'
29*1b3f573fSAndroid Build Coastguard Worker  # The following would cause duplicate symbol definitions. GPBProtocolBuffers is expected to be
30*1b3f573fSAndroid Build Coastguard Worker  # left out, as it's an umbrella implementation file.
31*1b3f573fSAndroid Build Coastguard Worker  s.exclude_files = 'objectivec/GPBProtocolBuffers.m'
32*1b3f573fSAndroid Build Coastguard Worker
33*1b3f573fSAndroid Build Coastguard Worker  # Set a CPP symbol so the code knows to use framework imports.
34*1b3f573fSAndroid Build Coastguard Worker  s.user_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' }
35*1b3f573fSAndroid Build Coastguard Worker  s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' }
36*1b3f573fSAndroid Build Coastguard Worker
37*1b3f573fSAndroid Build Coastguard Worker  s.ios.deployment_target = '9.0'
38*1b3f573fSAndroid Build Coastguard Worker  s.osx.deployment_target = '10.9'
39*1b3f573fSAndroid Build Coastguard Worker  s.tvos.deployment_target = '9.0'
40*1b3f573fSAndroid Build Coastguard Worker  s.watchos.deployment_target = '2.0'
41*1b3f573fSAndroid Build Coastguard Worker  s.requires_arc = false
42*1b3f573fSAndroid Build Coastguard Worker
43*1b3f573fSAndroid Build Coastguard Worker  # The unittest need the generate sources from the testing related .proto
44*1b3f573fSAndroid Build Coastguard Worker  # files. So to add a `test_spec`, there would also need to be something like a
45*1b3f573fSAndroid Build Coastguard Worker  # `script_phases` to generate them, but there would also need to be a way to
46*1b3f573fSAndroid Build Coastguard Worker  # ensure `protoc` had be built. Another option would be to move to a model
47*1b3f573fSAndroid Build Coastguard Worker  # where the needed files are always generated and checked in. Neither of these
48*1b3f573fSAndroid Build Coastguard Worker  # seem that great at the moment, so the tests have *not* been wired into here
49*1b3f573fSAndroid Build Coastguard Worker  # at this time.
50*1b3f573fSAndroid Build Coastguard Workerend
51