mirror of
https://libwebsockets.org/repo/libwebsockets
synced 2024-12-04 22:07:14 +00:00
2cfa260e62
This is a NOP for existing usecases. At the moment the only implemented transport for serialized SS is wsi, it's typically used with Unix Domain Sockets, but it also works over tcp the same. It generalizes the interface between serialized chunks and the transport, separately for client and proxy. The wsi transport is migrated to use the new transport ops structs. It will then be possible to "bring your own transport", so long as it is reliable, and in-order, both for proxy and client / sspc. We also adapt minimal-secure-streams-binance to build the -client variant via SS proxy as well. LWS_ONLY_SSPC is added so libwebsockets can be produced with just sspc client support even for tiny targets. A new embedded minimal example for rpi pico is also provided that demonstrates using Serialized SS over a UART to an SS proxy, to implement the SS Binance example on the pico, even though it has no networking itself.
63 lines
2.7 KiB
CMake
63 lines
2.7 KiB
CMake
# This is a copy of <PICO_SDK_PATH>/external/pico_sdk_import.cmake
|
|
|
|
# This can be dropped into an external project to help locate this SDK
|
|
# It should be include()ed prior to project()
|
|
|
|
if (DEFINED ENV{PICO_SDK_PATH} AND (NOT PICO_SDK_PATH))
|
|
set(PICO_SDK_PATH $ENV{PICO_SDK_PATH})
|
|
message("Using PICO_SDK_PATH from environment ('${PICO_SDK_PATH}')")
|
|
endif ()
|
|
|
|
if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT} AND (NOT PICO_SDK_FETCH_FROM_GIT))
|
|
set(PICO_SDK_FETCH_FROM_GIT $ENV{PICO_SDK_FETCH_FROM_GIT})
|
|
message("Using PICO_SDK_FETCH_FROM_GIT from environment ('${PICO_SDK_FETCH_FROM_GIT}')")
|
|
endif ()
|
|
|
|
if (DEFINED ENV{PICO_SDK_FETCH_FROM_GIT_PATH} AND (NOT PICO_SDK_FETCH_FROM_GIT_PATH))
|
|
set(PICO_SDK_FETCH_FROM_GIT_PATH $ENV{PICO_SDK_FETCH_FROM_GIT_PATH})
|
|
message("Using PICO_SDK_FETCH_FROM_GIT_PATH from environment ('${PICO_SDK_FETCH_FROM_GIT_PATH}')")
|
|
endif ()
|
|
|
|
set(PICO_SDK_PATH "${PICO_SDK_PATH}" CACHE PATH "Path to the Raspberry Pi Pico SDK")
|
|
set(PICO_SDK_FETCH_FROM_GIT "${PICO_SDK_FETCH_FROM_GIT}" CACHE BOOL "Set to ON to fetch copy of SDK from git if not otherwise locatable")
|
|
set(PICO_SDK_FETCH_FROM_GIT_PATH "${PICO_SDK_FETCH_FROM_GIT_PATH}" CACHE FILEPATH "location to download SDK")
|
|
|
|
if (NOT PICO_SDK_PATH)
|
|
if (PICO_SDK_FETCH_FROM_GIT)
|
|
include(FetchContent)
|
|
set(FETCHCONTENT_BASE_DIR_SAVE ${FETCHCONTENT_BASE_DIR})
|
|
if (PICO_SDK_FETCH_FROM_GIT_PATH)
|
|
get_filename_component(FETCHCONTENT_BASE_DIR "${PICO_SDK_FETCH_FROM_GIT_PATH}" REALPATH BASE_DIR "${CMAKE_SOURCE_DIR}")
|
|
endif ()
|
|
FetchContent_Declare(
|
|
pico_sdk
|
|
GIT_REPOSITORY https://github.com/raspberrypi/pico-sdk
|
|
GIT_TAG master
|
|
)
|
|
if (NOT pico_sdk)
|
|
message("Downloading Raspberry Pi Pico SDK")
|
|
FetchContent_Populate(pico_sdk)
|
|
set(PICO_SDK_PATH ${pico_sdk_SOURCE_DIR})
|
|
endif ()
|
|
set(FETCHCONTENT_BASE_DIR ${FETCHCONTENT_BASE_DIR_SAVE})
|
|
else ()
|
|
message(FATAL_ERROR
|
|
"SDK location was not specified. Please set PICO_SDK_PATH or set PICO_SDK_FETCH_FROM_GIT to on to fetch from git."
|
|
)
|
|
endif ()
|
|
endif ()
|
|
|
|
get_filename_component(PICO_SDK_PATH "${PICO_SDK_PATH}" REALPATH BASE_DIR "${CMAKE_BINARY_DIR}")
|
|
if (NOT EXISTS ${PICO_SDK_PATH})
|
|
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' not found")
|
|
endif ()
|
|
|
|
set(PICO_SDK_INIT_CMAKE_FILE ${PICO_SDK_PATH}/pico_sdk_init.cmake)
|
|
if (NOT EXISTS ${PICO_SDK_INIT_CMAKE_FILE})
|
|
message(FATAL_ERROR "Directory '${PICO_SDK_PATH}' does not appear to contain the Raspberry Pi Pico SDK")
|
|
endif ()
|
|
|
|
set(PICO_SDK_PATH ${PICO_SDK_PATH} CACHE PATH "Path to the Raspberry Pi Pico SDK" FORCE)
|
|
|
|
include(${PICO_SDK_INIT_CMAKE_FILE})
|