#
# libwebsockets - small server side websockets and web server implementation
#
# Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
#
# This part of the CMakeLists.txt defines internal logic between options

if(IOS)
    set(LWS_DETECTED_PLAT_IOS 1)
endif()

if (LWS_WITH_SCHANNEL OR LWS_WITH_GNUTLS OR LWS_WITH_MBEDTLS OR LWS_WITH_BEARSSL)
       set(LWS_WITH_SSL 1)
endif()

# Workaround for ESP-IDF
# Detect ESP_PLATFORM environment flag, if exist, set LWS_WITH_ESP32.
# Otherwise the user may not be able to run configuration ESP-IDF in the first time.
#
# espressif-port patch: skip the ESP32 / FreeRTOS path when building
# for the IDF Linux target. ESP_PLATFORM is set on every IDF build
# (including --preview set-target linux), but the Linux target is a
# POSIX/glibc environment and the FreeRTOS plat shims pull in IDF's
# newlib platform_include — which uses `__assert_func` (newlib-only)
# and `<sys/features.h>` (newlib path), neither of which exists on
# glibc. Fall through to the upstream `plat/unix` path instead.
if (ESP_PLATFORM AND NOT (DEFINED IDF_TARGET AND IDF_TARGET STREQUAL "linux"))
	message(STATUS "ESP-IDF enabled")
	set(LWS_WITH_ESP32 ON)
	set(LWS_WITH_ZLIB OFF)
	set(LWS_HAVE_mbedtls_ssl_get_alpn_protocol 1)
else()
	set(LWS_WITH_ESP32_HELPER OFF)
endif()

if (LWS_WITH_ESP32)
	set(LWS_PLAT_FREERTOS 1)
endif()

if (LWS_PLAT_OPTEE)
	set(LWS_WITH_UDP 0)
endif()

# h3 is based on quic
if (LWS_WITH_HTTP3)
	set(LWS_ROLE_QUIC 1)
endif()

if (LWS_PLAT_FREERTOS OR (${CMAKE_SYSTEM_NAME} MATCHES "QNX"))
	message(STATUS "No LWS_WITH_DIR or LWS_WITH_LEJP_CONF")
	set(LWS_WITH_DIR OFF)
	set(LWS_WITH_LEJP_CONF OFF)
	message("LWS_WITH_DIR ${LWS_WITH_DIR}")
else()
	message(STATUS "Compiled with LWS_WITH_DIR and LWS_WITH_LEJP_CONF")
	set(LWS_WITH_DIR ON)
	set(LWS_WITH_LEJP_CONF ON)
endif()

if (LWS_FOR_GITOHASHI)
	set(LWS_WITH_THREADPOOL 1)
	set(LWS_WITH_HTTP2 1)
	set(LWS_UNIX_SOCK 1)
	set(LWS_WITH_HTTP_PROXY 1)
	set(LWS_WITH_FTS 1)
	set(LWS_WITH_DISKCACHE 1)
	set(LWS_WITH_LWSAC 1)
	set(LWS_WITH_LEJP_CONF 1)
	set(LWS_WITH_SPAWN 1)
	set(LWS_WITH_FSMOUNT 1)
	set(LWS_WITH_STRUCT_JSON 1)
	set(LWS_WITH_STRUCT_SQLITE3 1)
endif()

