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 25*1c60b9acSAndroid Build Coastguard Workerinclude_directories(.) 26*1c60b9acSAndroid Build Coastguard Worker 27*1c60b9acSAndroid Build Coastguard Workerif (LWS_WITH_CLIENT) 28*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 29*1c60b9acSAndroid Build Coastguard Worker secure-streams/secure-streams.c 30*1c60b9acSAndroid Build Coastguard Worker secure-streams/policy-common.c 31*1c60b9acSAndroid Build Coastguard Worker secure-streams/system/captive-portal-detect/captive-portal-detect.c 32*1c60b9acSAndroid Build Coastguard Worker secure-streams/protocols/ss-raw.c 33*1c60b9acSAndroid Build Coastguard Worker ) 34*1c60b9acSAndroid Build Coastguard Worker if (NOT LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY) 35*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 36*1c60b9acSAndroid Build Coastguard Worker secure-streams/policy-json.c 37*1c60b9acSAndroid Build Coastguard Worker secure-streams/system/fetch-policy/fetch-policy.c 38*1c60b9acSAndroid Build Coastguard Worker ) 39*1c60b9acSAndroid Build Coastguard Worker endif() 40*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_H1) 41*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 42*1c60b9acSAndroid Build Coastguard Worker secure-streams/protocols/ss-h1.c 43*1c60b9acSAndroid Build Coastguard Worker ) 44*1c60b9acSAndroid Build Coastguard Worker endif() 45*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_H2) 46*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 47*1c60b9acSAndroid Build Coastguard Worker secure-streams/protocols/ss-h2.c 48*1c60b9acSAndroid Build Coastguard Worker ) 49*1c60b9acSAndroid Build Coastguard Worker endif() 50*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_WS) 51*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 52*1c60b9acSAndroid Build Coastguard Worker secure-streams/protocols/ss-ws.c 53*1c60b9acSAndroid Build Coastguard Worker ) 54*1c60b9acSAndroid Build Coastguard Worker endif() 55*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_MQTT) 56*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 57*1c60b9acSAndroid Build Coastguard Worker secure-streams/protocols/ss-mqtt.c 58*1c60b9acSAndroid Build Coastguard Worker ) 59*1c60b9acSAndroid Build Coastguard Worker endif() 60*1c60b9acSAndroid Build Coastguard Worker 61*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SECURE_STREAMS_PROXY_API) 62*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 63*1c60b9acSAndroid Build Coastguard Worker secure-streams/secure-streams-serialize.c 64*1c60b9acSAndroid Build Coastguard Worker secure-streams/secure-streams-client.c 65*1c60b9acSAndroid Build Coastguard Worker ) 66*1c60b9acSAndroid Build Coastguard Worker endif() 67*1c60b9acSAndroid Build Coastguard Worker 68*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SECURE_STREAMS_PROXY_API) 69*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 70*1c60b9acSAndroid Build Coastguard Worker secure-streams/secure-streams-process.c 71*1c60b9acSAndroid Build Coastguard Worker ) 72*1c60b9acSAndroid Build Coastguard Worker endif() 73*1c60b9acSAndroid Build Coastguard Worker 74*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SECURE_STREAMS_SYS_AUTH_API_AMAZON_COM AND 75*1c60b9acSAndroid Build Coastguard Worker LWS_WITH_SYS_STATE) 76*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 77*1c60b9acSAndroid Build Coastguard Worker secure-streams/system/auth-api.amazon.com/auth.c 78*1c60b9acSAndroid Build Coastguard Worker ) 79*1c60b9acSAndroid Build Coastguard Worker endif() 80*1c60b9acSAndroid Build Coastguard Worker 81*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SECURE_STREAMS_AUTH_SIGV4) 82*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES 83*1c60b9acSAndroid Build Coastguard Worker secure-streams/system/auth-sigv4/sign.c 84*1c60b9acSAndroid Build Coastguard Worker ) 85*1c60b9acSAndroid Build Coastguard Worker endif() 86*1c60b9acSAndroid Build Coastguard Worker 87*1c60b9acSAndroid Build Coastguard Worker 88*1c60b9acSAndroid Build Coastguard Worker if (LWS_WITH_SECURE_STREAMS_CPP) 89*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES secure-streams/cpp/lss.cxx) 90*1c60b9acSAndroid Build Coastguard Worker 91*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_H1 OR LWS_ROLE_H2) 92*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES secure-streams/cpp/lssFile.cxx) 93*1c60b9acSAndroid Build Coastguard Worker endif() 94*1c60b9acSAndroid Build Coastguard Worker 95*1c60b9acSAndroid Build Coastguard Worker if (LWS_ROLE_WS) 96*1c60b9acSAndroid Build Coastguard Worker list(APPEND SOURCES secure-streams/cpp/lssMsg.cxx) 97*1c60b9acSAndroid Build Coastguard Worker endif() 98*1c60b9acSAndroid Build Coastguard Worker endif() 99*1c60b9acSAndroid Build Coastguard Worker 100*1c60b9acSAndroid Build Coastguard Worker # 101*1c60b9acSAndroid Build Coastguard Worker # Helper function for adding a secure stream plugin 102*1c60b9acSAndroid Build Coastguard Worker # 103*1c60b9acSAndroid Build Coastguard Worker macro(create_ss_plugin NAME S2 S3 S4 S5 S6) 104*1c60b9acSAndroid Build Coastguard Worker 105*1c60b9acSAndroid Build Coastguard Worker set(SSP_SRCS) 106*1c60b9acSAndroid Build Coastguard Worker set(SSP_PUBLIC_HDR) 107*1c60b9acSAndroid Build Coastguard Worker set(SSP_HDR) 108*1c60b9acSAndroid Build Coastguard Worker 109*1c60b9acSAndroid Build Coastguard Worker if ("${S2}" STREQUAL "") 110*1c60b9acSAndroid Build Coastguard Worker else() 111*1c60b9acSAndroid Build Coastguard Worker list(APPEND SSP_SRCS plugins/${NAME}/${S2}) 112*1c60b9acSAndroid Build Coastguard Worker endif() 113*1c60b9acSAndroid Build Coastguard Worker if ("${S3}" STREQUAL "") 114*1c60b9acSAndroid Build Coastguard Worker else() 115*1c60b9acSAndroid Build Coastguard Worker list(APPEND SSP_SRCS plugins/${NAME}/${S3}) 116*1c60b9acSAndroid Build Coastguard Worker endif() 117*1c60b9acSAndroid Build Coastguard Worker if ("${S4}" STREQUAL "") 118*1c60b9acSAndroid Build Coastguard Worker else() 119*1c60b9acSAndroid Build Coastguard Worker list(APPEND SSP_SRCS plugins/${NAME}/${S4}) 120*1c60b9acSAndroid Build Coastguard Worker endif() 121*1c60b9acSAndroid Build Coastguard Worker if ("${S5}" STREQUAL "") 122*1c60b9acSAndroid Build Coastguard Worker else() 123*1c60b9acSAndroid Build Coastguard Worker list(APPEND SSP_SRCS plugins/${NAME}/${S5}) 124*1c60b9acSAndroid Build Coastguard Worker endif() 125*1c60b9acSAndroid Build Coastguard Worker if ("${S6}" STREQUAL "") 126*1c60b9acSAndroid Build Coastguard Worker else() 127*1c60b9acSAndroid Build Coastguard Worker list(APPEND SSP_SRCS plugins/${NAME}/${S6}) 128*1c60b9acSAndroid Build Coastguard Worker endif() 129*1c60b9acSAndroid Build Coastguard Worker 130*1c60b9acSAndroid Build Coastguard Worker source_group("Headers Private" FILES ${SSP_HDR}) 131*1c60b9acSAndroid Build Coastguard Worker source_group("Sources" FILES ${SSP_SRCS}) 132*1c60b9acSAndroid Build Coastguard Worker 133*1c60b9acSAndroid Build Coastguard Worker add_library( ${NAME} STATIC 134*1c60b9acSAndroid Build Coastguard Worker ${SSP_HDR} ${SSP_PUBLIC_HDR} ${SSP_SRCS} ) 135*1c60b9acSAndroid Build Coastguard Worker 136*1c60b9acSAndroid Build Coastguard Worker target_include_directories(${NAME} PRIVATE "${LWS_LIB_INCLUDES}" ${LWS_LIB_BUILD_INC_PATHS}) 137*1c60b9acSAndroid Build Coastguard Worker 138*1c60b9acSAndroid Build Coastguard Worker if (NOT LWS_PLAT_FREERTOS) 139*1c60b9acSAndroid Build Coastguard Worker add_dependencies(${NAME} websockets_shared) 140*1c60b9acSAndroid Build Coastguard Worker endif() 141*1c60b9acSAndroid Build Coastguard Worker list(APPEND SS_PLUGINS_LIST ${NAME}) 142*1c60b9acSAndroid Build Coastguard Worker endmacro() 143*1c60b9acSAndroid Build Coastguard Worker 144*1c60b9acSAndroid Build Coastguard Worker # create_ss_plugin(ssp-h1url "h1url.c" "" "" "" "") 145*1c60b9acSAndroid Build Coastguard Workerendif() 146*1c60b9acSAndroid Build Coastguard Worker 147*1c60b9acSAndroid Build Coastguard Worker# 148*1c60b9acSAndroid Build Coastguard Worker# Keep explicit parent scope exports at end 149*1c60b9acSAndroid Build Coastguard Worker# 150*1c60b9acSAndroid Build Coastguard Worker 151*1c60b9acSAndroid Build Coastguard Workerexports_to_parent_scope() 152