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