if(LWS_WITH_DISTRO_RECOMMENDED)
	set(LWS_WITH_HTTP2 1)				# selfcontained
	set(LWS_WITH_LWSWS 1)				# libuv
	set(LWS_WITH_CGI 1)				# selfcontained
	set(LWS_WITH_HTTP_STREAM_COMPRESSION 1)		# libz and brotli if avail
	set(LWS_IPV6 1)					# selfcontained
	set(LWS_WITH_ZIP_FOPS 1)			# libz
	set(LWS_WITH_SOCKS5 1)				# selfcontained
	set(LWS_WITH_RANGES 1)				# selfcontained
	set(LWS_WITH_ACME 1)				# selfcontained / tls
	set(LWS_WITH_SYS_METRICS 1)			# selfcontained
	set(LWS_WITH_GLIB 1)				# glib
	set(LWS_WITH_LIBUV 1)				# libuv
	set(LWS_WITH_LIBEV 1)				# libev
	set(LWS_WITH_LIBEVENT 1)			# libevent
	set(LWS_WITH_EVLIB_PLUGINS 1)			# event libraries created as plugins / individual packages
	set(LWS_WITHOUT_EXTENSIONS 0)			# libz
	set(LWS_ROLE_DBUS 1)				# dbus-related libs
	set(LWS_WITH_FTS 1)				# selfcontained
	set(LWS_WITH_THREADPOOL 1)			# pthreads
	set(LWS_UNIX_SOCK 1)				# selfcontained
	set(LWS_WITH_HTTP_PROXY 1)			# selfcontained
	set(LWS_WITH_DISKCACHE 1)			# selfcontained
	set(LWS_WITH_LWSAC 1)				# selfcontained
	set(LWS_WITH_LEJP_CONF 1)			# selfcontained
	set(LWS_WITH_PLUGINS_BUILTIN 1)			# selfcontained
	set(LWS_ROLE_RAW_PROXY 1)			# selfcontained
	set(LWS_WITH_GENCRYPTO 1)			# selfcontained / tls
	set(LWS_WITH_CBOR 1)				# selfcontained
	set(LWS_WITH_COSE 1)				# selfcontained
	set(LWS_WITH_JOSE 1)				# selfcontained
	set(LWS_WITH_STRUCT_JSON 1)			# selfcontained
	set(LWS_WITH_STRUCT_SQLITE3 1)			# sqlite3
	set(LWS_WITH_SPAWN 1)				# selfcontained
# libmount is problematic on Centos 8 / RHEL 8
#	set(LWS_WITH_FSMOUNT 1)
	set(LWS_ROLE_MQTT 1)				# selfcontained
	set(LWS_WITH_SECURE_STREAMS 1)			# selfcontained
	set(LWS_WITH_SECURE_STREAMS_PROXY_API 1)	# selfcontained
	set(LWS_WITH_DIR 1)				# selfcontained
	set(LWS_WITH_SELFDNS 1)				# selfcontained
endif()

if (LWS_WITH_SELFDNS)
	set(LWS_WITH_DHT 1)
	set(LWS_WITH_AUTHORITATIVE_DNS 1)
	set(LWS_WITH_DHT_BACKEND 1)
	set(LWS_WITH_ACME 1)
	set(LWS_WITH_DIR 1)
	set(LWS_WITH_TRANSPORT_SEQUENCER 1)
	set(LWS_WITH_SYS_ASYNC_DNS 1)
	set(LWS_WITH_SYS_ASYNC_DNS_DNSSEC 1)
	set(LWS_WITH_AUTH_SERVER 1)
	set(LWS_WITH_SYS_WHOIS 1)
endif()

if (LWS_WITH_AUTH_SERVER)
	set(LWS_WITH_QRCODEGEN 1)
	set(LWS_WITH_EMAIL 1)
endif()

# LWS_WITH_EVENT_LIBS is set if any event lib selected

if (LWS_WITH_LIBEV OR
    LWS_WITH_LIBUV OR
    LWS_WITH_LIBEVENT OR
    LWS_WITH_GLIB OR
    LWS_WITH_SDEVENT OR
    LWS_WITH_ULOOP)
	set(LWS_WITH_EVENT_LIBS 1)
else()
	unset(LWS_WITH_EVENT_LIBS)
endif()

if (LWS_WITH_SECURE_STREAMS_PROXY_API)
	set(LWS_WITH_LWS_DSH 1)
	set(LWS_WITH_UNIX_SOCK 1)
	set(LWS_WITH_SYS_SMD 1)
	set(LWS_WITH_SECURE_STREAMS 1)
endif()

if (LWS_WITH_DHT_BACKEND)
	set(LWS_WITH_DHT 1)
endif()

if (LWS_WITH_DHT)
	set(LWS_WITH_TRANSPORT_SEQUENCER 1)
