Jorge Canizales | 249483e | 2015-06-01 19:55:27 -0700 | [diff] [blame] | 1 | # This file describes to Cocoapods how to integrate the Objective-C runtime into a dependent |
| 2 | # project. |
| 3 | # Despite this file being specific to Objective-C, it needs to be on the root of the repository. |
| 4 | # Otherwise, Cocoapods gives trouble like not picking up the license file correctly, or not letting |
| 5 | # dependent projects use the :git notation to refer to the library. |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 6 | Pod::Spec.new do |s| |
| 7 | s.name = 'Protobuf' |
deannagarcia | 92db7e2 | 2025-02-06 09:35:19 -0800 | [diff] [blame] | 8 | s.version = '4.31.0' |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 9 | s.summary = 'Protocol Buffers v.3 runtime library for Objective-C.' |
Feng Xiao | afe98de | 2018-08-22 11:55:30 -0700 | [diff] [blame] | 10 | s.homepage = 'https://github.com/protocolbuffers/protobuf' |
Maximilian | 82372d8 | 2022-01-27 01:23:14 +0100 | [diff] [blame] | 11 | s.license = 'BSD-3-Clause' |
Jorge Canizales | 592c44f | 2015-05-14 14:16:40 -0700 | [diff] [blame] | 12 | s.authors = { 'The Protocol Buffers contributors' => 'protobuf@googlegroups.com' } |
Thomas Van Lenten | 0d91515 | 2024-01-29 10:41:19 -0800 | [diff] [blame] | 13 | |
| 14 | # Ensure developers won't hit CocoaPods/CocoaPods#11402 with the resource |
| 15 | # bundle for the privacy manifest. |
| 16 | s.cocoapods_version = '>= 1.12.0' |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 17 | |
Feng Xiao | afe98de | 2018-08-22 11:55:30 -0700 | [diff] [blame] | 18 | s.source = { :git => 'https://github.com/protocolbuffers/protobuf.git', |
Deanna Garcia | 942cec0 | 2022-05-20 21:43:48 +0000 | [diff] [blame] | 19 | :tag => "v#{s.version}" } |
Jorge Canizales | f492dd8 | 2016-02-10 19:19:17 -0800 | [diff] [blame] | 20 | |
Thomas Van Lenten | d9caebc | 2024-10-10 14:32:22 -0700 | [diff] [blame] | 21 | s.source_files = 'objectivec/*.{h,m,swift}' |
TeBoring | fe98264 | 2015-08-26 23:55:33 -0700 | [diff] [blame] | 22 | # The following would cause duplicate symbol definitions. GPBProtocolBuffers is expected to be |
| 23 | # left out, as it's an umbrella implementation file. |
| 24 | s.exclude_files = 'objectivec/GPBProtocolBuffers.m' |
Thomas Van Lenten | 7da023b | 2016-05-09 13:53:20 -0400 | [diff] [blame] | 25 | |
Thomas Van Lenten | 6750ed8 | 2024-07-03 08:54:56 -0700 | [diff] [blame] | 26 | # Now that there is a Swift source file, set a version. |
| 27 | s.swift_version = '5.0' |
| 28 | |
Thomas Van Lenten | 0d91515 | 2024-01-29 10:41:19 -0800 | [diff] [blame] | 29 | s.resource_bundle = { |
| 30 | "Protobuf_Privacy" => "PrivacyInfo.xcprivacy" |
| 31 | } |
| 32 | |
Thomas Van Lenten | 7da023b | 2016-05-09 13:53:20 -0400 | [diff] [blame] | 33 | # Set a CPP symbol so the code knows to use framework imports. |
| 34 | s.user_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' } |
| 35 | s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' } |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 36 | |
Sandy Zhang | 9f1b38e | 2024-10-22 12:54:46 -0700 | [diff] [blame] | 37 | s.ios.deployment_target = '15.0' |
| 38 | s.osx.deployment_target = '11.0' |
| 39 | # The following are best-effort / community supported, and are not covered by |
| 40 | # our official support policies: https://protobuf.dev/support/version-support/ |
Thomas Van Lenten | a6f9ec8 | 2022-09-23 15:35:39 -0400 | [diff] [blame] | 41 | s.tvos.deployment_target = '12.0' |
| 42 | s.watchos.deployment_target = '6.0' |
YoloMao | 8afaae5 | 2024-02-22 19:23:32 -0800 | [diff] [blame] | 43 | s.visionos.deployment_target = '1.0' |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 44 | s.requires_arc = false |
Thomas Van Lenten | 35fcbfd | 2022-04-26 12:43:54 -0400 | [diff] [blame] | 45 | |
| 46 | # The unittest need the generate sources from the testing related .proto |
| 47 | # files. So to add a `test_spec`, there would also need to be something like a |
| 48 | # `script_phases` to generate them, but there would also need to be a way to |
| 49 | # ensure `protoc` had be built. Another option would be to move to a model |
| 50 | # where the needed files are always generated and checked in. Neither of these |
| 51 | # seem that great at the moment, so the tests have *not* been wired into here |
| 52 | # at this time. |
Jorge Canizales | 687a5fe | 2015-05-13 19:54:55 -0700 | [diff] [blame] | 53 | end |