Skip to content

Commit b7b1ada

Browse files
authored
Libuv pod and event engine core test suite setup for iOS/ObjC (grpc#27563)
* Add podspec for libuv-grpc * iOS Core test pod setup
1 parent ec4c61a commit b7b1ada

File tree

11 files changed

+769
-1
lines changed

11 files changed

+769
-1
lines changed

gRPC-Core.podspec

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/objective-c/Libuv-gRPC.podspec

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
# This file has been automatically generated from a template file.
2+
# Please make modifications to
3+
# `templates/src/objective-c/libuv-gRPC.podspec.template` instead. This
4+
# file can be regenerated from the template by running
5+
# `tools/buildgen/generate_projects.sh`.
6+
7+
# Libuv CocoaPods podspec
8+
9+
# Copyright 2021, Google Inc.
10+
# All rights reserved.
11+
#
12+
# Redistribution and use in source and binary forms, with or without
13+
# modification, are permitted provided that the following conditions are
14+
# met:
15+
#
16+
# * Redistributions of source code must retain the above copyright
17+
# notice, this list of conditions and the following disclaimer.
18+
# * Redistributions in binary form must reproduce the above
19+
# copyright notice, this list of conditions and the following disclaimer
20+
# in the documentation and/or other materials provided with the
21+
# distribution.
22+
# * Neither the name of Google Inc. nor the names of its
23+
# contributors may be used to endorse or promote products derived from
24+
# this software without specific prior written permission.
25+
#
26+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30+
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37+
38+
Pod::Spec.new do |spec|
39+
40+
pod_version = "0.0.10"
41+
libuv_version = "1.37.0"
42+
43+
spec.name = "Libuv-gRPC"
44+
spec.version = pod_version
45+
spec.summary = "gRPC-Only Libuv Pod"
46+
47+
spec.description = <<-DESC
48+
Libuv pod intended to be used only by gRPC iOS. libuv is a multi-platform
49+
support library with a focus on asynchronous I/O. It was primarily developed
50+
for use by Node.js, but it's also used by Luvit, Julia, pyuv, and others.
51+
DESC
52+
53+
spec.homepage = "https://libuv.org/"
54+
55+
spec.license = { :type => 'Mixed', :file => 'LICENSE' }
56+
spec.author = "libuv"
57+
58+
# When using multiple platforms
59+
spec.ios.deployment_target = '9.0'
60+
spec.osx.deployment_target = '10.10'
61+
spec.tvos.deployment_target = '10.0'
62+
spec.watchos.deployment_target = '4.0'
63+
64+
spec.source = { :git => "https://github.com/libuv/libuv.git", :tag => "v#{libuv_version}" }
65+
66+
name = 'uv'
67+
spec.module_name = name
68+
spec.header_mappings_dir = 'include'
69+
spec.header_dir = name
70+
71+
spec.subspec 'Interface' do |ss|
72+
ss.header_mappings_dir = 'include'
73+
ss.source_files = "include/uv.h",
74+
"include/uv/errno.h",
75+
"include/uv/threadpool.h",
76+
"include/uv/version.h",
77+
"include/uv/tree.h",
78+
"include/uv/unix.h",
79+
"include/uv/darwin.h"
80+
end
81+
82+
spec.subspec 'Implementation' do |ss|
83+
ss.header_mappings_dir = 'src'
84+
ss.source_files =
85+
"src/fs-poll.c",
86+
"src/idna.c",
87+
"src/inet.c",
88+
"src/strscpy.c",
89+
"src/threadpool.c",
90+
"src/timer.c",
91+
"src/uv-data-getter-setters.c",
92+
"src/uv-common.c",
93+
"src/version.c",
94+
"src/unix/async.c",
95+
"src/unix/core.c",
96+
"src/unix/dl.c",
97+
"src/unix/fs.c",
98+
"src/unix/getaddrinfo.c",
99+
"src/unix/getnameinfo.c",
100+
"src/unix/loop.c",
101+
"src/unix/loop-watcher.c",
102+
"src/unix/pipe.c",
103+
"src/unix/poll.c",
104+
"src/unix/process.c",
105+
"src/unix/signal.c",
106+
"src/unix/stream.c",
107+
"src/unix/tcp.c",
108+
"src/unix/thread.c",
109+
"src/unix/tty.c",
110+
"src/unix/udp.c",
111+
"src/unix/bsd-ifaddrs.c",
112+
"src/unix/darwin.c",
113+
"src/unix/fsevents.c",
114+
"src/unix/kqueue.c",
115+
"src/unix/darwin-proctitle.c",
116+
"src/unix/proctitle.c",
117+
"src/heap-inl.h",
118+
"src/idna.h",
119+
"src/queue.h",
120+
"src/strscpy.h",
121+
"src/uv-common.h",
122+
"src/unix/atomic-ops.h",
123+
"src/unix/internal.h",
124+
"src/unix/spinlock.h"
125+
126+
ss.dependency "#{spec.name}/Interface", pod_version
127+
end
128+
129+
spec.requires_arc = false
130+
131+
spec.pod_target_xcconfig = {
132+
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(PODS_TARGET_SRCROOT)/include"',
133+
'USER_HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)" "$(PODS_TARGET_SRCROOT)/src" "$(PODS_TARGET_SRCROOT)/include"',
134+
'CLANG_WARN_STRICT_PROTOTYPES' => 'NO',
135+
'CLANG_WARN_DOCUMENTATION_COMMENTS' => 'NO',
136+
'USE_HEADERMAP' => 'NO',
137+
'ALWAYS_SEARCH_USER_PATHS' => 'NO',
138+
'GCC_TREAT_WARNINGS_AS_ERRORS' => 'NO',
139+
'GCC_WARN_INHIBIT_ALL_WARNINGS' => 'YES'
140+
}
141+
142+
spec.libraries = 'c++'
143+
144+
spec.compiler_flags =
145+
"-D_LARGEFILE_SOURCE",
146+
"-D_FILE_OFFSET_BITS=64",
147+
"-D_GNU_SOURCE",
148+
"-D_DARWIN_USE_64_BIT_INODE=1",
149+
"-D_DARWIN_UNLIMITED_SELECT=1"
150+
151+
end

src/objective-c/examples/RemoteTestClient/RemoteTest.podspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,5 +70,5 @@ Pod::Spec.new do |s|
7070
# This is needed by all pods that depend on gRPC-RxLibrary:
7171
'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES',
7272
}
73-
73+
7474
end

