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