Merge branch 'master' into pico_sdk

This commit is contained in:
2026-03-29 12:28:36 +03:00
359 changed files with 56129 additions and 6404 deletions

View File

@@ -5,9 +5,9 @@ if (POLICY CMP0177)
endif()
project(PIP)
set(PIP_MAJOR 5)
set(PIP_MINOR 5)
set(PIP_REVISION 2)
set(PIP_SUFFIX )
set(PIP_MINOR 7)
set(PIP_REVISION 0)
set(PIP_SUFFIX _beta)
set(PIP_COMPANY SHS)
set(PIP_DOMAIN org.SHS)
@@ -67,13 +67,15 @@ set(PIP_DLL_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE STRING "")
option(ICU "ICU support for convert codepages" ${_ICU_DEFAULT})
option(STD_IOSTREAM "Building with std iostream operators support" OFF)
option(INTROSPECTION "Build with introspection" OFF)
option(TESTS "Build tests and perform their before install step" OFF)
option(TESTS "Build tests" OFF)
option(TESTS_RUN "Run tests before install step" OFF)
option(COVERAGE "Build project with coverage info" OFF)
option(PIP_NO_FILESYSTEM "Disable filesystem support" OFF)
option(PIP_NO_THREADS "Disable threading support" OFF)
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)
option(PIP_MANUAL_TEST "Build dev test (main.cpp)" OFF)
set(PIP_UTILS 1)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_STANDARD 11)
@@ -98,7 +100,7 @@ set(PIP_TESTS_LIST)
set(PIP_EXPORTS)
set(PIP_3PL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/3rd")
set(PIP_SRC_MODULES "console;crypt;compress;usb;fftw;opencl;io_utils;client_server;cloud;lua;http_client;http_server")
set(PIP_SRC_MODULES "console;crypt;compress;usb;fftw;opencl;io_utils;client_server;cloud;lua;http_client;http_server;mqtt_client")
foreach(_m ${PIP_SRC_MODULES})
set(PIP_MSG_${_m} "no")
string(TOUPPER "${_m}" _mu)
@@ -377,22 +379,25 @@ endif()
if(WIN32)
add_definitions(-DPSAPI_VERSION=1)
if(${C_COMPILER} STREQUAL "cl.exe")
set(CMAKE_CXX_FLAGS "/O2 /Ob2 /Ot /W0")
set(CMAKE_CXX_FLAGS "/O2 /Ob2 /Ot /W0 /EH-")
endif()
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
if (NOT DEFINED ANDROID_PLATFORM)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
endif()
endif()
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}")
if(DEFINED ENV{QNX_HOST} OR PIP_MICRO)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftemplate-depth-32")
endif()
set(PCRE2_BUILD_PCRE2_8 OFF)
set(PCRE2_BUILD_PCRE2_16 ON )
set(PCRE2_BUILD_PCRE2_32 OFF)
set(PCRE2_BUILD_PCRE2GREP OFF)
set(PCRE2_BUILD_TESTS OFF)
set(PCRE2_SHOW_REPORT OFF)
set(PCRE2_BUILD_PCRE2_8 OFF CACHE BOOL "" FORCE)
set(PCRE2_BUILD_PCRE2_16 ON CACHE BOOL "" FORCE)
set(PCRE2_BUILD_PCRE2_32 OFF CACHE BOOL "" FORCE)
set(PCRE2_BUILD_PCRE2GREP OFF CACHE BOOL "" FORCE)
set(PCRE2_BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(PCRE2_SHOW_REPORT OFF CACHE BOOL "" FORCE)
if (WIN32)
set (ZLIB_ROOT "${MINGW_INCLUDE}")
endif()
@@ -602,6 +607,34 @@ if (NOT CROSSTOOLS)
endif()
if (PIP_BUILD_MQTT_CLIENT)
# paho.mqtt.c
#set(MQTT_C_OpenSSL_SUPPORT OFF CACHE BOOL "" FORCE)
#set(MQTT_C_MbedTLS_SUPPORT OFF CACHE BOOL "" FORCE)
#set(MQTT_C_BearSSL_SUPPORT OFF CACHE BOOL "" FORCE)
#set(MQTT_C_EXAMPLES OFF CACHE BOOL "" FORCE)
#set(MQTT_C_INSTALL_EXAMPLES OFF CACHE BOOL "" FORCE)
#set(MQTT_C_TESTS OFF CACHE BOOL "" FORCE)
set(PAHO_WITH_SSL OFF CACHE BOOL "" FORCE)
set(PAHO_WITH_LIBRESSL OFF CACHE BOOL "" FORCE)
set(PAHO_WITH_LIBUUID OFF CACHE BOOL "" FORCE)
set(PAHO_BUILD_SHARED OFF CACHE BOOL "" FORCE)
set(PAHO_BUILD_STATIC ON CACHE BOOL "" FORCE)
set(PAHO_BUILD_DOCUMENTATION OFF CACHE BOOL "" FORCE)
set(PAHO_BUILD_SAMPLES OFF CACHE BOOL "" FORCE)
set(PAHO_BUILD_DEB_PACKAGE OFF CACHE BOOL "" FORCE)
set(PAHO_ENABLE_TESTING OFF CACHE BOOL "" FORCE)
set(PAHO_ENABLE_CPACK OFF CACHE BOOL "" FORCE)
set(PAHO_HIGH_PERFORMANCE OFF CACHE BOOL "" FORCE)
set(PAHO_USE_SELECT OFF CACHE BOOL "" FORCE)
set(PAHO_NO_TCP_NODELAY OFF CACHE BOOL "" FORCE)
add_subdirectory("3rd/paho.mqtt.c" EXCLUDE_FROM_ALL)
pip_module(mqtt_client eclipse-paho-mqtt-c::paho-mqtt3c-static "PIP MQTT Client" "" "" " (internal)")
endif()
# Test program
if(PIP_UTILS)
@@ -609,12 +642,14 @@ if (NOT CROSSTOOLS)
#target_link_libraries(pip_plugin pip)
if (NOT DEFINED ANDROID_PLATFORM)
if(microhttpd_FOUND AND curl_FOUND)
add_executable(pip_test "main.cpp")
target_link_libraries(pip_test pip pip_io_utils pip_client_server pip_http_server pip_http_client)
if(sodium_FOUND)
add_executable(pip_cloud_test "main_picloud_test.cpp")
target_link_libraries(pip_cloud_test pip_cloud)
if (PIP_MANUAL_TEST)
if(microhttpd_FOUND AND curl_FOUND)
add_executable(pip_test "main.cpp")
target_link_libraries(pip_test pip pip_io_utils pip_client_server pip_http_server pip_http_client pip_mqtt_client)
if(sodium_FOUND)
add_executable(pip_cloud_test "main_picloud_test.cpp")
target_link_libraries(pip_cloud_test pip_cloud)
endif()
endif()
endif()
endif()
@@ -754,7 +789,7 @@ if ((NOT PIP_MICRO) AND (NOT CROSSTOOLS))
find_package(Doxygen)
if(DOXYGEN_FOUND)
set(DOXY_DEFINES "${PIP_EXPORTS}")
foreach (_m "console" "usb" "compress" "crypt" "client_server" "cloud" "fftw" "opencl" "io_utils" "lua" "http_server" "http_client")
foreach (_m "console" "usb" "compress" "crypt" "client_server" "cloud" "fftw" "opencl" "io_utils" "lua" "http_server" "http_client" "mqtt_client")
string(TOUPPER "${_m}" _mdef)
list(APPEND DOXY_DEFINES "PIP_${_mdef}_EXPORT")
endforeach()
@@ -843,6 +878,9 @@ if (PIP_TESTS_LIST)
foreach(_test ${PIP_TESTS_LIST})
message(" * ${_test}")
endforeach()
if (TESTS_RUN)
message("TESTS_RUN ON -> Run tests before install step")
endif()
else()
message(" Tests: skip (tests off)")
endif()