endif()

if (LWS_WITH_TRANSPORT_SEQUENCER)
	set(LWS_WITH_LWS_DSH 1)
endif()

if (LWS_WITH_WEBRTC_MIXER)
	set(LWS_WITH_WEBRTC 1)
	if (NOT DEFINED LWS_WITH_ALSA)
		set(LWS_WITH_ALSA 1 CACHE BOOL "Enable alsa audio example" FORCE)
	endif()
	if (NOT DEFINED LWS_WITH_OPUS)
		set(LWS_WITH_OPUS 1 CACHE BOOL "Enable opus audio codec" FORCE)
	endif()
	if (NOT DEFINED LWS_WITH_GSTREAMER)
		set(LWS_WITH_GSTREAMER 1 CACHE BOOL "Enable gstreamer" FORCE)
	endif()
endif()

if (LWS_WITH_WEBRTC)
	set(LWS_WITH_UDP 1)
	set(LWS_WITH_DTLS 1)
	set(LWS_WITH_PLUGINS 1 CACHE BOOL "Enable plugins" FORCE)
	if (NOT DEFINED LWS_WITH_V4L2)
		set(LWS_WITH_V4L2 1)
	endif()
	if (NOT DEFINED LWS_WITH_LIBV4L2)
		set(LWS_WITH_LIBV4L2 1)
	endif()
	if (NOT DEFINED LWS_WITH_DRM)
		set(LWS_WITH_DRM 1)
	endif()
	set(LWS_WITH_GENCRYPTO 1)
	set(LWS_WITH_JOSE 1)
	set(LWS_WITH_NETWORK 1)
	set(LWS_WITH_CLIENT 1)
	if (NOT DEFINED LWS_WITH_ALSA)
		set(LWS_WITH_ALSA 1)
	endif()
	if (NOT DEFINED LWS_WITH_OPUS)
		set(LWS_WITH_OPUS 1)
	endif()
endif()


if (NOT LWS_WITH_NETWORK)
	set(LWS_ROLE_MQTT 0)
	set(LWS_ROLE_H1 0)
	set(LWS_ROLE_WS 0)
	set(LWS_ROLE_RAW 0)
	set(LWS_WITHOUT_EXTENSIONS 1)
	set(LWS_WITHOUT_SERVER 1)
	set(LWS_WITHOUT_CLIENT 1)
	set(LWS_WITH_HTTP2 0)
	set(LWS_WITH_SOCKS5 0)
	set(LWS_UNIX_SOCK 0)
	set(LWS_WITH_HTTP_PROXY 0)
	set(LWS_WITH_PLUGINS 0)
	set(LWS_WITH_LWSWS 0)
	set(LWS_WITH_CGI 0)
	set(LWS_ROLE_RAW_PROXY 0)
	set(LWS_WITH_PEER_LIMITS 0)
	set(LWS_WITH_HTTP_STREAM_COMPRESSION 0)
	set(LWS_WITH_HTTP_BROTLI 0)
	set(LWS_WITH_POLL 0)
	set(LWS_ROLE_DBUS 0)
	set(LWS_WITH_LWS_DSH 0)
	set(LWS_WITH_THREADPOOL 0)
	set(LWS_WITH_SYS_SMD 0)
	set(LWS_WITH_LHP 0)
	set(LWS_WITH_SPAWN 0)
	set(LWS_WITH_STUB 0)
endif()

if (LWS_WITH_CGI)
	set(LWS_WITH_SPAWN 1)
endif()

if (LWS_WITH_STUB)
	set(LWS_WITH_SPAWN 1)
endif()

if (LWS_WITH_STRUCT_SQLITE3)
	set(LWS_WITH_SQLITE3 1)
endif()

if (LWS_WITH_HTTP_BASIC_AUTH)
	# WWW_AUTHENTICATE used by basic auth is an "uncommon header"
	set(LWS_WITH_HTTP_UNCOMMON_HEADERS 1)
endif()

