xref: /aosp_15_r20/external/libwebsockets/CMakeLists-implied-options.txt (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker#
2*1c60b9acSAndroid Build Coastguard Worker# libwebsockets - small server side websockets and web server implementation
3*1c60b9acSAndroid Build Coastguard Worker#
4*1c60b9acSAndroid Build Coastguard Worker# Copyright (C) 2010 - 2020 Andy Green <[email protected]>
5*1c60b9acSAndroid Build Coastguard Worker#
6*1c60b9acSAndroid Build Coastguard Worker# Permission is hereby granted, free of charge, to any person obtaining a copy
7*1c60b9acSAndroid Build Coastguard Worker# of this software and associated documentation files (the "Software"), to
8*1c60b9acSAndroid Build Coastguard Worker# deal in the Software without restriction, including without limitation the
9*1c60b9acSAndroid Build Coastguard Worker# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10*1c60b9acSAndroid Build Coastguard Worker# sell copies of the Software, and to permit persons to whom the Software is
11*1c60b9acSAndroid Build Coastguard Worker# furnished to do so, subject to the following conditions:
12*1c60b9acSAndroid Build Coastguard Worker#
13*1c60b9acSAndroid Build Coastguard Worker# The above copyright notice and this permission notice shall be included in
14*1c60b9acSAndroid Build Coastguard Worker# all copies or substantial portions of the Software.
15*1c60b9acSAndroid Build Coastguard Worker#
16*1c60b9acSAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17*1c60b9acSAndroid Build Coastguard Worker# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*1c60b9acSAndroid Build Coastguard Worker# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19*1c60b9acSAndroid Build Coastguard Worker# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20*1c60b9acSAndroid Build Coastguard Worker# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21*1c60b9acSAndroid Build Coastguard Worker# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22*1c60b9acSAndroid Build Coastguard Worker# IN THE SOFTWARE.
23*1c60b9acSAndroid Build Coastguard Worker#
24*1c60b9acSAndroid Build Coastguard Worker# This part of the CMakeLists.txt defines internal logic between options
25*1c60b9acSAndroid Build Coastguard Worker
26*1c60b9acSAndroid Build Coastguard Workerif(IOS)
27*1c60b9acSAndroid Build Coastguard Worker    set(LWS_DETECTED_PLAT_IOS 1)
28*1c60b9acSAndroid Build Coastguard Workerendif()
29*1c60b9acSAndroid Build Coastguard Worker
30*1c60b9acSAndroid Build Coastguard Worker# Workaround for ESP-IDF
31*1c60b9acSAndroid Build Coastguard Worker# Detect ESP_PLATFORM environment flag, if exist, set LWS_WITH_ESP32.
32*1c60b9acSAndroid Build Coastguard Worker# Otherwise the user may not be able to run configuration ESP-IDF in the first time.
33*1c60b9acSAndroid Build Coastguard Workerif (ESP_PLATFORM)
34*1c60b9acSAndroid Build Coastguard Worker	message(STATUS "ESP-IDF enabled")
35*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ESP32 ON)
36*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ZLIB OFF)
37*1c60b9acSAndroid Build Coastguard Worker	set(LWS_HAVE_mbedtls_ssl_get_alpn_protocol 1)
38*1c60b9acSAndroid Build Coastguard Workerelse()
39*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ESP32_HELPER OFF)
40*1c60b9acSAndroid Build Coastguard Workerendif()
41*1c60b9acSAndroid Build Coastguard Worker
42*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_ESP32)
43*1c60b9acSAndroid Build Coastguard Worker	set(LWS_PLAT_FREERTOS 1)
44*1c60b9acSAndroid Build Coastguard Workerendif()
45*1c60b9acSAndroid Build Coastguard Worker
46*1c60b9acSAndroid Build Coastguard Workerif (LWS_PLAT_OPTEE)
47*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_UDP 0)
48*1c60b9acSAndroid Build Coastguard Workerendif()
49*1c60b9acSAndroid Build Coastguard Worker
50*1c60b9acSAndroid Build Coastguard Workerif (LWS_PLAT_FREERTOS)
51*1c60b9acSAndroid Build Coastguard Worker	message(STATUS "No LWS_WITH_DIR or LWS_WITH_LEJP_CONF")
52*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DIR OFF)
53*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LEJP_CONF OFF)
54*1c60b9acSAndroid Build Coastguard Worker	message("LWS_WITH_DIR ${LWS_WITH_DIR}")
55*1c60b9acSAndroid Build Coastguard Workerelse()
56*1c60b9acSAndroid Build Coastguard Worker	message(STATUS "Compiled with LWS_WITH_DIR and LWS_WITH_LEJP_CONF")
57*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DIR ON)
58*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LEJP_CONF ON)
59*1c60b9acSAndroid Build Coastguard Workerendif()
60*1c60b9acSAndroid Build Coastguard Worker
61*1c60b9acSAndroid Build Coastguard Workerif (LWS_FOR_GITOHASHI)
62*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_THREADPOOL 1)
63*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP2 1)
64*1c60b9acSAndroid Build Coastguard Worker	set(LWS_UNIX_SOCK 1)
65*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_PROXY 1)
66*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_FTS 1)
67*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DISKCACHE 1)
68*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWSAC 1)
69*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LEJP_CONF 1)
70*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SPAWN 1)
71*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_FSMOUNT 1)
72*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_STRUCT_JSON 1)
73*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_STRUCT_SQLITE3 1)
74*1c60b9acSAndroid Build Coastguard Workerendif()
75*1c60b9acSAndroid Build Coastguard Worker
76*1c60b9acSAndroid Build Coastguard Workerif(LWS_WITH_DISTRO_RECOMMENDED)
77*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP2 1)				# selfcontained
78*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWSWS 1)				# libuv
79*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_CGI 1)				# selfcontained
80*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_STREAM_COMPRESSION 1)		# libz and brotli if avail
81*1c60b9acSAndroid Build Coastguard Worker	set(LWS_IPV6 1)					# selfcontained
82*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ZIP_FOPS 1)			# libz
83*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SOCKS5 1)				# selfcontained
84*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_RANGES 1)				# selfcontained
85*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ACME 1)				# selfcontained / tls
86*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SYS_METRICS 1)			# selfcontained
87*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_GLIB 1)				# glib
88*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LIBUV 1)				# libuv
89*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LIBEV 1)				# libev
90*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LIBEVENT 1)			# libevent
91*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_EVLIB_PLUGINS 1)			# event libraries created as plugins / individual packages
92*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_EXTENSIONS 0)			# libz
93*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_DBUS 1)				# dbus-related libs
94*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_FTS 1)				# selfcontained
95*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_THREADPOOL 1)			# pthreads
96*1c60b9acSAndroid Build Coastguard Worker	set(LWS_UNIX_SOCK 1)				# selfcontained
97*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_PROXY 1)			# selfcontained
98*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DISKCACHE 1)			# selfcontained
99*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWSAC 1)				# selfcontained
100*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LEJP_CONF 1)			# selfcontained
101*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_PLUGINS_BUILTIN 1)			# selfcontained
102*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_RAW_PROXY 1)			# selfcontained
103*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_GENCRYPTO 1)			# selfcontained / tls
104*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_CBOR 1)				# selfcontained
105*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_COSE 1)				# selfcontained
106*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_JOSE 1)				# selfcontained
107*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_STRUCT_JSON 1)			# selfcontained
108*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_STRUCT_SQLITE3 1)			# sqlite3
109*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SPAWN 1)				# selfcontained
110*1c60b9acSAndroid Build Coastguard Worker# libmount is problematic on Centos 8 / RHEL 8
111*1c60b9acSAndroid Build Coastguard Worker#	set(LWS_WITH_FSMOUNT 1)
112*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_MQTT 1)				# selfcontained
113*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SECURE_STREAMS 1)			# selfcontained
114*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SECURE_STREAMS_PROXY_API 1)	# selfcontained
115*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DIR 1)				# selfcontained
116*1c60b9acSAndroid Build Coastguard Workerendif()
117*1c60b9acSAndroid Build Coastguard Worker
118*1c60b9acSAndroid Build Coastguard Worker# LWS_WITH_EVENT_LIBS is set if any event lib selected
119*1c60b9acSAndroid Build Coastguard Worker
120*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_LIBEV OR
121*1c60b9acSAndroid Build Coastguard Worker    LWS_WITH_LIBUV OR
122*1c60b9acSAndroid Build Coastguard Worker    LWS_WITH_LIBEVENT OR
123*1c60b9acSAndroid Build Coastguard Worker    LWS_WITH_GLIB OR
124*1c60b9acSAndroid Build Coastguard Worker    LWS_WITH_SDEVENT OR
125*1c60b9acSAndroid Build Coastguard Worker    LWS_WITH_ULOOP)
126*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_EVENT_LIBS 1)
127*1c60b9acSAndroid Build Coastguard Workerelse()
128*1c60b9acSAndroid Build Coastguard Worker	unset(LWS_WITH_EVENT_LIBS)
129*1c60b9acSAndroid Build Coastguard Workerendif()
130*1c60b9acSAndroid Build Coastguard Worker
131*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_SECURE_STREAMS_PROXY_API)
132*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWS_DSH 1)
133*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_UNIX_SOCK 1)
134*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SYS_SMD 1)
135*1c60b9acSAndroid Build Coastguard Workerendif()
136*1c60b9acSAndroid Build Coastguard Worker
137*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_WITH_NETWORK)
138*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_MQTT 0)
139*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_H1 0)
140*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_WS 0)
141*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_RAW 0)
142*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_EXTENSIONS 1)
143*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_SERVER 1)
144*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_CLIENT 1)
145*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP2 0)
146*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SOCKS5 0)
147*1c60b9acSAndroid Build Coastguard Worker	set(LWS_UNIX_SOCK 0)
148*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_PROXY 0)
149*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_PLUGINS 0)
150*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWSWS 0)
151*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_CGI 0)
152*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_RAW_PROXY 0)
153*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_PEER_LIMITS 0)
154*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_STREAM_COMPRESSION 0)
155*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_BROTLI 0)
156*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_POLL 0)
157*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SEQUENCER 0)
158*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_DBUS 0)
159*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_LWS_DSH 0)
160*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_THREADPOOL 0)
161*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SYS_SMD 0)
162*1c60b9acSAndroid Build Coastguard Workerendif()
163*1c60b9acSAndroid Build Coastguard Worker
164*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_CGI)
165*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SPAWN 1)
166*1c60b9acSAndroid Build Coastguard Workerendif()
167*1c60b9acSAndroid Build Coastguard Worker
168*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_STRUCT_SQLITE3)
169*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SQLITE3 1)
170*1c60b9acSAndroid Build Coastguard Workerendif()
171*1c60b9acSAndroid Build Coastguard Worker
172*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_HTTP_BASIC_AUTH)
173*1c60b9acSAndroid Build Coastguard Worker	# WWW_AUTHENTICATE used by basic auth is an "uncommon header"
174*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_UNCOMMON_HEADERS 1)
175*1c60b9acSAndroid Build Coastguard Workerendif()
176*1c60b9acSAndroid Build Coastguard Worker
177*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
178*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_GENCRYPTO 1)
179*1c60b9acSAndroid Build Coastguard Workerendif()
180*1c60b9acSAndroid Build Coastguard Worker
181*1c60b9acSAndroid Build Coastguard Workerif (APPLE)
182*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_DBUS 0)
183*1c60b9acSAndroid Build Coastguard Workerendif()
184*1c60b9acSAndroid Build Coastguard Worker
185*1c60b9acSAndroid Build Coastguard Workerif(NOT DEFINED CMAKE_BUILD_TYPE)
186*1c60b9acSAndroid Build Coastguard Worker	set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
187*1c60b9acSAndroid Build Coastguard Workerendif()
188*1c60b9acSAndroid Build Coastguard Worker
189*1c60b9acSAndroid Build Coastguard Workerif (LWS_PLAT_FREERTOS)
190*1c60b9acSAndroid Build Coastguard Worker	set(LWS_UNIX_SOCK 0)
191*1c60b9acSAndroid Build Coastguard Workerendif()
192*1c60b9acSAndroid Build Coastguard Worker
193*1c60b9acSAndroid Build Coastguard Workerif (LWS_PLAT_FREERTOS)
194*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_FTS 0)
195*1c60b9acSAndroid Build Coastguard Workerendif()
196*1c60b9acSAndroid Build Coastguard Worker
197*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_HTTP2)
198*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_H2 1)
199*1c60b9acSAndroid Build Coastguard Workerendif()
200*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_CGI)
201*1c60b9acSAndroid Build Coastguard Worker	set(LWS_ROLE_CGI 1)
202*1c60b9acSAndroid Build Coastguard Workerendif()
203*1c60b9acSAndroid Build Coastguard Worker
204*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_WS)
205*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_EXTENSIONS 1)
206*1c60b9acSAndroid Build Coastguard Workerendif()
207*1c60b9acSAndroid Build Coastguard Worker
208*1c60b9acSAndroid Build Coastguard Workerunset(LWS_WITH_LIBUV_INTERNAL)
209*1c60b9acSAndroid Build Coastguard Worker
210*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_LWSWS)
211*1c60b9acSAndroid Build Coastguard Worker message(STATUS "LWS_WITH_LWSWS --> Enabling LWS_WITH_PLUGINS and LWS_WITH_LIBUV")
212*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_PLUGINS 1)
213*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LIBUV 1)
214*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LIBUV_INTERNAL 1)
215*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_EVENT_LIBS 1) # implied by LIBUV_INTERNAL
216*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_ACCESS_LOG 1)
217*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_SYS_METRICS 1)
218*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LEJP 1)
219*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LEJP_CONF 1)
220*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_PEER_LIMITS 1)
221*1c60b9acSAndroid Build Coastguard Worker set(LWS_ROLE_RAW_PROXY 1)
222*1c60b9acSAndroid Build Coastguard Workerendif()
223*1c60b9acSAndroid Build Coastguard Worker
224*1c60b9acSAndroid Build Coastguard Worker# sshd plugin
225*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS)
226*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_GENCRYPTO 1)
227*1c60b9acSAndroid Build Coastguard Workerendif()
228*1c60b9acSAndroid Build Coastguard Worker
229*1c60b9acSAndroid Build Coastguard Workerif (LWS_ROLE_RAW_PROXY)
230*1c60b9acSAndroid Build Coastguard Worker set (LWS_WITH_CLIENT 1)
231*1c60b9acSAndroid Build Coastguard Worker set (LWS_WITH_SERVER 1)
232*1c60b9acSAndroid Build Coastguard Workerendif()
233*1c60b9acSAndroid Build Coastguard Worker
234*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_ACME)
235*1c60b9acSAndroid Build Coastguard Worker set (LWS_WITH_CLIENT 1)
236*1c60b9acSAndroid Build Coastguard Worker set (LWS_WITH_SERVER 1)
237*1c60b9acSAndroid Build Coastguard Worker set (LWS_WITH_JOSE 1)
238*1c60b9acSAndroid Build Coastguard Workerendif()
239*1c60b9acSAndroid Build Coastguard Worker
240*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_JOSE)
241*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LEJP 1)
242*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_GENCRYPTO 1)
243*1c60b9acSAndroid Build Coastguard Workerendif()
244*1c60b9acSAndroid Build Coastguard Worker
245*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS AND NOT LWS_WITH_LIBUV)
246*1c60b9acSAndroid Build Coastguard Workermessage(STATUS "LWS_WITH_PLUGINS --> Enabling LWS_WITH_LIBUV")
247*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_LIBUV 1)
248*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_EVENT_LIBS 1)
249*1c60b9acSAndroid Build Coastguard Workerendif()
250*1c60b9acSAndroid Build Coastguard Worker
251*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS OR LWS_WITH_CGI)
252*1c60b9acSAndroid Build Coastguard Worker	# sshd plugin
253*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_GENCRYPTO 1)
254*1c60b9acSAndroid Build Coastguard Workerendif()
255*1c60b9acSAndroid Build Coastguard Worker
256*1c60b9acSAndroid Build Coastguard Workerif (LWS_PLAT_FREERTOS)
257*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_SHARED OFF)
258*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SSL)
259*1c60b9acSAndroid Build Coastguard Worker  set(LWS_WITH_MBEDTLS ON)
260*1c60b9acSAndroid Build Coastguard Worker endif()
261*1c60b9acSAndroid Build Coastguard Worker  # set(LWS_WITHOUT_CLIENT ON)
262*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITHOUT_TESTAPPS ON)
263*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITHOUT_EXTENSIONS ON)
264*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_PLUGINS OFF)
265*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_RANGES ON)
266*1c60b9acSAndroid Build Coastguard Worker # this implies no pthreads in the lib
267*1c60b9acSAndroid Build Coastguard Worker set(LWS_MAX_SMP 1)
268*1c60b9acSAndroid Build Coastguard Worker set(LWS_HAVE_MALLOC 1)
269*1c60b9acSAndroid Build Coastguard Worker set(LWS_HAVE_REALLOC 1)
270*1c60b9acSAndroid Build Coastguard Worker set(LWS_HAVE_GETIFADDRS 1)
271*1c60b9acSAndroid Build Coastguard Worker set(LWS_WITH_CUSTOM_HEADERS 0)
272*1c60b9acSAndroid Build Coastguard Workerendif()
273*1c60b9acSAndroid Build Coastguard Worker
274*1c60b9acSAndroid Build Coastguard Worker#if (LWS_WITH_ESP32)
275*1c60b9acSAndroid Build Coastguard Worker# set(LWS_WITH_ZIP_FOPS 1)
276*1c60b9acSAndroid Build Coastguard Worker#endif()
277*1c60b9acSAndroid Build Coastguard Worker
278*1c60b9acSAndroid Build Coastguard Workerif (WIN32)
279*1c60b9acSAndroid Build Coastguard Worker#set(LWS_MAX_SMP 1)
280*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS)
281*1c60b9acSAndroid Build Coastguard Workerset(LWS_WITH_LIBUV_INTERNAL 1)
282*1c60b9acSAndroid Build Coastguard Workerendif()
283*1c60b9acSAndroid Build Coastguard Workerendif()
284*1c60b9acSAndroid Build Coastguard Worker
285*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITHOUT_SERVER)
286*1c60b9acSAndroid Build Coastguard Workerset(LWS_WITH_LWSWS OFF)
287*1c60b9acSAndroid Build Coastguard Workerendif()
288*1c60b9acSAndroid Build Coastguard Worker
289*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_LEJP_CONF)
290*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_DIR 1)
291*1c60b9acSAndroid Build Coastguard Workerendif()
292*1c60b9acSAndroid Build Coastguard Worker
293*1c60b9acSAndroid Build Coastguard Worker# confirm H1 relationships
294*1c60b9acSAndroid Build Coastguard Worker
295*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND LWS_ROLE_H2)
296*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "H2 requires LWS_ROLE_H1")
297*1c60b9acSAndroid Build Coastguard Workerendif()
298*1c60b9acSAndroid Build Coastguard Worker
299*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND LWS_ROLE_WS)
300*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "WS requires LWS_ROLE_H1")
301*1c60b9acSAndroid Build Coastguard Workerendif()
302*1c60b9acSAndroid Build Coastguard Worker
303*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND LWS_ROLE_CGI)
304*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "CGI requires LWS_ROLE_H1")
305*1c60b9acSAndroid Build Coastguard Workerendif()
306*1c60b9acSAndroid Build Coastguard Worker
307*1c60b9acSAndroid Build Coastguard Worker# confirm HTTP relationships
308*1c60b9acSAndroid Build Coastguard Worker
309*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_HTTP_PROXY)
310*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "LWS_WITH_LWSWS requires LWS_ROLE_H1")
311*1c60b9acSAndroid Build Coastguard Workerendif()
312*1c60b9acSAndroid Build Coastguard Worker
313*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_HTTP_PROXY)
314*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "LWS_WITH_HTTP_PROXY requires LWS_ROLE_H1")
315*1c60b9acSAndroid Build Coastguard Workerendif()
316*1c60b9acSAndroid Build Coastguard Worker
317*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_RANGES)
318*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "LWS_WITH_RANGES requires LWS_ROLE_H1")
319*1c60b9acSAndroid Build Coastguard Workerendif()
320*1c60b9acSAndroid Build Coastguard Worker
321*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_ACCESS_LOG)
322*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "LWS_WITH_ACCESS_LOG requires LWS_ROLE_H1")
323*1c60b9acSAndroid Build Coastguard Workerendif()
324*1c60b9acSAndroid Build Coastguard Worker
325*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_HTTP_PROXY AND (LWS_WITHOUT_CLIENT OR LWS_WITHOUT_SERVER))
326*1c60b9acSAndroid Build Coastguard Worker	message("You have to enable both client and server for http proxy")
327*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_HTTP_PROXY 0)
328*1c60b9acSAndroid Build Coastguard Workerendif()
329*1c60b9acSAndroid Build Coastguard Worker
330*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_WITHOUT_EXTENSIONS OR LWS_WITH_ZIP_FOPS)
331*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_ZLIB 1)
332*1c60b9acSAndroid Build Coastguard Workerendif()
333*1c60b9acSAndroid Build Coastguard Worker
334*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_SECURE_STREAMS)
335*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SECURE_STREAMS_SYS_AUTH_API_AMAZON_COM 1)
336*1c60b9acSAndroid Build Coastguard Workerendif()
337*1c60b9acSAndroid Build Coastguard Worker
338*1c60b9acSAndroid Build Coastguard Workerif (NOT (LWS_WITH_STATIC OR LWS_WITH_SHARED))
339*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "Makes no sense to compile with neither static nor shared libraries.")
340*1c60b9acSAndroid Build Coastguard Workerendif()
341*1c60b9acSAndroid Build Coastguard Worker
342*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITHOUT_DAEMONIZE OR WIN32)
343*1c60b9acSAndroid Build Coastguard Worker	set(LWS_NO_DAEMONIZE 1)
344*1c60b9acSAndroid Build Coastguard Workerendif()
345*1c60b9acSAndroid Build Coastguard Worker
346*1c60b9acSAndroid Build Coastguard Workerif (LWS_IPV6)
347*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_IPV6 1)
348*1c60b9acSAndroid Build Coastguard Workerendif()
349*1c60b9acSAndroid Build Coastguard Worker
350*1c60b9acSAndroid Build Coastguard Workerif (LWS_UNIX_SOCK)
351*1c60b9acSAndroid Build Coastguard Worker    set(LWS_WITH_UNIX_SOCK 1)
352*1c60b9acSAndroid Build Coastguard Workerendif()
353*1c60b9acSAndroid Build Coastguard Worker
354*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_MAX_SMP)
355*1c60b9acSAndroid Build Coastguard Worker	set(LWS_MAX_SMP 1)
356*1c60b9acSAndroid Build Coastguard Workerendif()
357*1c60b9acSAndroid Build Coastguard Workerif ("${LWS_MAX_SMP}" STREQUAL "")
358*1c60b9acSAndroid Build Coastguard Worker	set(LWS_MAX_SMP 1)
359*1c60b9acSAndroid Build Coastguard Workerendif()
360*1c60b9acSAndroid Build Coastguard Worker
361*1c60b9acSAndroid Build Coastguard Workerset(LWS_WITH_CLIENT 1)
362*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITHOUT_CLIENT)
363*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_CLIENT)
364*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SECURE_STREAMS 0)
365*1c60b9acSAndroid Build Coastguard Workerendif()
366*1c60b9acSAndroid Build Coastguard Workerset(LWS_WITH_SERVER 1)
367*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITHOUT_SERVER)
368*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_SERVER)
369*1c60b9acSAndroid Build Coastguard Workerendif()
370*1c60b9acSAndroid Build Coastguard Worker
371*1c60b9acSAndroid Build Coastguard Worker# using any abstract protocol enables LWS_WITH_ABSTRACT
372*1c60b9acSAndroid Build Coastguard Worker
373*1c60b9acSAndroid Build Coastguard Worker#if (LWS_WITH_SMTP)
374*1c60b9acSAndroid Build Coastguard Worker#	set(LWS_WITH_ABSTRACT 1)
375*1c60b9acSAndroid Build Coastguard Worker#endif()
376*1c60b9acSAndroid Build Coastguard Worker
377*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_WITH_EVLIB_PLUGINS AND (LWS_WITH_LIBEV AND LWS_WITH_LIBEVENT))
378*1c60b9acSAndroid Build Coastguard Worker	message(FATAL_ERROR "Sorry libev and libevent conflict with each others' namespace, you can only have one or the other")
379*1c60b9acSAndroid Build Coastguard Workerendif()
380*1c60b9acSAndroid Build Coastguard Worker
381*1c60b9acSAndroid Build Coastguard Workerif (LWS_SSL_SERVER_WITH_ECDH_CERT)
382*1c60b9acSAndroid Build Coastguard Worker	set(LWS_SSL_SERVER_WITH_ECDH_CERT 1)
383*1c60b9acSAndroid Build Coastguard Workerendif()
384*1c60b9acSAndroid Build Coastguard Worker
385*1c60b9acSAndroid Build Coastguard Worker# LWS_OPENSSL_SUPPORT deprecated... use LWS_WITH_TLS
386*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_SSL OR LWS_WITH_MBEDTLS)
387*1c60b9acSAndroid Build Coastguard Worker	set(LWS_OPENSSL_SUPPORT 1)
388*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_TLS 1)
389*1c60b9acSAndroid Build Coastguard Workerendif()
390*1c60b9acSAndroid Build Coastguard Worker
391*1c60b9acSAndroid Build Coastguard Workerif (NOT LWS_WITH_SSL)
392*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITHOUT_BUILTIN_SHA1 OFF)
393*1c60b9acSAndroid Build Coastguard Workerendif()
394*1c60b9acSAndroid Build Coastguard Worker# protocol plugins dont make any sense either
395*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS AND NOT LWS_WITH_SHARED)
396*1c60b9acSAndroid Build Coastguard Worker	message("Deselecting PLUGINS since building static")
397*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_PLUGINS 0)
398*1c60b9acSAndroid Build Coastguard Workerendif()
399*1c60b9acSAndroid Build Coastguard Worker
400*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_TLS_SESSIONS)
401*1c60b9acSAndroid Build Coastguard Worker	if (NOT LWS_WITH_NETWORK OR NOT LWS_WITH_CLIENT)
402*1c60b9acSAndroid Build Coastguard Worker		message("TLS_SESSIONS support requires client, disabling")
403*1c60b9acSAndroid Build Coastguard Worker		set(LWS_WITH_TLS_SESSIONS OFF)
404*1c60b9acSAndroid Build Coastguard Worker	endif()
405*1c60b9acSAndroid Build Coastguard Workerendif()
406*1c60b9acSAndroid Build Coastguard Worker
407*1c60b9acSAndroid Build Coastguard Worker# if we're only building static, we don't want event lib plugins
408*1c60b9acSAndroid Build Coastguard Worker#
409*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_EVLIB_PLUGINS AND NOT LWS_WITH_SHARED)
410*1c60b9acSAndroid Build Coastguard Worker	message("Deselecting EVLIB_PLUGINS since building static")
411*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_EVLIB_PLUGINS 0)
412*1c60b9acSAndroid Build Coastguard Workerendif()
413*1c60b9acSAndroid Build Coastguard Worker
414*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_PLUGINS OR (LWS_WITH_EVLIB_PLUGINS AND LWS_WITH_EVENT_LIBS))
415*1c60b9acSAndroid Build Coastguard Worker	set(LWS_WITH_PLUGINS_API 1)
416*1c60b9acSAndroid Build Coastguard Workerendif()
417*1c60b9acSAndroid Build Coastguard Worker
418*1c60b9acSAndroid Build Coastguard Workerif (WIN32 AND NOT LWS_EXT_PTHREAD_LIBRARIES)
419*1c60b9acSAndroid Build Coastguard Worker        set(LWS_MAX_SMP 1)
420*1c60b9acSAndroid Build Coastguard Worker        message("SMD requires pthreads")
421*1c60b9acSAndroid Build Coastguard Worker        set(LWS_WITH_SYS_SMD 0)
422*1c60b9acSAndroid Build Coastguard Workerendif()
423*1c60b9acSAndroid Build Coastguard Worker
424