xref: /aosp_15_r20/external/sandboxed-api/oss-internship-2020/libuv/CMakeLists.txt (revision ec63e07ab9515d95e79c211197c445ef84cefa6a)
1*ec63e07aSXin Li# Copyright 2020 Google LLC
2*ec63e07aSXin Li#
3*ec63e07aSXin Li# Licensed under the Apache License, Version 2.0 (the "License");
4*ec63e07aSXin Li# you may not use this file except in compliance with the License.
5*ec63e07aSXin Li# You may obtain a copy of the License at
6*ec63e07aSXin Li#
7*ec63e07aSXin Li#     https://www.apache.org/licenses/LICENSE-2.0
8*ec63e07aSXin Li#
9*ec63e07aSXin Li# Unless required by applicable law or agreed to in writing, software
10*ec63e07aSXin Li# distributed under the License is distributed on an "AS IS" BASIS,
11*ec63e07aSXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*ec63e07aSXin Li# See the License for the specific language governing permissions and
13*ec63e07aSXin Li# limitations under the License.
14*ec63e07aSXin Li
15*ec63e07aSXin Licmake_minimum_required(VERSION 3.12)
16*ec63e07aSXin Li
17*ec63e07aSXin Liproject(libuv_sandbox)
18*ec63e07aSXin Li
19*ec63e07aSXin Liset(CMAKE_CXX_STANDARD 17)
20*ec63e07aSXin Liset(CMAKE_CXX_STANDARD_REQUIRED True)
21*ec63e07aSXin Li
22*ec63e07aSXin Li# Add SAPI directories
23*ec63e07aSXin Liadd_subdirectory(
24*ec63e07aSXin Li  "${SAPI_ROOT}"
25*ec63e07aSXin Li  "${CMAKE_BINARY_DIR}/sandboxed-api-build"
26*ec63e07aSXin Li  EXCLUDE_FROM_ALL
27*ec63e07aSXin Li)
28*ec63e07aSXin Li
29*ec63e07aSXin Lifile(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/uv_wrapper")
30*ec63e07aSXin Liadd_custom_command(
31*ec63e07aSXin Li
32*ec63e07aSXin Li  OUTPUT "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.h"
33*ec63e07aSXin Li         "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.cc"
34*ec63e07aSXin Li
35*ec63e07aSXin Li  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
36*ec63e07aSXin Li
37*ec63e07aSXin Li  COMMAND "${SAPI_PYTHON3_EXECUTABLE}"
38*ec63e07aSXin Li          "generator/wrapper_generator.py"
39*ec63e07aSXin Li          "libuv/include/uv.h"
40*ec63e07aSXin Li          "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.h"
41*ec63e07aSXin Li          "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.cc"
42*ec63e07aSXin Li
43*ec63e07aSXin Li  COMMENT "Generate the wrapper header and source files"
44*ec63e07aSXin Li)
45*ec63e07aSXin Li
46*ec63e07aSXin Lioption(SAPI_UV_ENABLE_EXAMPLES "" ON)
47*ec63e07aSXin Lioption(SAPI_UV_ENABLE_TESTS "" ON)
48*ec63e07aSXin Li
49*ec63e07aSXin Li# Add callbacks used by examples and tests
50*ec63e07aSXin Liif (SAPI_UV_ENABLE_EXAMPLES OR SAPI_UV_ENABLE_TESTS)
51*ec63e07aSXin Li  list(APPEND SAPI_UV_CALLBACKS
52*ec63e07aSXin Li    "${CMAKE_CURRENT_SOURCE_DIR}/callbacks/callbacks.h"
53*ec63e07aSXin Li    "${CMAKE_CURRENT_SOURCE_DIR}/callbacks/callbacks.cc"
54*ec63e07aSXin Li  )
55*ec63e07aSXin Liendif()
56*ec63e07aSXin Li
57*ec63e07aSXin Li# Wrapper library including wrappers for all libuv methods and callbacks
58*ec63e07aSXin Li# The SAPI_UV_CALLBACKS variable should contain the absolute paths of
59*ec63e07aSXin Li# all the files implementing the callbacks
60*ec63e07aSXin Liadd_library(uv_wrapper_and_callbacks OBJECT
61*ec63e07aSXin Li  "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.h"
62*ec63e07aSXin Li  "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.cc"
63*ec63e07aSXin Li  "${SAPI_UV_CALLBACKS}"
64*ec63e07aSXin Li)
65*ec63e07aSXin Liset_target_properties(uv_wrapper_and_callbacks
66*ec63e07aSXin Li  PROPERTIES LINKER_LANGUAGE C
67*ec63e07aSXin Li)
68*ec63e07aSXin Li
69*ec63e07aSXin Li# Link the wrapper to the original uv library
70*ec63e07aSXin Liadd_subdirectory(libuv)
71*ec63e07aSXin Litarget_link_libraries(uv_wrapper_and_callbacks uv_a)
72*ec63e07aSXin Li
73*ec63e07aSXin Li# Setup Sandboxed API
74*ec63e07aSXin Liset(SAPI_ROOT "" CACHE PATH "Path to the Sandboxed API source tree")
75*ec63e07aSXin Liset(SAPI_BUILD_EXAMPLES ${SAPI_UV_ENABLE_EXAMPLES} CACHE BOOL "" FORCE)
76*ec63e07aSXin Liset(SAPI_BUILD_TESTING ${SAPI_UV_ENABLE_TESTS} CACHE BOOL "" FORCE)
77*ec63e07aSXin Li
78*ec63e07aSXin Li# Generate SAPI header
79*ec63e07aSXin Liadd_sapi_library(uv_sapi
80*ec63e07aSXin Li
81*ec63e07aSXin Li  # List of all the generated methods
82*ec63e07aSXin Li  FUNCTIONS sapi_uv_accept
83*ec63e07aSXin Li            sapi_uv_async_init
84*ec63e07aSXin Li            sapi_uv_async_send
85*ec63e07aSXin Li            sapi_uv_backend_fd
86*ec63e07aSXin Li            sapi_uv_backend_timeout
87*ec63e07aSXin Li            sapi_uv_barrier_destroy
88*ec63e07aSXin Li            sapi_uv_barrier_init
89*ec63e07aSXin Li            sapi_uv_barrier_wait
90*ec63e07aSXin Li            # TODO(cblichmann): sapi_uv_buf_init
91*ec63e07aSXin Li            sapi_uv_cancel
92*ec63e07aSXin Li            sapi_uv_chdir
93*ec63e07aSXin Li            sapi_uv_check_init
94*ec63e07aSXin Li            sapi_uv_check_start
95*ec63e07aSXin Li            sapi_uv_check_stop
96*ec63e07aSXin Li            sapi_uv_close
97*ec63e07aSXin Li            sapi_uv_cond_broadcast
98*ec63e07aSXin Li            sapi_uv_cond_destroy
99*ec63e07aSXin Li            sapi_uv_cond_init
100*ec63e07aSXin Li            sapi_uv_cond_signal
101*ec63e07aSXin Li            sapi_uv_cond_timedwait
102*ec63e07aSXin Li            sapi_uv_cond_wait
103*ec63e07aSXin Li            sapi_uv_cpu_info
104*ec63e07aSXin Li            sapi_uv_cwd
105*ec63e07aSXin Li            sapi_uv_default_loop
106*ec63e07aSXin Li            sapi_uv_disable_stdio_inheritance
107*ec63e07aSXin Li            sapi_uv_dlclose
108*ec63e07aSXin Li            sapi_uv_dlerror
109*ec63e07aSXin Li            sapi_uv_dlopen
110*ec63e07aSXin Li            sapi_uv_dlsym
111*ec63e07aSXin Li            sapi_uv_err_name
112*ec63e07aSXin Li            sapi_uv_err_name_r
113*ec63e07aSXin Li            sapi_uv_exepath
114*ec63e07aSXin Li            sapi_uv_fileno
115*ec63e07aSXin Li            sapi_uv_free_cpu_info
116*ec63e07aSXin Li            sapi_uv_free_interface_addresses
117*ec63e07aSXin Li            sapi_uv_freeaddrinfo
118*ec63e07aSXin Li            sapi_uv_fs_access
119*ec63e07aSXin Li            sapi_uv_fs_chmod
120*ec63e07aSXin Li            sapi_uv_fs_chown
121*ec63e07aSXin Li            sapi_uv_fs_close
122*ec63e07aSXin Li            sapi_uv_fs_closedir
123*ec63e07aSXin Li            sapi_uv_fs_copyfile
124*ec63e07aSXin Li            sapi_uv_fs_event_getpath
125*ec63e07aSXin Li            sapi_uv_fs_event_init
126*ec63e07aSXin Li            sapi_uv_fs_event_start
127*ec63e07aSXin Li            sapi_uv_fs_event_stop
128*ec63e07aSXin Li            sapi_uv_fs_fchmod
129*ec63e07aSXin Li            sapi_uv_fs_fchown
130*ec63e07aSXin Li            sapi_uv_fs_fdatasync
131*ec63e07aSXin Li            sapi_uv_fs_fstat
132*ec63e07aSXin Li            sapi_uv_fs_fsync
133*ec63e07aSXin Li            sapi_uv_fs_ftruncate
134*ec63e07aSXin Li            sapi_uv_fs_futime
135*ec63e07aSXin Li            sapi_uv_fs_get_path
136*ec63e07aSXin Li            sapi_uv_fs_get_ptr
137*ec63e07aSXin Li            sapi_uv_fs_get_result
138*ec63e07aSXin Li            sapi_uv_fs_get_statbuf
139*ec63e07aSXin Li            sapi_uv_fs_get_system_error
140*ec63e07aSXin Li            sapi_uv_fs_get_type
141*ec63e07aSXin Li            sapi_uv_fs_lchown
142*ec63e07aSXin Li            sapi_uv_fs_link
143*ec63e07aSXin Li            sapi_uv_fs_lstat
144*ec63e07aSXin Li            sapi_uv_fs_lutime
145*ec63e07aSXin Li            sapi_uv_fs_mkdir
146*ec63e07aSXin Li            sapi_uv_fs_mkdtemp
147*ec63e07aSXin Li            sapi_uv_fs_mkstemp
148*ec63e07aSXin Li            sapi_uv_fs_open
149*ec63e07aSXin Li            sapi_uv_fs_opendir
150*ec63e07aSXin Li            sapi_uv_fs_poll_getpath
151*ec63e07aSXin Li            sapi_uv_fs_poll_init
152*ec63e07aSXin Li            sapi_uv_fs_poll_start
153*ec63e07aSXin Li            sapi_uv_fs_poll_stop
154*ec63e07aSXin Li            sapi_uv_fs_read
155*ec63e07aSXin Li            sapi_uv_fs_readdir
156*ec63e07aSXin Li            sapi_uv_fs_readlink
157*ec63e07aSXin Li            sapi_uv_fs_realpath
158*ec63e07aSXin Li            sapi_uv_fs_rename
159*ec63e07aSXin Li            sapi_uv_fs_req_cleanup
160*ec63e07aSXin Li            sapi_uv_fs_rmdir
161*ec63e07aSXin Li            sapi_uv_fs_scandir
162*ec63e07aSXin Li            sapi_uv_fs_scandir_next
163*ec63e07aSXin Li            sapi_uv_fs_sendfile
164*ec63e07aSXin Li            sapi_uv_fs_stat
165*ec63e07aSXin Li            sapi_uv_fs_statfs
166*ec63e07aSXin Li            sapi_uv_fs_symlink
167*ec63e07aSXin Li            sapi_uv_fs_unlink
168*ec63e07aSXin Li            sapi_uv_fs_utime
169*ec63e07aSXin Li            sapi_uv_fs_write
170*ec63e07aSXin Li            sapi_uv_get_constrained_memory
171*ec63e07aSXin Li            sapi_uv_get_free_memory
172*ec63e07aSXin Li            sapi_uv_get_osfhandle
173*ec63e07aSXin Li            sapi_uv_get_process_title
174*ec63e07aSXin Li            sapi_uv_get_total_memory
175*ec63e07aSXin Li            sapi_uv_getaddrinfo
176*ec63e07aSXin Li            sapi_uv_getnameinfo
177*ec63e07aSXin Li            sapi_uv_getrusage
178*ec63e07aSXin Li            sapi_uv_gettimeofday
179*ec63e07aSXin Li            sapi_uv_guess_handle
180*ec63e07aSXin Li            sapi_uv_handle_get_data
181*ec63e07aSXin Li            sapi_uv_handle_get_loop
182*ec63e07aSXin Li            sapi_uv_handle_get_type
183*ec63e07aSXin Li            sapi_uv_handle_set_data
184*ec63e07aSXin Li            sapi_uv_handle_size
185*ec63e07aSXin Li            sapi_uv_handle_type_name
186*ec63e07aSXin Li            sapi_uv_has_ref
187*ec63e07aSXin Li            sapi_uv_hrtime
188*ec63e07aSXin Li            sapi_uv_idle_init
189*ec63e07aSXin Li            sapi_uv_idle_start
190*ec63e07aSXin Li            sapi_uv_idle_stop
191*ec63e07aSXin Li            sapi_uv_if_indextoiid
192*ec63e07aSXin Li            sapi_uv_if_indextoname
193*ec63e07aSXin Li            sapi_uv_inet_ntop
194*ec63e07aSXin Li            sapi_uv_inet_pton
195*ec63e07aSXin Li            sapi_uv_interface_addresses
196*ec63e07aSXin Li            sapi_uv_ip4_addr
197*ec63e07aSXin Li            sapi_uv_ip4_name
198*ec63e07aSXin Li            sapi_uv_ip6_addr
199*ec63e07aSXin Li            sapi_uv_ip6_name
200*ec63e07aSXin Li            sapi_uv_is_active
201*ec63e07aSXin Li            sapi_uv_is_closing
202*ec63e07aSXin Li            sapi_uv_is_readable
203*ec63e07aSXin Li            sapi_uv_is_writable
204*ec63e07aSXin Li            sapi_uv_key_create
205*ec63e07aSXin Li            sapi_uv_key_delete
206*ec63e07aSXin Li            sapi_uv_key_get
207*ec63e07aSXin Li            sapi_uv_key_set
208*ec63e07aSXin Li            sapi_uv_kill
209*ec63e07aSXin Li            sapi_uv_library_shutdown
210*ec63e07aSXin Li            sapi_uv_listen
211*ec63e07aSXin Li            sapi_uv_loadavg
212*ec63e07aSXin Li            sapi_uv_loop_alive
213*ec63e07aSXin Li            sapi_uv_loop_close
214*ec63e07aSXin Li            sapi_uv_loop_configure
215*ec63e07aSXin Li            sapi_uv_loop_configure_int
216*ec63e07aSXin Li            sapi_uv_loop_delete
217*ec63e07aSXin Li            sapi_uv_loop_fork
218*ec63e07aSXin Li            sapi_uv_loop_get_data
219*ec63e07aSXin Li            sapi_uv_loop_init
220*ec63e07aSXin Li            sapi_uv_loop_new
221*ec63e07aSXin Li            sapi_uv_loop_set_data
222*ec63e07aSXin Li            sapi_uv_loop_size
223*ec63e07aSXin Li            sapi_uv_metrics_idle_time
224*ec63e07aSXin Li            sapi_uv_mutex_destroy
225*ec63e07aSXin Li            sapi_uv_mutex_init
226*ec63e07aSXin Li            sapi_uv_mutex_init_recursive
227*ec63e07aSXin Li            sapi_uv_mutex_lock
228*ec63e07aSXin Li            sapi_uv_mutex_trylock
229*ec63e07aSXin Li            sapi_uv_mutex_unlock
230*ec63e07aSXin Li            sapi_uv_now
231*ec63e07aSXin Li            sapi_uv_once
232*ec63e07aSXin Li            sapi_uv_open_osfhandle
233*ec63e07aSXin Li            sapi_uv_os_environ
234*ec63e07aSXin Li            sapi_uv_os_free_environ
235*ec63e07aSXin Li            sapi_uv_os_free_passwd
236*ec63e07aSXin Li            sapi_uv_os_get_passwd
237*ec63e07aSXin Li            sapi_uv_os_getenv
238*ec63e07aSXin Li            sapi_uv_os_gethostname
239*ec63e07aSXin Li            sapi_uv_os_getpid
240*ec63e07aSXin Li            sapi_uv_os_getppid
241*ec63e07aSXin Li            sapi_uv_os_getpriority
242*ec63e07aSXin Li            sapi_uv_os_homedir
243*ec63e07aSXin Li            sapi_uv_os_setenv
244*ec63e07aSXin Li            sapi_uv_os_setpriority
245*ec63e07aSXin Li            sapi_uv_os_tmpdir
246*ec63e07aSXin Li            sapi_uv_os_uname
247*ec63e07aSXin Li            sapi_uv_os_unsetenv
248*ec63e07aSXin Li            sapi_uv_pipe_bind
249*ec63e07aSXin Li            sapi_uv_pipe_chmod
250*ec63e07aSXin Li            sapi_uv_pipe_connect
251*ec63e07aSXin Li            sapi_uv_pipe_getpeername
252*ec63e07aSXin Li            sapi_uv_pipe_getsockname
253*ec63e07aSXin Li            sapi_uv_pipe_init
254*ec63e07aSXin Li            sapi_uv_pipe_open
255*ec63e07aSXin Li            sapi_uv_pipe_pending_count
256*ec63e07aSXin Li            sapi_uv_pipe_pending_instances
257*ec63e07aSXin Li            sapi_uv_pipe_pending_type
258*ec63e07aSXin Li            sapi_uv_poll_init
259*ec63e07aSXin Li            sapi_uv_poll_init_socket
260*ec63e07aSXin Li            sapi_uv_poll_start
261*ec63e07aSXin Li            sapi_uv_poll_stop
262*ec63e07aSXin Li            sapi_uv_prepare_init
263*ec63e07aSXin Li            sapi_uv_prepare_start
264*ec63e07aSXin Li            sapi_uv_prepare_stop
265*ec63e07aSXin Li            sapi_uv_print_active_handles
266*ec63e07aSXin Li            sapi_uv_print_all_handles
267*ec63e07aSXin Li            sapi_uv_process_get_pid
268*ec63e07aSXin Li            sapi_uv_process_kill
269*ec63e07aSXin Li            sapi_uv_queue_work
270*ec63e07aSXin Li            sapi_uv_random
271*ec63e07aSXin Li            sapi_uv_read_start
272*ec63e07aSXin Li            sapi_uv_read_stop
273*ec63e07aSXin Li            sapi_uv_recv_buffer_size
274*ec63e07aSXin Li            sapi_uv_ref
275*ec63e07aSXin Li            sapi_uv_replace_allocator
276*ec63e07aSXin Li            sapi_uv_req_get_data
277*ec63e07aSXin Li            sapi_uv_req_get_type
278*ec63e07aSXin Li            sapi_uv_req_set_data
279*ec63e07aSXin Li            sapi_uv_req_size
280*ec63e07aSXin Li            sapi_uv_req_type_name
281*ec63e07aSXin Li            sapi_uv_resident_set_memory
282*ec63e07aSXin Li            sapi_uv_run
283*ec63e07aSXin Li            sapi_uv_rwlock_destroy
284*ec63e07aSXin Li            sapi_uv_rwlock_init
285*ec63e07aSXin Li            sapi_uv_rwlock_rdlock
286*ec63e07aSXin Li            sapi_uv_rwlock_rdunlock
287*ec63e07aSXin Li            sapi_uv_rwlock_tryrdlock
288*ec63e07aSXin Li            sapi_uv_rwlock_trywrlock
289*ec63e07aSXin Li            sapi_uv_rwlock_wrlock
290*ec63e07aSXin Li            sapi_uv_rwlock_wrunlock
291*ec63e07aSXin Li            sapi_uv_sem_destroy
292*ec63e07aSXin Li            sapi_uv_sem_init
293*ec63e07aSXin Li            sapi_uv_sem_post
294*ec63e07aSXin Li            sapi_uv_sem_trywait
295*ec63e07aSXin Li            sapi_uv_sem_wait
296*ec63e07aSXin Li            sapi_uv_send_buffer_size
297*ec63e07aSXin Li            sapi_uv_set_process_title
298*ec63e07aSXin Li            sapi_uv_setup_args
299*ec63e07aSXin Li            sapi_uv_shutdown
300*ec63e07aSXin Li            sapi_uv_signal_init
301*ec63e07aSXin Li            sapi_uv_signal_start
302*ec63e07aSXin Li            sapi_uv_signal_start_oneshot
303*ec63e07aSXin Li            sapi_uv_signal_stop
304*ec63e07aSXin Li            sapi_uv_sleep
305*ec63e07aSXin Li            sapi_uv_spawn
306*ec63e07aSXin Li            sapi_uv_stop
307*ec63e07aSXin Li            sapi_uv_stream_get_write_queue_size
308*ec63e07aSXin Li            sapi_uv_stream_set_blocking
309*ec63e07aSXin Li            sapi_uv_strerror
310*ec63e07aSXin Li            sapi_uv_strerror_r
311*ec63e07aSXin Li            sapi_uv_tcp_bind
312*ec63e07aSXin Li            sapi_uv_tcp_close_reset
313*ec63e07aSXin Li            sapi_uv_tcp_connect
314*ec63e07aSXin Li            sapi_uv_tcp_getpeername
315*ec63e07aSXin Li            sapi_uv_tcp_getsockname
316*ec63e07aSXin Li            sapi_uv_tcp_init
317*ec63e07aSXin Li            sapi_uv_tcp_init_ex
318*ec63e07aSXin Li            sapi_uv_tcp_keepalive
319*ec63e07aSXin Li            sapi_uv_tcp_nodelay
320*ec63e07aSXin Li            sapi_uv_tcp_open
321*ec63e07aSXin Li            sapi_uv_tcp_simultaneous_accepts
322*ec63e07aSXin Li            sapi_uv_thread_create
323*ec63e07aSXin Li            sapi_uv_thread_create_ex
324*ec63e07aSXin Li            sapi_uv_thread_equal
325*ec63e07aSXin Li            sapi_uv_thread_join
326*ec63e07aSXin Li            sapi_uv_thread_self
327*ec63e07aSXin Li            sapi_uv_timer_again
328*ec63e07aSXin Li            sapi_uv_timer_get_due_in
329*ec63e07aSXin Li            sapi_uv_timer_get_repeat
330*ec63e07aSXin Li            sapi_uv_timer_init
331*ec63e07aSXin Li            sapi_uv_timer_set_repeat
332*ec63e07aSXin Li            sapi_uv_timer_start
333*ec63e07aSXin Li            sapi_uv_timer_stop
334*ec63e07aSXin Li            sapi_uv_translate_sys_error
335*ec63e07aSXin Li            sapi_uv_try_write
336*ec63e07aSXin Li            sapi_uv_tty_get_vterm_state
337*ec63e07aSXin Li            sapi_uv_tty_get_winsize
338*ec63e07aSXin Li            sapi_uv_tty_init
339*ec63e07aSXin Li            sapi_uv_tty_reset_mode
340*ec63e07aSXin Li            sapi_uv_tty_set_mode
341*ec63e07aSXin Li            sapi_uv_tty_set_vterm_state
342*ec63e07aSXin Li            sapi_uv_udp_bind
343*ec63e07aSXin Li            sapi_uv_udp_connect
344*ec63e07aSXin Li            sapi_uv_udp_get_send_queue_count
345*ec63e07aSXin Li            sapi_uv_udp_get_send_queue_size
346*ec63e07aSXin Li            sapi_uv_udp_getpeername
347*ec63e07aSXin Li            sapi_uv_udp_getsockname
348*ec63e07aSXin Li            sapi_uv_udp_init
349*ec63e07aSXin Li            sapi_uv_udp_init_ex
350*ec63e07aSXin Li            sapi_uv_udp_open
351*ec63e07aSXin Li            sapi_uv_udp_recv_start
352*ec63e07aSXin Li            sapi_uv_udp_recv_stop
353*ec63e07aSXin Li            sapi_uv_udp_send
354*ec63e07aSXin Li            sapi_uv_udp_set_broadcast
355*ec63e07aSXin Li            sapi_uv_udp_set_membership
356*ec63e07aSXin Li            sapi_uv_udp_set_multicast_interface
357*ec63e07aSXin Li            sapi_uv_udp_set_multicast_loop
358*ec63e07aSXin Li            sapi_uv_udp_set_multicast_ttl
359*ec63e07aSXin Li            sapi_uv_udp_set_source_membership
360*ec63e07aSXin Li            sapi_uv_udp_set_ttl
361*ec63e07aSXin Li            sapi_uv_udp_try_send
362*ec63e07aSXin Li            sapi_uv_udp_using_recvmmsg
363*ec63e07aSXin Li            sapi_uv_unref
364*ec63e07aSXin Li            sapi_uv_update_time
365*ec63e07aSXin Li            sapi_uv_uptime
366*ec63e07aSXin Li            sapi_uv_version
367*ec63e07aSXin Li            sapi_uv_version_string
368*ec63e07aSXin Li            sapi_uv_walk
369*ec63e07aSXin Li            sapi_uv_write
370*ec63e07aSXin Li            sapi_uv_write2
371*ec63e07aSXin Li
372*ec63e07aSXin Li  INPUTS "${CMAKE_BINARY_DIR}/uv_wrapper/uv_wrapper.h"
373*ec63e07aSXin Li
374*ec63e07aSXin Li  LIBRARY uv_wrapper_and_callbacks
375*ec63e07aSXin Li
376*ec63e07aSXin Li  LIBRARY_NAME UV
377*ec63e07aSXin Li
378*ec63e07aSXin Li  NAMESPACE uv
379*ec63e07aSXin Li)
380*ec63e07aSXin Li
381*ec63e07aSXin Li# Include generated SAPI header
382*ec63e07aSXin Litarget_include_directories(uv_sapi INTERFACE
383*ec63e07aSXin Li  "${PROJECT_BINARY_DIR}"
384*ec63e07aSXin Li)
385*ec63e07aSXin Li
386*ec63e07aSXin Li# Add examples
387*ec63e07aSXin Liif (SAPI_UV_ENABLE_EXAMPLES)
388*ec63e07aSXin Li  add_subdirectory(examples)
389*ec63e07aSXin Liendif()
390*ec63e07aSXin Li
391*ec63e07aSXin Li# Add tests
392*ec63e07aSXin Liif (SAPI_UV_ENABLE_TESTS)
393*ec63e07aSXin Li  add_subdirectory(tests)
394*ec63e07aSXin Liendif()
395