if (LWS_WITH_SECURE_STREAMS_AUTH_SIGV4)
	set(LWS_WITH_GENCRYPTO 1)
endif()

if (LWS_WITH_HTTP_DIGEST_AUTH)
	set(LWS_WITH_GENCRYPTO 1)
endif()

if (APPLE)
	set(LWS_ROLE_DBUS 0)
endif()

if(NOT DEFINED CMAKE_BUILD_TYPE)
	set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type")
endif()

if (LWS_PLAT_FREERTOS)
	set(LWS_UNIX_SOCK 0)
endif()

if (LWS_PLAT_FREERTOS)
	set(LWS_WITH_FTS 0)
endif()

if (LWS_WITH_HTTP2)
	set(LWS_ROLE_H2 1)
endif()
if (LWS_WITH_HTTP3)
	set(LWS_ROLE_H3 1)
	set(LWS_ROLE_WT 1)
endif()
if (LWS_WITH_CGI)
	set(LWS_ROLE_CGI 1)
endif()

if (NOT LWS_ROLE_WS)
	set(LWS_WITHOUT_EXTENSIONS 1)
endif()

unset(LWS_WITH_LIBUV_INTERNAL)

if (LWS_WITH_LWSWS)
 message(STATUS "LWS_WITH_LWSWS --> Enabling LWS_WITH_PLUGINS and LWS_WITH_LIBUV")
 set(LWS_WITH_PLUGINS 1)
 set(LWS_WITH_LIBUV 1)
 set(LWS_WITH_LIBUV_INTERNAL 1)
 set(LWS_WITH_EVENT_LIBS 1) # implied by LIBUV_INTERNAL
 set(LWS_WITH_ACCESS_LOG 1)
 set(LWS_WITH_SYS_METRICS 1)
 set(LWS_WITH_LEJP 1)
 set(LWS_WITH_LEJP_CONF 1)
 set(LWS_WITH_PEER_LIMITS 1)
 set(LWS_ROLE_RAW_PROXY 1)
endif()

# sshd plugin
if (LWS_WITH_PLUGINS)
 set(LWS_WITH_GENCRYPTO 1)
endif()

if (LWS_ROLE_RAW_PROXY)
 set (LWS_WITH_CLIENT 1)
 set (LWS_WITH_SERVER 1)
endif()

if (LWS_WITH_ACME)
 set (LWS_WITH_CLIENT 1)
 set (LWS_WITH_SERVER 1)
 set (LWS_WITH_JOSE 1)
 set (LWS_WITH_STRUCT_JSON 1)
endif()

if (LWS_WITH_JOSE)
 set(LWS_WITH_LEJP 1)
 set(LWS_WITH_GENCRYPTO 1)
endif()

if (LWS_WITH_PLUGINS AND NOT LWS_WITH_LIBUV)
message(STATUS "LWS_WITH_PLUGINS --> Enabling LWS_WITH_LIBUV")
 set(LWS_WITH_LIBUV 1)
 set(LWS_WITH_EVENT_LIBS 1)
endif()

if (LWS_WITH_PLUGINS OR LWS_WITH_CGI)
	# sshd plugin
 set(LWS_WITH_GENCRYPTO 1)
endif()

if (LWS_PLAT_FREERTOS)
 set(LWS_WITH_SHARED OFF)
 if (LWS_WITH_SSL)
  set(LWS_WITH_MBEDTLS ON)
 endif()
  # set(LWS_WITHOUT_CLIENT ON)
 set(LWS_WITHOUT_TESTAPPS ON)
 set(LWS_WITHOUT_EXTENSIONS ON)
 set(LWS_WITH_PLUGINS OFF)
 set(LWS_WITH_RANGES ON)
 # this implies no pthreads in the lib
 set(LWS_MAX_SMP 1)
 set(LWS_HAVE_MALLOC 1)
 set(LWS_HAVE_REALLOC 1)
 set(LWS_HAVE_GETIFADDRS 1)
 set(LWS_WITH_CUSTOM_HEADERS 0)
 set(LWS_WITH_STUB 0)
 # FreeRTOS can't fork/exec; STUB defaults ON and implies SPAWN above before
 # this point disables it, leaving SPAWN (and its siginfo_t typedef) on. Force
 # it off here - there's no spawn support on FreeRTOS anyway.
 set(LWS_WITH_SPAWN 0)
