xref: /aosp_15_r20/external/grpc-grpc/src/objective-c/!ProtoCompiler.podspec (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker# Proto Compiler CocoaPods podspec
2*cc02d7e2SAndroid Build Coastguard Worker
3*cc02d7e2SAndroid Build Coastguard Worker# Copyright 2016, Google Inc.
4*cc02d7e2SAndroid Build Coastguard Worker# All rights reserved.
5*cc02d7e2SAndroid Build Coastguard Worker#
6*cc02d7e2SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without
7*cc02d7e2SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are
8*cc02d7e2SAndroid Build Coastguard Worker# met:
9*cc02d7e2SAndroid Build Coastguard Worker#
10*cc02d7e2SAndroid Build Coastguard Worker#     * Redistributions of source code must retain the above copyright
11*cc02d7e2SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer.
12*cc02d7e2SAndroid Build Coastguard Worker#     * Redistributions in binary form must reproduce the above
13*cc02d7e2SAndroid Build Coastguard Worker# copyright notice, this list of conditions and the following disclaimer
14*cc02d7e2SAndroid Build Coastguard Worker# in the documentation and/or other materials provided with the
15*cc02d7e2SAndroid Build Coastguard Worker# distribution.
16*cc02d7e2SAndroid Build Coastguard Worker#     * Neither the name of Google Inc. nor the names of its
17*cc02d7e2SAndroid Build Coastguard Worker# contributors may be used to endorse or promote products derived from
18*cc02d7e2SAndroid Build Coastguard Worker# this software without specific prior written permission.
19*cc02d7e2SAndroid Build Coastguard Worker#
20*cc02d7e2SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21*cc02d7e2SAndroid Build Coastguard Worker# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22*cc02d7e2SAndroid Build Coastguard Worker# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23*cc02d7e2SAndroid Build Coastguard Worker# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24*cc02d7e2SAndroid Build Coastguard Worker# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25*cc02d7e2SAndroid Build Coastguard Worker# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26*cc02d7e2SAndroid Build Coastguard Worker# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27*cc02d7e2SAndroid Build Coastguard Worker# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28*cc02d7e2SAndroid Build Coastguard Worker# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29*cc02d7e2SAndroid Build Coastguard Worker# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30*cc02d7e2SAndroid Build Coastguard Worker# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*cc02d7e2SAndroid Build Coastguard Worker
32*cc02d7e2SAndroid Build Coastguard WorkerPod::Spec.new do |s|
33*cc02d7e2SAndroid Build Coastguard Worker  # This pod is only a utility that will be used by other pods _at install time_ (not at compile
34*cc02d7e2SAndroid Build Coastguard Worker  # time). Other pods can access it in their `prepare_command` script, under <pods_root>/<pod name>.
35*cc02d7e2SAndroid Build Coastguard Worker  # Because CocoaPods installs pods in alphabetical order, beginning this pod's name with an
36*cc02d7e2SAndroid Build Coastguard Worker  # exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
37*cc02d7e2SAndroid Build Coastguard Worker  # before them.
38*cc02d7e2SAndroid Build Coastguard Worker  s.name     = '!ProtoCompiler'
39*cc02d7e2SAndroid Build Coastguard Worker  v = '3.26.1'
40*cc02d7e2SAndroid Build Coastguard Worker  s.version  = v
41*cc02d7e2SAndroid Build Coastguard Worker  s.summary  = 'The Protobuf Compiler (protoc) generates Objective-C files from .proto files'
42*cc02d7e2SAndroid Build Coastguard Worker  s.description = <<-DESC
43*cc02d7e2SAndroid Build Coastguard Worker    This podspec only downloads protoc so that local pods generating protos can execute it as part
44*cc02d7e2SAndroid Build Coastguard Worker    of their prepare_command.
45*cc02d7e2SAndroid Build Coastguard Worker    The generated code will have a dependency on the Protobuf Objective-C runtime of the same
46*cc02d7e2SAndroid Build Coastguard Worker    version. The runtime can be obtained as the "Protobuf" pod.
47*cc02d7e2SAndroid Build Coastguard Worker  DESC
48*cc02d7e2SAndroid Build Coastguard Worker  s.homepage = 'https://github.com/protocolbuffers/protobuf'
49*cc02d7e2SAndroid Build Coastguard Worker  s.license  = {
50*cc02d7e2SAndroid Build Coastguard Worker    :type => 'New BSD',
51*cc02d7e2SAndroid Build Coastguard Worker    :text => <<-LICENSE
52*cc02d7e2SAndroid Build Coastguard Worker      This license applies to all parts of Protocol Buffers except the following:
53*cc02d7e2SAndroid Build Coastguard Worker
54*cc02d7e2SAndroid Build Coastguard Worker      - Atomicops support for generic gcc, located in
55*cc02d7e2SAndroid Build Coastguard Worker        src/google/protobuf/stubs/atomicops_internals_generic_gcc.h.
56*cc02d7e2SAndroid Build Coastguard Worker        This file is copyrighted by Red Hat Inc.
57*cc02d7e2SAndroid Build Coastguard Worker
58*cc02d7e2SAndroid Build Coastguard Worker      - Atomicops support for AIX/POWER, located in
59*cc02d7e2SAndroid Build Coastguard Worker        src/google/protobuf/stubs/atomicops_internals_power.h.
60*cc02d7e2SAndroid Build Coastguard Worker        This file is copyrighted by Bloomberg Finance LP.
61*cc02d7e2SAndroid Build Coastguard Worker
62*cc02d7e2SAndroid Build Coastguard Worker      Copyright 2014, Google Inc.  All rights reserved.
63*cc02d7e2SAndroid Build Coastguard Worker
64*cc02d7e2SAndroid Build Coastguard Worker      Redistribution and use in source and binary forms, with or without
65*cc02d7e2SAndroid Build Coastguard Worker      modification, are permitted provided that the following conditions are
66*cc02d7e2SAndroid Build Coastguard Worker      met:
67*cc02d7e2SAndroid Build Coastguard Worker
68*cc02d7e2SAndroid Build Coastguard Worker          * Redistributions of source code must retain the above copyright
69*cc02d7e2SAndroid Build Coastguard Worker      notice, this list of conditions and the following disclaimer.
70*cc02d7e2SAndroid Build Coastguard Worker          * Redistributions in binary form must reproduce the above
71*cc02d7e2SAndroid Build Coastguard Worker      copyright notice, this list of conditions and the following disclaimer
72*cc02d7e2SAndroid Build Coastguard Worker      in the documentation and/or other materials provided with the
73*cc02d7e2SAndroid Build Coastguard Worker      distribution.
74*cc02d7e2SAndroid Build Coastguard Worker          * Neither the name of Google Inc. nor the names of its
75*cc02d7e2SAndroid Build Coastguard Worker      contributors may be used to endorse or promote products derived from
76*cc02d7e2SAndroid Build Coastguard Worker      this software without specific prior written permission.
77*cc02d7e2SAndroid Build Coastguard Worker
78*cc02d7e2SAndroid Build Coastguard Worker      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
79*cc02d7e2SAndroid Build Coastguard Worker      "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
80*cc02d7e2SAndroid Build Coastguard Worker      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
81*cc02d7e2SAndroid Build Coastguard Worker      A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
82*cc02d7e2SAndroid Build Coastguard Worker      OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
83*cc02d7e2SAndroid Build Coastguard Worker      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
84*cc02d7e2SAndroid Build Coastguard Worker      LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
85*cc02d7e2SAndroid Build Coastguard Worker      DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
86*cc02d7e2SAndroid Build Coastguard Worker      THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
87*cc02d7e2SAndroid Build Coastguard Worker      (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
88*cc02d7e2SAndroid Build Coastguard Worker      OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
89*cc02d7e2SAndroid Build Coastguard Worker
90*cc02d7e2SAndroid Build Coastguard Worker      Code generated by the Protocol Buffer compiler is owned by the owner
91*cc02d7e2SAndroid Build Coastguard Worker      of the input file used when generating it.  This code is not
92*cc02d7e2SAndroid Build Coastguard Worker      standalone and requires a support library to be linked with it.  This
93*cc02d7e2SAndroid Build Coastguard Worker      support library is itself covered by the above license.
94*cc02d7e2SAndroid Build Coastguard Worker    LICENSE
95*cc02d7e2SAndroid Build Coastguard Worker  }
96*cc02d7e2SAndroid Build Coastguard Worker  # "The name and email addresses of the library maintainers, not the Podspec maintainer."
97*cc02d7e2SAndroid Build Coastguard Worker  s.authors  = { 'The Protocol Buffers contributors' => '[email protected]' }
98*cc02d7e2SAndroid Build Coastguard Worker
99*cc02d7e2SAndroid Build Coastguard Worker  repo = 'google/protobuf'
100*cc02d7e2SAndroid Build Coastguard Worker  file = "protoc-#{v}-osx-x86_64.zip"
101*cc02d7e2SAndroid Build Coastguard Worker  s.source = {
102*cc02d7e2SAndroid Build Coastguard Worker    :http => "https://github.com/#{repo}/releases/download/v#{v}/#{file}",
103*cc02d7e2SAndroid Build Coastguard Worker    # TODO(jcanizales): Add sha1 or sha256
104*cc02d7e2SAndroid Build Coastguard Worker    # :sha1 => '??',
105*cc02d7e2SAndroid Build Coastguard Worker  }
106*cc02d7e2SAndroid Build Coastguard Worker
107*cc02d7e2SAndroid Build Coastguard Worker  s.preserve_paths = 'protoc',
108*cc02d7e2SAndroid Build Coastguard Worker                     'google/**/*.proto' # Well-known protobuf types
109*cc02d7e2SAndroid Build Coastguard Worker
110*cc02d7e2SAndroid Build Coastguard Worker  # Restrict the protobuf runtime version to the one supported by this version of protoc.
111*cc02d7e2SAndroid Build Coastguard Worker  s.dependency 'Protobuf', '~> 3.0'
112*cc02d7e2SAndroid Build Coastguard Worker  # For the Protobuf dependency not to complain:
113*cc02d7e2SAndroid Build Coastguard Worker  s.ios.deployment_target = '10.0'
114*cc02d7e2SAndroid Build Coastguard Worker  s.osx.deployment_target = '10.12'
115*cc02d7e2SAndroid Build Coastguard Worker  s.tvos.deployment_target = '12.0'
116*cc02d7e2SAndroid Build Coastguard Worker  s.watchos.deployment_target = '6.0'
117*cc02d7e2SAndroid Build Coastguard Worker
118*cc02d7e2SAndroid Build Coastguard Worker  # This is only for local development of protoc: If the Podfile brings this pod from a local
119*cc02d7e2SAndroid Build Coastguard Worker  # directory using `:path`, CocoaPods won't download the zip file and so the compiler won't be
120*cc02d7e2SAndroid Build Coastguard Worker  # present in this pod's directory. We use that knowledge to check for the existence of the file
121*cc02d7e2SAndroid Build Coastguard Worker  # and, if absent, build it from the local sources.
122*cc02d7e2SAndroid Build Coastguard Worker  repo_root = '../..'
123*cc02d7e2SAndroid Build Coastguard Worker  bazel = "#{repo_root}/tools/bazel"
124*cc02d7e2SAndroid Build Coastguard Worker
125*cc02d7e2SAndroid Build Coastguard Worker  s.prepare_command = <<-CMD
126*cc02d7e2SAndroid Build Coastguard Worker    set -e
127*cc02d7e2SAndroid Build Coastguard Worker    if [ ! -f bin/protoc ]; then
128*cc02d7e2SAndroid Build Coastguard Worker      #{bazel} build @com_google_protobuf//:protoc
129*cc02d7e2SAndroid Build Coastguard Worker    else
130*cc02d7e2SAndroid Build Coastguard Worker      mv bin/protoc .
131*cc02d7e2SAndroid Build Coastguard Worker      mv include/google .
132*cc02d7e2SAndroid Build Coastguard Worker    fi
133*cc02d7e2SAndroid Build Coastguard Worker  CMD
134*cc02d7e2SAndroid Build Coastguard Workerend
135