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