diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 631a13b..24d364b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -253,13 +253,15 @@ jobs: - name: Create release artifacts run: | mkdir -p release - cp -r build/output release/ - cp -r build/bin release/ + cp -r build/output release/ || true cp -r include release/ + # 查找所有.a/.so/.dylib文件并拷贝到release/lib + mkdir -p release/lib + find build -type f \( -name "*.a" -o -name "*.so" -o -name "*.dylib" \) -exec cp {} release/lib/ \; tar -czf onesdk-release.tar.gz release/ - name: Upload release artifacts uses: actions/upload-artifact@v4 with: name: onesdk-release - path: onesdk-release.tar.gz \ No newline at end of file + path: onesdk-release.tar.gz \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2318c87..3d5594e 100644 --- a/.gitignore +++ b/.gitignore @@ -76,4 +76,8 @@ examples/onesdk_esp32/onesdk/ dependencies.lock .DS_Store ./external_libs/cJson/ -./external_libs/libwebsockets/ \ No newline at end of file +./external_libs/libwebsockets/ +# prebuilt libs +libs/*.a +libs/*.so +libs/*.dylib \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 22e885c..9d1c707 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,27 @@ option(ONESDK_WITH_TEST "Build onesdk unit tests" OFF) option(ONESDK_WITH_SHARED "Build shared lib for onesdk" ON) option(ONESDK_WITH_STATIC "Build static lib for onesdk" ON) option(ONESDK_WITH_STRICT_MODE "Build onesdk with ADDRESS SANTITIZE mode" OFF) +# 添加预编译库支持开关 +option(ONESDK_USE_PREBUILT_LIBS "Use prebuilt libraries from onesdk/libs" OFF) + +# 定义预编译库名称 +set(LIBWEBSOCKETS_LIB websockets) +set(ONESDK_DEP_LIBS "") + + +if(ONESDK_USE_PREBUILT_LIBS) + message(STATUS "ONESDK_USE_PREBUILT_LIBS is to ${ONESDK_USE_PREBUILT_LIBS}, override with ONESDK_WITH_STATIC=ON, ONESDK_WITH_SHARED=OFF") + set(OPENSSL_LIBS ssl crypto) + list(APPEND ONESDK_DEP_LIBS ${OPENSSL_LIBS}) + set(ONESDK_WITH_SHARED OFF) + set(ONESDK_WITH_STATIC ON) +endif() + +if(ONESDK_WITH_STATIC) + list(APPEND ONESDK_DEP_LIBS ${LIBWEBSOCKETS_LIB}) + list(APPEND ONESDK_DEP_LIBS cjson) +endif() # Generate the onesdk_config.h that includes all the public compilation settings. configure_file( "${PROJECT_SOURCE_DIR}/cmake/onesdk_config.h.in" @@ -107,18 +127,7 @@ message(STATUS "PROJECT SRC DIR: ${PROJECT_SOURCE_DIR}") message(STATUS "PROJECT BIN DIR: ${PROJECT_BINARY_DIR}") message(STATUS "BUILD PLATFORM: ${BUILD_PLATFORM}") -# Add include and external_libs/include to header file search path -include_directories( - ${PROJECT_SOURCE_DIR}/include - ${PROJECT_SOURCE_DIR}/include/iot - ${PROJECT_SOURCE_DIR}/src - ${PROJECT_SOURCE_DIR}/platform - ${PROJECT_SOURCE_DIR}/external_libs/libwebsockets/include - ${PROJECT_SOURCE_DIR}/external_libs/cJson - ${PROJECT_BINARY_DIR}/external_libs/libwebsockets - ${PROJECT_BINARY_DIR}/include -) - +message(STATUS "ONESDK_USE_PREBUILT_LIBS: ${ONESDK_USE_PREBUILT_LIBS}") # Platform specific include directories if(BUILD_PLATFORM STREQUAL "windows") # Add Windows SDK paths if available @@ -145,7 +154,25 @@ endif() if (ONESDK_WITH_EXAMPLE) set(BUILD_TYPE "debug") endif() -add_subdirectory(external_libs) +# 修改外部库依赖逻辑 +if(ONESDK_USE_PREBUILT_LIBS) + # 使用预编译库 + set(PREBUILT_LIBS_DIR "${PROJECT_SOURCE_DIR}/libs") + message(STATUS "Using prebuilt libraries from ${PREBUILT_LIBS_DIR}") + + # 预编译库头文件路径 + include_directories("${PREBUILT_LIBS_DIR}/include") + # 预编译库文件路径 + link_directories("${PREBUILT_LIBS_DIR}") + + # 仍然从源码编译cJson + add_subdirectory(external_libs/cJson) + # 仍然需要lws_config.h + # add_subdirectory(external_libs/libwebsockets) +else() + # 原有逻辑:从源码编译所有外部库 + add_subdirectory(external_libs) +endif() # Add CoreFoundation framework on macOS platform if(BUILD_PLATFORM STREQUAL "macos") @@ -166,6 +193,23 @@ set(BUILD_TYPE "debug") file(GLOB SOURCE "${PROJECT_SOURCE_DIR}/src/*.c") + + +# Add include and external_libs/include to header file search path +include_directories( + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_SOURCE_DIR}/include/iot + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/platform + ${PROJECT_BINARY_DIR}/include +) + +include_directories( + ${PROJECT_SOURCE_DIR}/external_libs/libwebsockets/include + ${PROJECT_SOURCE_DIR}/external_libs/cJson + ${PROJECT_BINARY_DIR}/external_libs/libwebsockets +) + # source directory # aux_source_directory(src ONESDK_SRC_DIRS) @@ -281,9 +325,12 @@ if (APPLE) # Don't add the exact path to CoreFoundation as this would hardcode the SDK version list(APPEND PLATFORM_LIBS dl Threads::Threads "-framework CoreFoundation") list(APPEND PLATFORM_LIBS ${CMAKE_DL_LIBS}) - - target_link_libraries(${PROJECT_NAME} PUBLIC ${PLATFORM_LIBS}) - target_link_libraries(${PROJECT_NAME}_shared PUBLIC ${PLATFORM_LIBS}) + if(ONESDK_WITH_STATIC) + target_link_libraries(${PROJECT_NAME} PUBLIC ${PLATFORM_LIBS}) + endif() + if(ONESDK_WITH_SHARED) + target_link_libraries(${PROJECT_NAME}_shared PUBLIC ${PLATFORM_LIBS}) + endif() # list (APPEND AWS_COMMON_OS_SRC "source/darwin/*.c") # OS specific includes # list (APPEND AWS_COMMON_OS_SRC "source/platform_fallback_stubs/system_info.c") @@ -390,4 +437,4 @@ if (ONESDK_WITH_TEST AND NOT APPLE) "${COVERATE_LDFLAGS}" ) endif() -endif() \ No newline at end of file +endif() diff --git a/docs/using_prebuilt_libs.md b/docs/using_prebuilt_libs.md new file mode 100644 index 0000000..a15e7fd --- /dev/null +++ b/docs/using_prebuilt_libs.md @@ -0,0 +1,65 @@ +## 概述 +onesdk 支持使用预编译的外部库(如 OpenSSL 和 libwebsockets)进行构建。**当前仅支持静态库(.a 文件)**,不支持动态库(.so/.dylib 文件)。通过设置 `ONESDK_USE_PREBUILT_LIBS` 开关,可以启用此功能并指定预编译库的路径。 + +## 4. 配置构建选项 +### 4.1 启用预构建库支持 +通过CMake选项启用预构建库功能: +```bash +./build.sh -DONESDK_USE_PREBUILT_LIBS=ON +``` + +### 4.2 可选配置项 +| 配置选项 | 说明 | 默认值 | +|---------|------|--------| +| ONESDK_WITH_SHARED | 构建动态库 | ON | +| ONESDK_WITH_STATIC | 构建静态库 | ON | +| ONESDK_WITH_EXAMPLE | 构建示例程序 | ON | + +## 5. 完整构建步骤 + +1. 确保预构建库已正确放置在 `onesdk/libs` 目录下 + +```bash +onesdk/ +└── libs/ + ├── include/ + │ ├── lws_config_private.h # libwebsockets私有头文件(必选,建议根据libwebsockets版本和开关替换) + │ ├── lws_config.h # libwebsockets公开文件(必选,建议根据libwebsockets版本和开关替换) + │ └── openssl/ # OpenSSL头文件目录(可选,一般在系统目录下) + │ ├── ssl.h + │ └── crypto.h + ├── libwebsockets.a # libwebsockets静态库(必选) + ├── libssl.a # OpenSSL ssl库(可选,根据是否需要TLS功能选择) + └── libcrypto.a # OpenSSL crypto库(可选,根据是否需要TLS功能选择) +``` + +2. 执行构建脚本 + +```bash +./build.sh -DONESDK_USE_PREBUILT_LIBS=ON +``` + +## 6. 验证构建结果 +构建成功后,可在以下路径找到输出库文件: +- 静态库: `build/libonesdk.a` + +## 7. 故障排除 +### 7.1 头文件找不到 +**错误示例**:`fatal error: 'libwebsockets.h' file not found` +**解决方法**: +1. 确认预构建库的头文件已放置在 `libs/include` 目录 +2. 检查CMake配置是否正确启用 `ONESDK_USE_PREBUILT_LIBS` + +### 7.2 库文件找不到 +**错误示例**:`ld: library not found for -lwebsockets` +**解决方法**: +1. 确认预构建库文件已放置在 `libs/lib` 目录 +2. 检查库文件命名是否符合系统标准(如Linux下为`libwebsockets.a`) + +## 8. 注意事项 +1. **库版本兼容性**:预构建库需与onesdk兼容,建议使用与源码编译版本相同的库 +2. **平台一致性**:确保预构建库与目标平台匹配(如x86_64 vs arm64) +3. **静态库链接顺序**:链接时需注意库的依赖顺序,通常OpenSSL应在libwebsockets之后 + +## 目录结构要求 +预编译库需按照以下结构放置在 `onesdk/libs` 目录中: \ No newline at end of file diff --git a/examples/chat/chatbot/CMakeLists.txt b/examples/chat/chatbot/CMakeLists.txt index 20e4a91..e5bac2c 100644 --- a/examples/chat/chatbot/CMakeLists.txt +++ b/examples/chat/chatbot/CMakeLists.txt @@ -42,9 +42,11 @@ else() set(PLATFORM_LIBS "") endif() -if (websockets) +if(ONESDK_WITH_STATIC) + message(STATUS "ONESDK_DEP_LIBS is to ${ONESDK_DEP_LIBS}, link with onesdk") target_link_libraries(${PROJECT_NAME} - onesdk cjson + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/examples/chat/function_call/CMakeLists.txt b/examples/chat/function_call/CMakeLists.txt index d3b1f6b..888f800 100644 --- a/examples/chat/function_call/CMakeLists.txt +++ b/examples/chat/function_call/CMakeLists.txt @@ -42,9 +42,10 @@ else() set(PLATFORM_LIBS "") endif() -if (websockets) +if (ONESDK_WITH_STATIC) target_link_libraries(${PROJECT_NAME} - onesdk cjson + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/examples/chat/mcp/CMakeLists.txt b/examples/chat/mcp/CMakeLists.txt index 9995f71..0f64cf1 100644 --- a/examples/chat/mcp/CMakeLists.txt +++ b/examples/chat/mcp/CMakeLists.txt @@ -42,9 +42,10 @@ else() set(PLATFORM_LIBS "") endif() -if (websockets) +if (ONESDK_WITH_STATIC) target_link_libraries(${PROJECT_NAME} - onesdk cjson + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/examples/chat/text_image/CMakeLists.txt b/examples/chat/text_image/CMakeLists.txt index 6aed00c..65f8cbe 100644 --- a/examples/chat/text_image/CMakeLists.txt +++ b/examples/chat/text_image/CMakeLists.txt @@ -42,9 +42,10 @@ else() set(PLATFORM_LIBS "") endif() -if (websockets) +if (ONESDK_WITH_STATIC) target_link_libraries(${PROJECT_NAME} - onesdk cjson + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/examples/onesdk_iot/CMakeLists.txt b/examples/onesdk_iot/CMakeLists.txt index bd04ab0..8c62ecb 100644 --- a/examples/onesdk_iot/CMakeLists.txt +++ b/examples/onesdk_iot/CMakeLists.txt @@ -26,7 +26,14 @@ else() endif() -target_link_libraries(${PROJECT_NAME} PRIVATE - onesdk_shared - websockets_shared - ${PLATFORM_LIBS}) \ No newline at end of file +if(ONESDK_WITH_STATIC) + target_link_libraries(${PROJECT_NAME} PRIVATE + onesdk + ${ONESDK_DEP_LIBS} + ${PLATFORM_LIBS}) +else() + target_link_libraries(${PROJECT_NAME} PRIVATE + onesdk_shared + websockets_shared + ${PLATFORM_LIBS}) +endif() \ No newline at end of file diff --git a/examples/onesdk_realtime/chat_agent/CMakeLists.txt b/examples/onesdk_realtime/chat_agent/CMakeLists.txt index 6add291..bfdb3f9 100644 --- a/examples/onesdk_realtime/chat_agent/CMakeLists.txt +++ b/examples/onesdk_realtime/chat_agent/CMakeLists.txt @@ -39,16 +39,17 @@ add_executable(${PROJECT_NAME} ) message("linking ${PROJECT_NAME} with websockets_shared = ${websockets_shared} libs ${LIBWEBSOCKETS_DEP_LIBS}") -if (websockets_static) -# Platform-specific libraries -if(BUILD_PLATFORM STREQUAL "windows") - set(PLATFORM_LIBS ws2_32 crypt32 iphlpapi) -else() - set(PLATFORM_LIBS "") -endif() +if (ONESDK_WITH_STATIC) + # Platform-specific libraries + if(BUILD_PLATFORM STREQUAL "windows") + set(PLATFORM_LIBS ws2_32 crypt32 iphlpapi) + else() + set(PLATFORM_LIBS "") + endif() - target_link_libraries(${PROJECT_NAME} - onesdk cjson + target_link_libraries(${PROJECT_NAME} + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/examples/onesdk_realtime/translation/CMakeLists.txt b/examples/onesdk_realtime/translation/CMakeLists.txt index f95b9d2..aea93c5 100644 --- a/examples/onesdk_realtime/translation/CMakeLists.txt +++ b/examples/onesdk_realtime/translation/CMakeLists.txt @@ -39,18 +39,19 @@ add_executable(${PROJECT_NAME} ) message("linking ${PROJECT_NAME} with websockets_shared = ${websockets_shared} libs ${LIBWEBSOCKETS_DEP_LIBS}") -if (websockets_static) -# Platform-specific libraries -if(BUILD_PLATFORM STREQUAL "windows") - set(PLATFORM_LIBS ws2_32 crypt32 iphlpapi) -else() - set(PLATFORM_LIBS "") -endif() +if (ONESDK_WITH_STATIC) + # Platform-specific libraries + if(BUILD_PLATFORM STREQUAL "windows") + set(PLATFORM_LIBS ws2_32 crypt32 iphlpapi) + else() + set(PLATFORM_LIBS "") + endif() target_link_libraries(${PROJECT_NAME} - onesdk cjson - ${LIBWEBSOCKETS_DEP_LIBS} - ${PLATFORM_LIBS}) + onesdk + ${ONESDK_DEP_LIBS} + ${LIBWEBSOCKETS_DEP_LIBS} + ${PLATFORM_LIBS}) else() target_link_libraries(${PROJECT_NAME} onesdk_shared cjson diff --git a/examples/raw_http_chat/CMakeLists.txt b/examples/raw_http_chat/CMakeLists.txt index 5fb35da..95eca6b 100644 --- a/examples/raw_http_chat/CMakeLists.txt +++ b/examples/raw_http_chat/CMakeLists.txt @@ -45,9 +45,10 @@ else() set(PLATFORM_LIBS "") endif() -if (websockets_static) +if (ONESDK_WITH_STATIC) target_link_libraries(${PROJECT_NAME} - onesdk_static cjson + onesdk + ${ONESDK_DEP_LIBS} ${LIBWEBSOCKETS_DEP_LIBS} ${PLATFORM_LIBS}) else() diff --git a/libs/include/lws_config.h b/libs/include/lws_config.h new file mode 100644 index 0000000..dcf8be9 --- /dev/null +++ b/libs/include/lws_config.h @@ -0,0 +1,270 @@ +/* lws_config.h Generated from lws_config.h.in */ + +#ifndef NDEBUG + #ifndef _DEBUG + #define _DEBUG + #endif +#endif + +#define LWS_INSTALL_DATADIR "/usr/local/share" +#define LWS_INSTALL_LIBDIR "/usr/local/lib" +#define LWS_LIBRARY_VERSION_MAJOR 4 +#define LWS_LIBRARY_VERSION_MINOR 3 +#define LWS_LIBRARY_VERSION_PATCH_ELABORATED 99-v4.3.0-551-g47efb8c1 +#define LWS_LIBRARY_VERSION_PATCH 99 + +/* LWS_LIBRARY_VERSION_NUMBER looks like 1005001 for e.g. version 1.5.1 */ +#define LWS_LIBRARY_VERSION_NUMBER (LWS_LIBRARY_VERSION_MAJOR * 1000000) + \ + (LWS_LIBRARY_VERSION_MINOR * 1000) + \ + LWS_LIBRARY_VERSION_PATCH +#define LWS_MAX_SMP 1 + +/* #undef LWS_ESP_PLATFORM */ +/* #undef LWS_LIBRARY_VERSION_NUMBER */ + +/* #undef LWS_EXT_PTHREAD_LIBRARIES */ + +/* #undef LWS_AVOID_SIGPIPE_IGN */ +#define LWS_BUILD_HASH "v4.3.0-551-g47efb8c1" +/* #undef LWS_BUILTIN_GETIFADDRS */ +/* #undef LWS_BUILTIN_PLUGIN_NAMES */ +#define LWS_CLIENT_HTTP_PROXYING +/* #undef LWS_DETECTED_PLAT_IOS */ +/* #undef LWS_FALLBACK_GETHOSTBYNAME */ +#define LWS_HAS_INTPTR_T +#define LWS_HAS_GETOPT_LONG +/* #undef LWS_HAVE__ATOI64 */ +#define LWS_HAVE_ATOLL +#define LWS_HAVE_BN_bn2binpad +#define LWS_HAVE_CLOCK_GETTIME +#define LWS_HAVE_EC_POINT_get_affine_coordinates +#define LWS_HAVE_EC_KEY_new_by_curve_name +#define LWS_HAVE_ECDSA_SIG_set0 +#define LWS_HAVE_EVP_MD_CTX_free +#define LWS_HAVE_EVP_aes_128_wrap +#define LWS_HAVE_EVP_aes_128_cfb8 +#define LWS_HAVE_EVP_aes_128_cfb128 +#define LWS_HAVE_EVP_aes_192_cfb8 +#define LWS_HAVE_EVP_aes_192_cfb128 +#define LWS_HAVE_EVP_aes_256_cfb8 +#define LWS_HAVE_EVP_aes_256_cfb128 +#define LWS_HAVE_EVP_aes_128_ofb +#define LWS_HAVE_EVP_aes_128_xts +#define LWS_HAVE_EVP_aes_128_ctr +#define LWS_HAVE_EVP_aes_128_ecb +#define LWS_HAVE_EVP_PKEY_new_raw_private_key +/* #undef LWS_HAVE_EXECVPE */ +#define LWS_HAVE_LOCALTIME_R +#define LWS_HAVE_GMTIME_R +#define LWS_HAVE_CTIME_R +#define LWS_HAVE_GETGRGID_R +#define LWS_HAVE_GETGRNAM_R +#define LWS_HAVE_GETPWUID_R +#define LWS_HAVE_GETPWNAM_R +/* #undef LWS_HAVE_LIBCAP */ +#define LWS_HAVE_HMAC_CTX_new +/* #undef LWS_HAVE_MALLOC_H */ +/* #undef LWS_HAVE_MALLOC_TRIM */ +/* #undef LWS_HAVE_MALLOC_USABLE_SIZE */ +/* #undef LWS_HAVE_mbedtls_md_setup */ +/* #undef LWS_HAVE_mbedtls_net_init */ +/* #undef LWS_HAVE_mbedtls_rsa_complete */ +/* #undef LWS_HAVE_mbedtls_internal_aes_encrypt */ +/* #undef LWS_HAVE_mbedtls_ssl_conf_alpn_protocols */ +/* #undef LWS_HAVE_mbedtls_ssl_get_alpn_protocol */ +/* #undef LWS_HAVE_mbedtls_ssl_conf_sni */ +/* #undef LWS_HAVE_mbedtls_ssl_set_hs_ca_chain */ +/* #undef LWS_HAVE_mbedtls_ssl_set_hs_own_cert */ +/* #undef LWS_HAVE_mbedtls_ssl_set_hs_authmode */ +/* #undef LWS_HAVE_mbedtls_ssl_set_verify */ +/* #undef LWS_HAVE_mbedtls_x509_crt_parse_file */ +/* #undef LWS_HAVE_MBEDTLS_NET_SOCKETS */ +/* #undef LWS_HAVE_MBEDTLS_SSL_NEW_SESSION_TICKET */ +/* #undef LWS_HAVE_MBEDTLS_AUTH_KEY_ID */ +/* #undef LWS_HAVE_NEW_UV_VERSION_H */ +#define LWS_HAVE_OPENSSL_ECDH_H +#define LWS_HAVE_OPENSSL_STACK +/* #undef LWS_HAVE_PIPE2 */ +/* #undef LWS_HAVE_EVENTFD */ +#define LWS_HAVE_PTHREAD_H +#define LWS_HAVE_RSA_SET0_KEY +/* #undef LWS_HAVE_RSA_verify_pss_mgf1 */ +#define LWS_HAVE_SSL_CTX_get0_certificate +#define LWS_HAVE_SSL_CTX_load_verify_file +#define LWS_HAVE_SSL_CTX_load_verify_dir +#define LWS_HAVE_SSL_CTX_set1_param +#define LWS_HAVE_SSL_CTX_set_ciphersuites +#define LWS_HAVE_SSL_CTX_set_keylog_callback +#define LWS_HAVE_SSL_EXTRA_CHAIN_CERTS +#define LWS_HAVE_SSL_get0_alpn_selected +/* #undef LWS_HAVE_SSL_CTX_EVP_PKEY_new_raw_private_key */ +#define LWS_HAVE_SSL_set_alpn_protos +#define LWS_HAVE_SSL_SET_INFO_CALLBACK +#define LWS_HAVE_SSL_SESSION_set_time +#define LWS_HAVE_SSL_SESSION_up_ref +/* #undef LWS_HAVE__STAT32I64 */ +#define LWS_HAVE_STDINT_H +#define LWS_HAVE_SYS_TYPES_H +/* #undef LWS_HAVE_SYS_CAPABILITY_H */ +#define LWS_HAVE_TIMEGM +#define LWS_HAVE_TLS_CLIENT_METHOD +#define LWS_HAVE_TLSV1_2_CLIENT_METHOD +#define LWS_HAVE_SUSECONDS_T +/* #undef LWS_HAVE_UV_VERSION_H */ +#define LWS_HAVE_VFORK +#define LWS_HAVE_X509_get_key_usage +#define LWS_HAVE_X509_VERIFY_PARAM_set1_host +#define LWS_LIBRARY_VERSION "4.3.99-v4.3.0-551-g47efb8c1" +#define LWS_LOGGING_BITFIELD_CLEAR 0 +#define LWS_LOGGING_BITFIELD_SET 0 +#define LWS_LOG_TAG_LIFECYCLE +/* #undef LWS_MINGW_SUPPORT */ +/* #undef LWS_NO_CLIENT */ +#define LWS_NO_DAEMONIZE +/* #undef LWS_ONLY_SSPC */ +#define LWS_OPENSSL_CLIENT_CERTS "../share" +#define LWS_OPENSSL_SUPPORT +/* #undef LWS_OTA_PUBLIC_JWK */ +#define LWS_OTA_VARIANT "set-LWS_OTA_VARIANT" +/* #undef LWS_PLAT_OPTEE */ +#define LWS_PLAT_UNIX +/* #undef LWS_PLAT_FREERTOS */ +/* #undef LWS_PLAT_BAREMETAL */ +/* #undef LWS_ROLE_CGI */ +/* #undef LWS_ROLE_DBUS */ +#define LWS_ROLE_H1 +#define LWS_ROLE_H2 +#define LWS_ROLE_RAW +#define LWS_ROLE_RAW_FILE +/* #undef LWS_ROLE_RAW_PROXY */ +#define LWS_ROLE_WS +#define LWS_ROLE_MQTT +/* #undef LWS_SHA1_USE_OPENSSL_NAME */ +#define LWS_SSL_CLIENT_USE_OS_CA_CERTS +/* #undef LWS_SSL_SERVER_WITH_ECDH_CERT */ +#define LWS_SUPPRESS_DEPRECATED_API_WARNINGS +/* #undef LWS_TLS_LOG_PLAINTEXT_RX */ +/* #undef LWS_TLS_LOG_PLAINTEXT_TX */ +/* #undef LWS_WITH_ABSTRACT */ +/* #undef LWS_WITH_ACCESS_LOG */ +/* #undef LWS_WITH_ACME */ +/* #undef LWS_WITH_ALLOC_METADATA_LWS */ +/* #undef LWS_WITH_ALSA */ +/* #undef LWS_WITH_SYS_ASYNC_DNS */ +/* #undef LWS_WITH_BORINGSSL */ +/* #undef LWS_WITH_AWSLC */ +/* #undef LWS_WITH_CGI */ +/* #undef LWS_WITH_COMPRESSED_BACKTRACES */ +#define LWS_COMPRESSED_BACKTRACES_SNIP_PRE 2 +#define LWS_COMPRESSED_BACKTRACES_SNIP_POST 1 +#define LWS_WITH_CONMON +/* #undef LWS_WITH_COSE */ +#define LWS_WITH_CUSTOM_HEADERS +/* #undef LWS_WITH_DEPRECATED_LWS_DLL */ +/* #undef LWS_WITH_DETAILED_LATENCY */ +#define LWS_WITH_DIR +#define LWS_WITH_DLO +/* #undef LWS_WITH_DRIVERS */ +/* #undef LWS_WITH_ESP32 */ +#define LWS_HAVE_NET_ETHERNET_H +/* #undef LWS_HAVE_EVBACKEND_LINUXAIO */ +/* #undef LWS_HAVE_EVBACKEND_IOURING */ +/* #undef LWS_WITH_EXTERNAL_POLL */ +#define LWS_WITH_FILE_OPS +/* #undef LWS_WITH_FSMOUNT */ +/* #undef LWS_WITH_FTS */ +#define LWS_WITH_GENCRYPTO +/* #undef LWS_WITH_GENERIC_SESSIONS */ +/* #undef LWS_WITH_GLIB */ +/* #undef LWS_WITH_GTK */ +#define LWS_WITH_GZINFLATE +#define LWS_WITH_HTTP2 +#define LWS_WITH_HTTP_BASIC_AUTH +#define LWS_WITH_HTTP_DIGEST_AUTH +/* #undef LWS_WITH_HTTP_BROTLI */ +/* #undef LWS_HTTP_HEADERS_ALL */ +/* #undef LWS_WITH_HTTP_PROXY */ +/* #undef LWS_WITH_HTTP_STREAM_COMPRESSION */ +#define LWS_WITH_HTTP_UNCOMMON_HEADERS +/* #undef LWS_WITH_IPV6 */ +/* #undef LWS_WITH_JOSE */ +/* #undef LWS_WITH_CBOR */ +#define LWS_WITH_CBOR_FLOAT +#define LWS_WITH_JSONRPC +#define LWS_WITH_LEJP +#define LWS_WITH_LHP +/* #undef LWS_WITH_LIBEV */ +/* #undef LWS_WITH_LIBEVENT */ +/* #undef LWS_WITH_LIBUV */ +/* #undef LWS_WITH_SDEVENT */ +#define LWS_WITH_LWSAC +#define LWS_LOGS_TIMESTAMP +/* #undef LWS_WITH_MBEDTLS */ +/* #undef LWS_WITH_MINIZ */ +/* #undef LWS_WITH_NETLINK */ +/* #undef LWS_WITH_BINDTODEVICE */ +#define LWS_WITH_NETWORK +/* #undef LWS_WITH_NO_LOGS */ +/* #undef LWS_WITH_OTA */ +#define LWS_WITH_CACHE_NSCOOKIEJAR +#define LWS_WITH_CLIENT +#define LWS_WITHOUT_EXTENSIONS +#define LWS_WITH_SERVER +/* #undef LWS_WITH_SPAWN */ +/* #undef LWS_WITH_PEER_LIMITS */ +#define LWS_WITH_JPEG +/* #undef LWS_WITH_PLUGINS */ +/* #undef LWS_WITH_PLUGINS_BUILTIN */ +/* #undef LWS_WITH_POLARSSL */ +#define LWS_WITH_POLL +/* #undef LWS_WITH_RANGES */ +/* #undef LWS_WITH_RFC6724 */ +#define LWS_WITH_SECURE_STREAMS +/* #undef LWS_WITH_SECURE_STREAMS_CPP */ +#define LWS_WITH_SECURE_STREAMS_SYS_AUTH_API_AMAZON_COM +/* #undef LWS_WITH_SECURE_STREAMS_PROXY_API */ +/* #undef LWS_WITH_SECURE_STREAMS_STATIC_POLICY_ONLY */ +/* #undef LWS_WITH_SECURE_STREAMS_AUTH_SIGV4 */ +/* #undef LWS_WITH_SECURE_STREAMS_BUFFER_DUMP */ +/* #undef LWS_WITH_SS_DIRECT_PROTOCOL_STR */ +/* #undef LWS_WITH_SELFTESTS */ +/* #undef LWS_WITH_SEQUENCER */ +/* #undef LWS_WITH_SERVER_STATUS */ +#define LWS_WITH_SYS_SMD +/* #undef LWS_WITH_SMTP */ +/* #undef LWS_WITH_SOCKS5 */ +/* #undef LWS_WITH_STATEFUL_URLDECODE */ +/* #undef LWS_WITH_STATS */ +/* #undef LWS_WITH_STRUCT_SQLITE3 */ +/* #undef LWS_WITH_STRUCT_JSON */ +/* #undef LWS_WITH_SUL_DEBUGGING */ +/* #undef LWS_WITH_SQLITE3 */ +/* #undef LWS_WITH_SYS_DHCP_CLIENT */ +/* #undef LWS_WITH_SYS_FAULT_INJECTION */ +/* #undef LWS_WITH_SYS_METRICS */ +/* #undef LWS_WITH_SYS_NTPCLIENT */ +#define LWS_WITH_SYS_STATE +/* #undef LWS_HAVE_SYSTEMD_H */ +/* #undef LWS_WITHOUT_TEST_SERVER */ +/* #undef LWS_WITHOUT_TESTAPPS */ +/* #undef LWS_WITH_THREADPOOL */ +#define LWS_WITH_TLS +/* #undef LWS_WITH_TLS_JIT_TRUST */ +#define LWS_WITH_TLS_SESSIONS +#define LWS_WITH_UDP +/* #undef LWS_WITH_ULOOP */ +#define LWS_WITH_UNIX_SOCK +#define LWS_WITH_UPNG +/* #undef LWS_WITH_ZIP_FOPS */ +/* #undef USE_OLD_CYASSL */ +/* #undef USE_WOLFSSL */ +/* #undef LWS_WITH_EVENT_LIBS */ +#define LWS_WITH_EVLIB_PLUGINS +/* #undef LWS_WITH_LIBUV_INTERNAL */ +/* #undef LWS_WITH_PLUGINS_API */ +/* #undef LWS_HAVE_RTA_PREF */ +/* #undef PICO_SDK_PATH */ +/* #undef LWS_HAVE_LINUX_IPV6_H */ +#define LWS_WITH_WOL +/* #undef LWS_HAVE_NET_IF_ETHER_H */ + diff --git a/libs/include/lws_config_private.h b/libs/include/lws_config_private.h new file mode 100644 index 0000000..2d5d998 --- /dev/null +++ b/libs/include/lws_config_private.h @@ -0,0 +1,112 @@ +/* lws_config_private.h.in. Private compilation options. */ + +#ifndef NDEBUG + #ifndef _DEBUG + #define _DEBUG + #endif +#endif +/* #undef LWIP_PROVIDE_ERRNO */ + +/* Define to 1 to use CyaSSL as a replacement for OpenSSL. + * LWS_OPENSSL_SUPPORT needs to be set also for this to work. */ +/* #undef USE_CYASSL */ + +/* Define to 1 if you have the `fork' function. */ +#define LWS_HAVE_FORK + +/* Define to 1 if you have the `getenv' function. */ +#define LWS_HAVE_GETENV + +/* Define to 1 if you have the header file. */ +/* #undef LWS_HAVE_IN6ADDR_H */ + +/* Define to 1 if your system has a GNU libc compatible `malloc' function, and + to 0 otherwise. */ +#define LWS_HAVE_MALLOC + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_MEMORY_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_STDLIB_H + +/* Define to 1 if you have the `strerror' function. */ +#define LWS_HAVE_STRERROR + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +/* #undef LWS_HAVE_SYS_PRCTL_H */ + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_SYS_RESOURCE_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_SYS_SOCKIO_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#define LWS_HAVE_UNISTD_H + +/* #undef LWS_HAVE_TCP_USER_TIMEOUT */ + +/* Define to 1 if you have the `vfork' function. */ +#define LWS_HAVE_VFORK + +/* Define to 1 if you have the header file. */ +/* #undef LWS_HAVE_VFORK_H */ + +/* Define to 1 if `fork' works. */ +/* #undef LWS_HAVE_WORKING_FORK */ + +/* Define to 1 if `vfork' works. */ +/* #undef LWS_HAVE_WORKING_VFORK */ + +/* Define to 1 if execvpe() exists */ +/* #undef LWS_HAVE_EXECVPE */ + +/* Define to 1 if you have the header file. */ +/* #undef LWS_HAVE_ZLIB_H */ + +#define LWS_HAVE_GETLOADAVG + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR // We're not using libtool + +///* Define to rpl_malloc if the replacement function should be used. */ +/* #undef malloc */ + +/* Define to rpl_realloc if the replacement function should be used. */ +/* #undef realloc */ + +/* Define to 1 if we have getifaddrs */ +#define LWS_HAVE_GETIFADDRS + +/* Define if the inline keyword doesn't exist. */ +/* #undef inline */ + +/* #undef LWS_WITH_ZLIB */ +/* #undef LWS_HAS_PTHREAD_SETNAME_NP */ + +/* Defined if you have the header file. */ +#define LWS_HAVE_INTTYPES_H +