endif()

if (LWS_WITHOUT_TESTAPPS)
	set(LWS_WITH_MINIMAL_EXAMPLES 0)
endif()

#if (LWS_WITH_ESP32)
# set(LWS_WITH_ZIP_FOPS 1)
#endif()

if (WIN32)
#set(LWS_MAX_SMP 1)
if (LWS_WITH_PLUGINS)
set(LWS_WITH_LIBUV_INTERNAL 1)
endif()
endif()

if (LWS_WITHOUT_SERVER)
set(LWS_WITH_LWSWS OFF)
endif()

if (LWS_WITH_LEJP_CONF)
	set(LWS_WITH_DIR 1)
endif()

# confirm H1 relationships

if (NOT LWS_ROLE_H1 AND LWS_ROLE_H2)
	message(FATAL_ERROR "H2 requires LWS_ROLE_H1")
endif()

if (NOT LWS_ROLE_H1 AND LWS_ROLE_WS)
	message(FATAL_ERROR "WS requires LWS_ROLE_H1")
endif()

if (NOT LWS_ROLE_H1 AND LWS_ROLE_CGI)
	message(FATAL_ERROR "CGI requires LWS_ROLE_H1")
endif()

# confirm HTTP relationships

if (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_HTTP_PROXY)
	message(FATAL_ERROR "LWS_WITH_LWSWS requires LWS_ROLE_H1")
endif()

if (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_HTTP_PROXY)
	message(FATAL_ERROR "LWS_WITH_HTTP_PROXY requires LWS_ROLE_H1")
endif()

if (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_RANGES)
	message(FATAL_ERROR "LWS_WITH_RANGES requires LWS_ROLE_H1")
endif()

if (NOT LWS_ROLE_H1 AND NOT LWS_ROLE_H2 AND LWS_WITH_ACCESS_LOG)
	message(FATAL_ERROR "LWS_WITH_ACCESS_LOG requires LWS_ROLE_H1")
endif()

if (LWS_WITH_HTTP_PROXY AND (LWS_WITHOUT_CLIENT OR LWS_WITHOUT_SERVER))
	message("You have to enable both client and server for http proxy")
	set(LWS_WITH_HTTP_PROXY 0)
endif()

if (NOT LWS_WITHOUT_EXTENSIONS OR LWS_WITH_ZIP_FOPS)
	set(LWS_WITH_ZLIB 1)
endif()

if (NOT (LWS_WITH_STATIC OR LWS_WITH_SHARED))
	message(FATAL_ERROR "Makes no sense to compile with neither static nor shared libraries.")
endif()

if (LWS_WITHOUT_DAEMONIZE OR WIN32)
	set(LWS_NO_DAEMONIZE 1)
endif()

if (LWS_IPV4)
    set(LWS_WITH_IPV4 1)
endif()
if (LWS_IPV6)
	set(LWS_WITH_IPV6 1)
endif()

if (LWS_UNIX_SOCK)
    set(LWS_WITH_UNIX_SOCK 1)
endif()

if (NOT LWS_MAX_SMP)
	set(LWS_MAX_SMP 1)
endif()
if ("${LWS_MAX_SMP}" STREQUAL "")
	set(LWS_MAX_SMP 1)
endif()

set(LWS_WITH_CLIENT 1)
if (LWS_WITHOUT_CLIENT)
	set(LWS_WITH_CLIENT OFF)
	set(LWS_WITH_SECURE_STREAMS 0)
	set(LWS_WITH_SECURE_STREAMS_PROXY_API 0)
	set(LWS_WITH_LHP 0)
endif()
set(LWS_WITH_SERVER 1)
if (LWS_WITHOUT_SERVER)
	set(LWS_WITH_SERVER OFF)
endif()

