1*cc02d7e2SAndroid Build Coastguard Worker%YAML 1.2
2*cc02d7e2SAndroid Build Coastguard Worker--- |
3*cc02d7e2SAndroid Build Coastguard Worker  # This file has been automatically generated from a template file.
4*cc02d7e2SAndroid Build Coastguard Worker  # Please make modifications to
5*cc02d7e2SAndroid Build Coastguard Worker  # `templates/src/objective-c/!ProtoCompiler-gRPCCppPlugin.podspec.template`
6*cc02d7e2SAndroid Build Coastguard Worker  # instead. This file can be regenerated from the template by running
7*cc02d7e2SAndroid Build Coastguard Worker  # `tools/buildgen/generate_projects.sh`.
8*cc02d7e2SAndroid Build Coastguard Worker
9*cc02d7e2SAndroid Build Coastguard Worker  # CocoaPods podspec for the gRPC Proto Compiler Plugin
10*cc02d7e2SAndroid Build Coastguard Worker  #
11*cc02d7e2SAndroid Build Coastguard Worker  # Copyright 2019, Google Inc.
12*cc02d7e2SAndroid Build Coastguard Worker  # All rights reserved.
13*cc02d7e2SAndroid Build Coastguard Worker  #
14*cc02d7e2SAndroid Build Coastguard Worker  # Redistribution and use in source and binary forms, with or without
15*cc02d7e2SAndroid Build Coastguard Worker  # modification, are permitted provided that the following conditions are
16*cc02d7e2SAndroid Build Coastguard Worker  # met:
17*cc02d7e2SAndroid Build Coastguard Worker  #
18*cc02d7e2SAndroid Build Coastguard Worker  #     * Redistributions of source code must retain the above copyright
19*cc02d7e2SAndroid Build Coastguard Worker  # notice, this list of conditions and the following disclaimer.
20*cc02d7e2SAndroid Build Coastguard Worker  #     * Redistributions in binary form must reproduce the above
21*cc02d7e2SAndroid Build Coastguard Worker  # copyright notice, this list of conditions and the following disclaimer
22*cc02d7e2SAndroid Build Coastguard Worker  # in the documentation and/or other materials provided with the
23*cc02d7e2SAndroid Build Coastguard Worker  # distribution.
24*cc02d7e2SAndroid Build Coastguard Worker  #     * Neither the name of Google Inc. nor the names of its
25*cc02d7e2SAndroid Build Coastguard Worker  # contributors may be used to endorse or promote products derived from
26*cc02d7e2SAndroid Build Coastguard Worker  # this software without specific prior written permission.
27*cc02d7e2SAndroid Build Coastguard Worker  #
28*cc02d7e2SAndroid Build Coastguard Worker  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29*cc02d7e2SAndroid Build Coastguard Worker  # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30*cc02d7e2SAndroid Build Coastguard Worker  # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
31*cc02d7e2SAndroid Build Coastguard Worker  # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
32*cc02d7e2SAndroid Build Coastguard Worker  # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33*cc02d7e2SAndroid Build Coastguard Worker  # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34*cc02d7e2SAndroid Build Coastguard Worker  # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35*cc02d7e2SAndroid Build Coastguard Worker  # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
36*cc02d7e2SAndroid Build Coastguard Worker  # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37*cc02d7e2SAndroid Build Coastguard Worker  # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38*cc02d7e2SAndroid Build Coastguard Worker  # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39*cc02d7e2SAndroid Build Coastguard Worker
40*cc02d7e2SAndroid Build Coastguard Worker  Pod::Spec.new do |s|
41*cc02d7e2SAndroid Build Coastguard Worker    # This pod is only a utility that will be used by other pods _at install time_ (not at compile
42*cc02d7e2SAndroid Build Coastguard Worker    # time). Other pods can access it in their `prepare_command` script, under <pods_root>/<pod name>.
43*cc02d7e2SAndroid Build Coastguard Worker    # Because CocoaPods installs pods in alphabetical order, beginning this pod's name with an
44*cc02d7e2SAndroid Build Coastguard Worker    # exclamation mark ensures that other "regular" pods will be able to find it as it'll be installed
45*cc02d7e2SAndroid Build Coastguard Worker    # before them.
46*cc02d7e2SAndroid Build Coastguard Worker    s.name     = '!ProtoCompiler-gRPCCppPlugin'
47*cc02d7e2SAndroid Build Coastguard Worker    v = '${settings.version}'
48*cc02d7e2SAndroid Build Coastguard Worker    s.version  = v
49*cc02d7e2SAndroid Build Coastguard Worker    s.summary  = 'The gRPC ProtoC plugin generates C++ files from .proto services.'
50*cc02d7e2SAndroid Build Coastguard Worker    s.description = <<-DESC
51*cc02d7e2SAndroid Build Coastguard Worker      This podspec only downloads the gRPC protoc plugin so that local pods generating protos can use
52*cc02d7e2SAndroid Build Coastguard Worker      it in their invocation of protoc, as part of their prepare_command.
53*cc02d7e2SAndroid Build Coastguard Worker    DESC
54*cc02d7e2SAndroid Build Coastguard Worker    s.homepage = 'https://grpc.io'
55*cc02d7e2SAndroid Build Coastguard Worker    s.license  = {
56*cc02d7e2SAndroid Build Coastguard Worker      :type => 'Apache License, Version 2.0',
57*cc02d7e2SAndroid Build Coastguard Worker      :text => <<-LICENSE
58*cc02d7e2SAndroid Build Coastguard Worker        Copyright 2019, Google Inc.
59*cc02d7e2SAndroid Build Coastguard Worker        All rights reserved.
60*cc02d7e2SAndroid Build Coastguard Worker
61*cc02d7e2SAndroid Build Coastguard Worker        Redistribution and use in source and binary forms, with or without
62*cc02d7e2SAndroid Build Coastguard Worker        modification, are permitted provided that the following conditions are
63*cc02d7e2SAndroid Build Coastguard Worker        met:
64*cc02d7e2SAndroid Build Coastguard Worker
65*cc02d7e2SAndroid Build Coastguard Worker            * Redistributions of source code must retain the above copyright
66*cc02d7e2SAndroid Build Coastguard Worker        notice, this list of conditions and the following disclaimer.
67*cc02d7e2SAndroid Build Coastguard Worker            * Redistributions in binary form must reproduce the above
68*cc02d7e2SAndroid Build Coastguard Worker        copyright notice, this list of conditions and the following disclaimer
69*cc02d7e2SAndroid Build Coastguard Worker        in the documentation and/or other materials provided with the
70*cc02d7e2SAndroid Build Coastguard Worker        distribution.
71*cc02d7e2SAndroid Build Coastguard Worker            * Neither the name of Google Inc. nor the names of its
72*cc02d7e2SAndroid Build Coastguard Worker        contributors may be used to endorse or promote products derived from
73*cc02d7e2SAndroid Build Coastguard Worker        this software without specific prior written permission.
74*cc02d7e2SAndroid Build Coastguard Worker
75*cc02d7e2SAndroid Build Coastguard Worker        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
76*cc02d7e2SAndroid Build Coastguard Worker        "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
77*cc02d7e2SAndroid Build Coastguard Worker        LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
78*cc02d7e2SAndroid Build Coastguard Worker        A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
79*cc02d7e2SAndroid Build Coastguard Worker        OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
80*cc02d7e2SAndroid Build Coastguard Worker        SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
81*cc02d7e2SAndroid Build Coastguard Worker        LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
82*cc02d7e2SAndroid Build Coastguard Worker        DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
83*cc02d7e2SAndroid Build Coastguard Worker        THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
84*cc02d7e2SAndroid Build Coastguard Worker        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
85*cc02d7e2SAndroid Build Coastguard Worker        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
86*cc02d7e2SAndroid Build Coastguard Worker      LICENSE
87*cc02d7e2SAndroid Build Coastguard Worker    }
88*cc02d7e2SAndroid Build Coastguard Worker    s.authors  = { 'The gRPC contributors' => '[email protected]' }
89*cc02d7e2SAndroid Build Coastguard Worker
90*cc02d7e2SAndroid Build Coastguard Worker    repo = 'grpc/grpc'
91*cc02d7e2SAndroid Build Coastguard Worker    file = "grpc_cpp_plugin-#{v}-macos-x86_64.zip"
92*cc02d7e2SAndroid Build Coastguard Worker    s.source = {
93*cc02d7e2SAndroid Build Coastguard Worker      :http => "https://github.com/#{repo}/releases/download/v#{v}/#{file}",
94*cc02d7e2SAndroid Build Coastguard Worker      # TODO(jcanizales): Add sha1 or sha256
95*cc02d7e2SAndroid Build Coastguard Worker      # :sha1 => '??',
96*cc02d7e2SAndroid Build Coastguard Worker    }
97*cc02d7e2SAndroid Build Coastguard Worker
98*cc02d7e2SAndroid Build Coastguard Worker    repo_root = '../..'
99*cc02d7e2SAndroid Build Coastguard Worker    bazel = "#{repo_root}/tools/bazel"
100*cc02d7e2SAndroid Build Coastguard Worker    plugin = 'grpc_cpp_plugin'
101*cc02d7e2SAndroid Build Coastguard Worker
102*cc02d7e2SAndroid Build Coastguard Worker    s.preserve_paths = plugin
103*cc02d7e2SAndroid Build Coastguard Worker
104*cc02d7e2SAndroid Build Coastguard Worker    # Restrict the protoc version to the one supported by this plugin.
105*cc02d7e2SAndroid Build Coastguard Worker    s.dependency '!ProtoCompiler', '${settings.protobuf_version}'
106*cc02d7e2SAndroid Build Coastguard Worker
107*cc02d7e2SAndroid Build Coastguard Worker    s.ios.deployment_target = '10.0'
108*cc02d7e2SAndroid Build Coastguard Worker    s.osx.deployment_target = '10.12'
109*cc02d7e2SAndroid Build Coastguard Worker    s.tvos.deployment_target = '12.0'
110*cc02d7e2SAndroid Build Coastguard Worker    s.watchos.deployment_target = '6.0'
111*cc02d7e2SAndroid Build Coastguard Worker
112*cc02d7e2SAndroid Build Coastguard Worker    # This is only for local development of the plugin: If the Podfile brings this pod from a local
113*cc02d7e2SAndroid Build Coastguard Worker    # directory using `:path`, CocoaPods won't download the zip file and so the plugin won't be
114*cc02d7e2SAndroid Build Coastguard Worker    # present in this pod's directory. We use that knowledge to check for the existence of the file
115*cc02d7e2SAndroid Build Coastguard Worker    # and, if absent, compile the plugin from the local sources.
116*cc02d7e2SAndroid Build Coastguard Worker    s.prepare_command = <<-CMD
117*cc02d7e2SAndroid Build Coastguard Worker      set -e
118*cc02d7e2SAndroid Build Coastguard Worker      #{bazel} build //src/compiler:grpc_cpp_plugin
119*cc02d7e2SAndroid Build Coastguard Worker    CMD
120*cc02d7e2SAndroid Build Coastguard Worker  end
121