Bladeren bron

wamr-wasi-extensions: add lib-socket things (#4360)

YAMAMOTO Takashi 6 maanden geleden
bovenliggende
commit
05e3a09150

+ 1 - 0
wamr-wasi-extensions/CMakeLists.txt

@@ -6,3 +6,4 @@ cmake_minimum_required (VERSION 3.14)
 project(wamr-wasi-extensions LANGUAGES C)
 
 add_subdirectory(nn)
+add_subdirectory(socket)

+ 11 - 0
wamr-wasi-extensions/samples/socket-nslookup/CMakeLists.txt

@@ -0,0 +1,11 @@
+cmake_minimum_required(VERSION 3.14)
+
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED YES)
+set(CMAKE_C_EXTENSIONS NO)
+
+project(socket-nslookup LANGUAGES C)
+add_executable(socket-nslookup ${CMAKE_CURRENT_SOURCE_DIR}/../../../core/iwasm/libraries/lib-socket/test/nslookup.c)
+find_package(wamr-wasi-socket REQUIRED)
+target_link_libraries(socket-nslookup wamr-wasi-socket)
+target_link_options(socket-nslookup PRIVATE -Wl,--max-memory=262144)

+ 10 - 0
wamr-wasi-extensions/samples/socket-tcp-udp/CMakeLists.txt

@@ -0,0 +1,10 @@
+cmake_minimum_required(VERSION 3.14)
+
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_STANDARD_REQUIRED YES)
+
+project(socket-tcp-udp LANGUAGES C)
+add_executable(socket-tcp-udp ${CMAKE_CURRENT_SOURCE_DIR}/../../../core/iwasm/libraries/lib-socket/test/tcp_udp.c)
+find_package(wamr-wasi-socket REQUIRED)
+target_link_libraries(socket-tcp-udp wamr-wasi-socket)
+target_link_options(socket-tcp-udp PRIVATE -Wl,--max-memory=262144)

+ 20 - 0
wamr-wasi-extensions/socket/CMakeLists.txt

@@ -0,0 +1,20 @@
+set(wasi_socket_dir ${CMAKE_CURRENT_SOURCE_DIR}/../../core/iwasm/libraries/lib-socket)
+set(wasi_socket_header_dir ${wasi_socket_dir}/inc)
+
+set(srcs ${wasi_socket_dir}/src/wasi/wasi_socket_ext.c)
+set(headers
+    ${wasi_socket_header_dir}/wasi_socket_ext.h
+)
+
+add_library(wamr-wasi-socket STATIC ${srcs})
+set_property(TARGET wamr-wasi-socket PROPERTY PUBLIC_HEADER ${headers})
+target_include_directories(wamr-wasi-socket
+                           PUBLIC
+                           $<BUILD_INTERFACE:${wasi_socket_header_dir}>
+                           $<INSTALL_INTERFACE:include>)
+
+install(TARGETS wamr-wasi-socket
+        EXPORT wamr-wasi-socket-config
+        PUBLIC_HEADER DESTINATION include)
+install(EXPORT wamr-wasi-socket-config
+        DESTINATION lib/cmake/wamr-wasi-socket)

+ 14 - 0
wamr-wasi-extensions/test.sh

@@ -3,6 +3,8 @@
 # Copyright (C) 2025 Midokura Japan KK.  All rights reserved.
 # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 
+set -e
+
 PREFIX=/tmp/wamr
 WASI_SDK=${WASI_SDK:-/opt/wasi-sdk}
 
@@ -17,3 +19,15 @@ cmake -B build-app-nn \
 -DCMAKE_PREFIX_PATH=${PREFIX} \
 samples/nn
 cmake --build build-app-nn
+
+cmake -B build-app-socket-nslookup \
+-DCMAKE_TOOLCHAIN_FILE=${WASI_SDK}/share/cmake/wasi-sdk-pthread.cmake \
+-DCMAKE_PREFIX_PATH=${PREFIX} \
+samples/socket-nslookup
+cmake --build build-app-socket-nslookup
+
+cmake -B build-app-socket-tcp-udp \
+-DCMAKE_TOOLCHAIN_FILE=${WASI_SDK}/share/cmake/wasi-sdk-pthread.cmake \
+-DCMAKE_PREFIX_PATH=${PREFIX} \
+samples/socket-tcp-udp
+cmake --build build-app-socket-tcp-udp