if (LWS_WITH_SERVER)
else()
	set(LWS_WITH_CGI 0)
	set(LWS_ROLE_CGI 0)
endif()

if (LWS_WITH_UPNG)
	set(LWS_WITH_GZINFLATE 1)
endif()

if (LWS_WITH_OTA)
	set(LWS_WITH_JOSE 1)
	set(LWS_WITH_GENCRYPTO 1)
	set(LWS_WITH_GZINFATE 1)
endif()

if (LWS_WITH_LHP)
	set(LWS_WITH_CLIENT 1)
	set(LWS_WITH_SECURE_STREAMS 1)
endif()

if (LWS_WITH_AUTHORITATIVE_DNS)
	set(LWS_WITH_GENCRYPTO 1)
	set(LWS_WITH_JOSE 1)
	if (LWS_WITH_DHT)
		# dht_dnssec_monitor plugin requires these
		set(LWS_WITH_DIR 1)
		set(LWS_WITH_SPAWN 1)
	endif()
endif()

if (LWS_WITH_SYS_ASYNC_DNS_DNSSEC)
	set(LWS_WITH_SYS_ASYNC_DNS 1)
	set(LWS_WITH_GENCRYPTO 1)
endif()

# using any abstract protocol enables LWS_WITH_ABSTRACT

#if (LWS_WITH_SMTP)
#	set(LWS_WITH_ABSTRACT 1)
#endif()

if (NOT LWS_WITH_EVLIB_PLUGINS AND (LWS_WITH_LIBEV AND LWS_WITH_LIBEVENT))
	message(FATAL_ERROR "Sorry libev and libevent conflict with each others' namespace, you can only have one or the other")
endif()

if (LWS_SSL_SERVER_WITH_ECDH_CERT)
	set(LWS_SSL_SERVER_WITH_ECDH_CERT 1)
endif()

# LWS_OPENSSL_SUPPORT deprecated... use LWS_WITH_TLS
if (LWS_WITH_SSL OR LWS_WITH_MBEDTLS OR LWS_WITH_BEARSSL)
	set(LWS_OPENSSL_SUPPORT 1)
	set(LWS_WITH_TLS 1)
endif()

if (NOT LWS_WITH_SSL)
	set(LWS_WITHOUT_BUILTIN_SHA1 OFF)
endif()
# protocol plugins dont make any sense either
if (LWS_WITH_PLUGINS AND NOT LWS_WITH_SHARED)
	message("Deselecting PLUGINS since building static")
	set(LWS_WITH_PLUGINS 0)
endif()

if (LWS_WITH_TLS_SESSIONS)
	if (NOT LWS_WITH_NETWORK OR NOT LWS_WITH_CLIENT)
		message("TLS_SESSIONS support requires client, disabling")
		set(LWS_WITH_TLS_SESSIONS OFF)
	endif()
endif()

# if we're only building static, we don't want event lib plugins
#
if (LWS_WITH_EVLIB_PLUGINS AND NOT LWS_WITH_SHARED)
	message("Deselecting EVLIB_PLUGINS since building static")
	set(LWS_WITH_EVLIB_PLUGINS 0)
endif()

if (LWS_WITH_PLUGINS OR (LWS_WITH_EVLIB_PLUGINS AND LWS_WITH_EVENT_LIBS))
	set(LWS_WITH_PLUGINS_API 1)
endif()

if (WIN32 AND NOT LWS_EXT_PTHREAD_LIBRARIES)
        set(LWS_MAX_SMP 1)
        message("SMD requires pthreads")
        set(LWS_WITH_SYS_SMD 0)
endif()

if (LWS_WITH_ASYNC_QUEUE)
	set(LWS_ROLE_H1 1)
endif()

#
# Make sure any final implied 'with' selections reset the corresponding 'without'
# guards so scripts checking 'NOT LWS_WITHOUT_x' correctly evaluate to true.
#
if (LWS_WITH_CLIENT)
	set(LWS_WITHOUT_CLIENT 0)
endif()
if (LWS_WITH_SERVER)
	set(LWS_WITHOUT_SERVER 0)
endif()
