This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx-apps.git

commit 4263e27d92ac27b59dc8a92afcd8b68bbcd7e4f3
Author: Tiago Medicci <[email protected]>
AuthorDate: Fri Jun 12 10:50:38 2026 -0300

    netutils/libwebsockets: Enable libwebsockets server
    
    This commit enables building libwebsockets server based on a new
    Kconfig entry.
    
    Signed-off-by: Tiago Medicci <[email protected]>
---
 netutils/libwebsockets/CMakeLists.txt | 10 +++++++++-
 netutils/libwebsockets/Kconfig        |  7 +++++++
 netutils/libwebsockets/Makefile       | 12 +++++++++++-
 netutils/libwebsockets/lws_config.h   |  4 +++-
 4 files changed, 30 insertions(+), 3 deletions(-)

diff --git a/netutils/libwebsockets/CMakeLists.txt 
b/netutils/libwebsockets/CMakeLists.txt
index 717788f13..ed3f58674 100644
--- a/netutils/libwebsockets/CMakeLists.txt
+++ b/netutils/libwebsockets/CMakeLists.txt
@@ -63,7 +63,8 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
       -DLWS_LIBRARY_VERSION_PATCH=${VERSION_PATCH}
       -DLWS_LIBRARY_VERSION_PATCH_ELABORATED=${VERSION_PATCH}-unknown
       -DLWS_LIBRARY_VERSION="${CONFIG_NETUTILS_LIBWEBSOCKETS_VERSION}-unknown"
-      -Wno-shadow)
+      -Wno-shadow
+      -Wno-format)
 
   set(INCDIR
       ${CMAKE_CURRENT_LIST_DIR}
@@ -146,6 +147,13 @@ if(CONFIG_NETUTILS_LIBWEBSOCKETS)
       ${LIBWEBSOCKETS_DIR}/lib/roles/http/client/client-http.c
       ${LIBWEBSOCKETS_DIR}/lib/event-libs/poll/poll.c)
 
+  if(CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER)
+    list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/roles/http/server)
+    list(APPEND CSRCS ${LIBWEBSOCKETS_DIR}/lib/roles/ws/server-ws.c
+         ${LIBWEBSOCKETS_DIR}/lib/roles/http/server/server.c
+         ${LIBWEBSOCKETS_DIR}/lib/roles/listen/ops-listen.c)
+  endif()
+
   if(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS)
     list(APPEND INCDIR ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include
          ${LIBWEBSOCKETS_DIR}/lib/tls/mbedtls/wrapper/include/internal)
diff --git a/netutils/libwebsockets/Kconfig b/netutils/libwebsockets/Kconfig
index 0e127e286..36c904906 100644
--- a/netutils/libwebsockets/Kconfig
+++ b/netutils/libwebsockets/Kconfig
@@ -16,6 +16,13 @@ config NETUTILS_LIBWEBSOCKETS_VERSION
        string "Version number"
        default "4.3.1"
 
+config NETUTILS_LIBWEBSOCKETS_SERVER
+       bool "Enable server support"
+       default n
+       ---help---
+               Enable WebSocket/HTTP server support in libwebsockets.
+               When disabled, only client-side code is built.
+
 config NETUTILS_LIBWEBSOCKETS_TLS
        bool "Enable TLS support"
        default y
diff --git a/netutils/libwebsockets/Makefile b/netutils/libwebsockets/Makefile
index 2dbe64479..ff28433ce 100644
--- a/netutils/libwebsockets/Makefile
+++ b/netutils/libwebsockets/Makefile
@@ -35,7 +35,8 @@ CFLAGS += \
        -DLWS_LIBRARY_VERSION_MINOR=$(call word-dot,$(LIBWEBSOCKETS_VERSION),2) 
\
        -DLWS_LIBRARY_VERSION_PATCH=$(call word-dot,$(LIBWEBSOCKETS_VERSION),3) 
\
        -DLWS_LIBRARY_VERSION_PATCH_ELABORATED=$(call 
word-dot,$(LIBWEBSOCKETS_VERSION),3)-unknown \
-       -DLWS_LIBRARY_VERSION=\"$(LIBWEBSOCKETS_VERSION)-unknown\"
+       -DLWS_LIBRARY_VERSION=\"$(LIBWEBSOCKETS_VERSION)-unknown\" \
+       -Wno-shadow -Wno-format
 
 CFLAGS += \
        -I. \
@@ -118,6 +119,15 @@ CSRCS += \
        $(LIBWEBSOCKETS_UNPACK)/lib/roles/http/client/client-http.c \
        $(LIBWEBSOCKETS_UNPACK)/lib/event-libs/poll/poll.c
 
+ifneq ($(CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER),)
+CSRCS += \
+       $(LIBWEBSOCKETS_UNPACK)/lib/roles/ws/server-ws.c \
+       $(LIBWEBSOCKETS_UNPACK)/lib/roles/http/server/server.c \
+       $(LIBWEBSOCKETS_UNPACK)/lib/roles/listen/ops-listen.c
+
+CFLAGS += -I$(LIBWEBSOCKETS_UNPACK)/lib/roles/http/server
+endif
+
 ifneq ($(CONFIG_NETUTILS_LIBWEBSOCKETS_TLS),)
 CSRCS += \
        $(LIBWEBSOCKETS_UNPACK)/lib/tls/tls.c \
diff --git a/netutils/libwebsockets/lws_config.h 
b/netutils/libwebsockets/lws_config.h
index 6a4bcb79b..02fb9ef2c 100644
--- a/netutils/libwebsockets/lws_config.h
+++ b/netutils/libwebsockets/lws_config.h
@@ -294,7 +294,9 @@
 #define LWS_WITH_CACHE_NSCOOKIEJAR
 #define LWS_WITH_CLIENT
 #define LWS_WITHOUT_EXTENSIONS
-/* #undef LWS_WITH_SERVER */
+#ifdef CONFIG_NETUTILS_LIBWEBSOCKETS_SERVER
+#define LWS_WITH_SERVER
+#endif
 
 /* #undef LWS_WITH_SPAWN */
 

Reply via email to