src/objective-c/examples/Sample/Podfile

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ target 'Sample' do
2323
pod 'Protobuf', :path => "#{GRPC_LOCAL_SRC}/third_party/protobuf"
2424

2525
pod 'BoringSSL-GRPC', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
26+
pod 'Libuv-gRPC', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
2627

2728
pod 'gRPC', :path => GRPC_LOCAL_SRC
2829
pod 'gRPC-Core', :path => GRPC_LOCAL_SRC
@@ -48,4 +49,5 @@ pre_install do |installer|
4849
'USE_HEADERMAP' => 'NO',
4950
'ALWAYS_SEARCH_USER_PATHS' => 'NO',
5051
}
52+
5153
end

src/objective-c/examples/SwiftSample/Podfile

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ target 'SwiftSample' do
2020
pod 'Protobuf', :path => "#{GRPC_LOCAL_SRC}/third_party/protobuf"
2121

2222
pod 'BoringSSL-GRPC', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
23+
pod 'Libuv-gRPC', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c"
2324

2425
pod 'gRPC', :path => GRPC_LOCAL_SRC
2526
pod 'gRPC-Core', :path => GRPC_LOCAL_SRC
@@ -45,4 +46,5 @@ pre_install do |installer|
4546
'USE_HEADERMAP' => 'NO',
4647
'ALWAYS_SEARCH_USER_PATHS' => 'NO',
4748
}
49+
4850
end

0 commit comments

Comments
 (0)