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