Merge pull request 'Pico sdk fixes' (#218) from pico_sdk into master

Reviewed-on: #218
This commit was merged in pull request #218.
This commit is contained in:
2026-09-06 13:22:29 +03:00
+27 -20
View File
@@ -65,13 +65,17 @@ set(PIP_DLL_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "")
# Options
option(ICU "ICU support for convert codepages" OFF)
option(STD_IOSTREAM "Building with std iostream operators support" OFF)
option(INTROSPECTION "Build with introspection" OFF)
option(TESTS "Build tests" OFF)
option(TESTS_RUN "Run tests before install step" OFF)
option(COVERAGE "Build project with coverage info" OFF)
function(pip_feature_flag NAME)
# pip_feature_flag(NAME DESCRIPTION DEFAULT [DEPENDENCY...])
# DEFAULT is ON/OFF, DEPENDENCY is a name of another feature flag this one requires.
function(pip_feature_flag NAME DESCRIPTION DEFAULT)
if(NOT DEFAULT MATCHES "^(ON|OFF|TRUE|FALSE)$")
message(FATAL_ERROR "pip_feature_flag: invalid default '${DEFAULT}' for ${NAME}")
endif()
set(_deps ${ARGN})
option(${NAME} "Feature flag" ON)
option(${NAME} "${DESCRIPTION}" ${DEFAULT})
list(APPEND PIP_FEATURE_FLAGS "${NAME}")
set(PIP_FEATURE_FLAGS "${PIP_FEATURE_FLAGS}" PARENT_SCOPE)
set(PIP_FEATURE_DEPS_${NAME} "${_deps}" PARENT_SCOPE)
@@ -96,23 +100,23 @@ macro(pip_resolve_feature_flags)
endmacro()
# Base flags (no dependencies)
pip_feature_flag(PIP_HAS_FILESYSTEM)
pip_feature_flag(PIP_HAS_THREADS)
pip_feature_flag(PIP_HAS_SOCKET)
pip_feature_flag(PIP_HAS_FFT)
pip_feature_flag(PIP_HAS_SERIAL)
pip_feature_flag(PIP_BUILD_IO_UTILS)
pip_feature_flag(PIP_HAS_FILESYSTEM "Filesystem support" ON)
pip_feature_flag(PIP_HAS_THREADS "Threads (std::thread) support" ON)
pip_feature_flag(PIP_HAS_SOCKET "Sockets support" ON)
pip_feature_flag(PIP_HAS_FFT "FFT support" ON)
pip_feature_flag(PIP_HAS_SERIAL "Serial port (libusb) support" ON)
pip_feature_flag(PIP_BUILD_IO_UTILS "Build io_utils module" ON)
# Dependent flags
pip_feature_flag(PIP_HAS_DYNLIB PIP_HAS_FILESYSTEM)
pip_feature_flag(PIP_HAS_PROCESS PIP_HAS_THREADS)
pip_feature_flag(INTROSPECTION PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_CONSOLE PIP_HAS_THREADS)
pip_feature_flag(PIP_BUILD_FFTW PIP_HAS_FFT)
pip_feature_flag(PIP_BUILD_HTTP_CLIENT PIP_HAS_THREADS)
pip_feature_flag(PIP_BUILD_HTTP_SERVER PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_MQTT_CLIENT PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_CLIENT_SERVER PIP_HAS_THREADS PIP_HAS_SOCKET PIP_BUILD_IO_UTILS)
pip_feature_flag(PIP_BUILD_CLOUD PIP_HAS_THREADS PIP_HAS_SOCKET PIP_BUILD_IO_UTILS)
pip_feature_flag(PIP_HAS_DYNLIB "Dynamic library loading (dlopen) support" ON PIP_HAS_FILESYSTEM)
pip_feature_flag(PIP_HAS_PROCESS "Process spawning support" ON PIP_HAS_THREADS)
pip_feature_flag(INTROSPECTION "Build with introspection" OFF PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_CONSOLE "Build console module" ON PIP_HAS_THREADS)
pip_feature_flag(PIP_BUILD_FFTW "Build fftw module" ON PIP_HAS_FFT)
pip_feature_flag(PIP_BUILD_HTTP_CLIENT "Build http_client module" ON PIP_HAS_THREADS)
pip_feature_flag(PIP_BUILD_HTTP_SERVER "Build http_server module" ON PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_MQTT_CLIENT "Build mqtt_client module" ON PIP_HAS_THREADS PIP_HAS_SOCKET)
pip_feature_flag(PIP_BUILD_CLIENT_SERVER "Build client_server module" ON PIP_HAS_THREADS PIP_HAS_SOCKET PIP_BUILD_IO_UTILS)
pip_feature_flag(PIP_BUILD_CLOUD "Build cloud module" ON PIP_HAS_THREADS PIP_HAS_SOCKET PIP_BUILD_IO_UTILS)
option(PIP_FFTW_F "Support fftw module for float" ON)
option(PIP_FFTW_L "Support fftw module for long double" ON)
option(PIP_FFTW_Q "Support fftw module for quad double" OFF)
@@ -145,7 +149,10 @@ set(PIP_SRC_MODULES "console;crypt;compress;usb;fftw;opencl;io_utils;client_serv
foreach(_m ${PIP_SRC_MODULES})
set(PIP_MSG_${_m} "no")
string(TOUPPER "${_m}" _mu)
option(PIP_BUILD_${_mu} "Build \"${_m}\" module" ON)
list(FIND PIP_FEATURE_FLAGS "PIP_BUILD_${_mu}" _ff_idx)
if(_ff_idx EQUAL -1)
option(PIP_BUILD_${_mu} "Build \"${_m}\" module" ON)
endif()
endforeach()
macro(pip_module NAME LIBS LABEL INCLUDES SOURCES MSG)