From 8f0b24d62bc67d33044aa08d5fc068d28ab5d302 Mon Sep 17 00:00:00 2001 From: "Vanilla I. Shu" Date: Sun, 19 Sep 2021 12:43:55 +0800 Subject: devel/wasm3: add ports. PR: 258458 Reported by: Martin Filla --- devel/Makefile | 1 + devel/wasm3/Makefile | 25 ++++++++++++ devel/wasm3/distinfo | 5 +++ devel/wasm3/files/patch-CMakeLists.txt | 27 +++++++++++++ .../files/patch-__deps_uvwasi-src_CMakeLists.txt | 45 ++++++++++++++++++++++ devel/wasm3/pkg-descr | 3 ++ 6 files changed, 106 insertions(+) create mode 100644 devel/wasm3/Makefile create mode 100644 devel/wasm3/distinfo create mode 100644 devel/wasm3/files/patch-CMakeLists.txt create mode 100644 devel/wasm3/files/patch-__deps_uvwasi-src_CMakeLists.txt create mode 100644 devel/wasm3/pkg-descr diff --git a/devel/Makefile b/devel/Makefile index 4d13febf4979..9d6d724866f3 100644 --- a/devel/Makefile +++ b/devel/Makefile @@ -7083,6 +7083,7 @@ SUBDIR += wasi-compiler-rt11 SUBDIR += wasi-libc SUBDIR += wasi-libcxx + SUBDIR += wasm3 SUBDIR += websocketpp SUBDIR += websvn SUBDIR += wf-config diff --git a/devel/wasm3/Makefile b/devel/wasm3/Makefile new file mode 100644 index 000000000000..6bd65a2ab3b3 --- /dev/null +++ b/devel/wasm3/Makefile @@ -0,0 +1,25 @@ +PORTNAME= wasm3 +DISTVERSIONPREFIX= v +DISTVERSION= 0.5.0 +CATEGORIES= devel + +MAINTAINER= freebsd@sysctl.cz +COMMENT= The fastest WebAssembly interpreter, and the most universal runtime. + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE + +LIB_DEPENDS= libuv.so:devel/libuv + +USES= cmake:insource localbase:ldflags +USE_GITHUB= yes +GH_ACCOUNT= wasm3 +GH_PROJECT= wasm3 +GH_TUPLE+= vshymanskyy:uvwasi:b063d686848:uvwasi/_deps/uvwasi-src + +PLIST_FILES= bin/wasm3 + +do-install: + ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin + +.include diff --git a/devel/wasm3/distinfo b/devel/wasm3/distinfo new file mode 100644 index 000000000000..c22c465e3937 --- /dev/null +++ b/devel/wasm3/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1631844705 +SHA256 (wasm3-wasm3-v0.5.0_GH0.tar.gz) = b778dd72ee2251f4fe9e2666ee3fe1c26f06f517c3ffce572416db067546536c +SIZE (wasm3-wasm3-v0.5.0_GH0.tar.gz) = 2582080 +SHA256 (vshymanskyy-uvwasi-b063d686848_GH0.tar.gz) = 13e58764bbada1119d5298cddfcb88152574ca753522585d25936df36caee84e +SIZE (vshymanskyy-uvwasi-b063d686848_GH0.tar.gz) = 59759 diff --git a/devel/wasm3/files/patch-CMakeLists.txt b/devel/wasm3/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..3b586e383763 --- /dev/null +++ b/devel/wasm3/files/patch-CMakeLists.txt @@ -0,0 +1,27 @@ +--- CMakeLists.txt.orig 2021-06-02 10:40:14 UTC ++++ CMakeLists.txt +@@ -188,21 +188,10 @@ if(BUILD_WASI MATCHES "simple") + elseif(BUILD_WASI MATCHES "metawasi") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasMetaWASI") + elseif(BUILD_WASI MATCHES "uvwasi") +- include(FetchContent) +- FetchContent_Declare( +- uvwasi +- GIT_REPOSITORY https://github.com/vshymanskyy/uvwasi.git +- GIT_TAG b063d686848c32a26119513056874f051c74258a +- ) +- +- FetchContent_GetProperties(uvwasi) +- if(NOT uvwasi_POPULATED) +- FetchContent_Populate(uvwasi) +- include_directories("${uvwasi_SOURCE_DIR}/include") +- add_subdirectory(${uvwasi_SOURCE_DIR} ${uvwasi_BINARY_DIR} EXCLUDE_FROM_ALL) +- endif() ++ add_subdirectory("_deps/uvwasi-src") ++ include_directories("_deps/uvwasi-src/include") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasUVWASI") +- target_link_libraries(${OUT_FILE} uvwasi_a uv_a) ++ target_link_libraries(${OUT_FILE} uvwasi_a) + endif() + + check_ipo_supported(RESULT result) diff --git a/devel/wasm3/files/patch-__deps_uvwasi-src_CMakeLists.txt b/devel/wasm3/files/patch-__deps_uvwasi-src_CMakeLists.txt new file mode 100644 index 000000000000..f97829d48652 --- /dev/null +++ b/devel/wasm3/files/patch-__deps_uvwasi-src_CMakeLists.txt @@ -0,0 +1,45 @@ +--- _deps/uvwasi-src/CMakeLists.txt.orig 2021-03-20 19:00:07 UTC ++++ _deps/uvwasi-src/CMakeLists.txt +@@ -25,19 +25,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux") + list(APPEND uvwasi_defines _GNU_SOURCE _POSIX_C_SOURCE=200112) + endif() + +-include(FetchContent) ++#include(FetchContent) + ## https://libuv.org +-FetchContent_Declare( +- libuv +- GIT_REPOSITORY https://github.com/libuv/libuv.git +- GIT_TAG ${LIBUV_VERSION}) ++#FetchContent_Declare( ++# libuv ++# GIT_REPOSITORY https://github.com/libuv/libuv.git ++# GIT_TAG ${LIBUV_VERSION}) + +-FetchContent_GetProperties(libuv) +-if(NOT libuv_POPULATED) +- FetchContent_Populate(libuv) +- include_directories("${libuv_SOURCE_DIR}/include") +- add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR} EXCLUDE_FROM_ALL) +-endif() ++#FetchContent_GetProperties(libuv) ++#if(NOT libuv_POPULATED) ++# FetchContent_Populate(libuv) ++# include_directories("${libuv_SOURCE_DIR}/include") ++# add_subdirectory(${libuv_SOURCE_DIR} ${libuv_BINARY_DIR} EXCLUDE_FROM_ALL) ++#endif() + + ## uvwasi source code files. + set(uvwasi_sources +@@ -87,9 +87,9 @@ target_compile_definitions(uvwasi_a PRIVATE ${uvwasi_d + target_compile_options(uvwasi_a PRIVATE ${uvwasi_cflags}) + target_include_directories(uvwasi_a PRIVATE ${PROJECT_SOURCE_DIR}/include) + if(CODE_COVERAGE) +- target_link_libraries(uvwasi_a PUBLIC uv_a coverage_config) ++ target_link_libraries(uvwasi_a PUBLIC uv coverage_config) + else() +- target_link_libraries(uvwasi_a PRIVATE uv_a) ++ target_link_libraries(uvwasi_a PRIVATE uv) + endif() + + diff --git a/devel/wasm3/pkg-descr b/devel/wasm3/pkg-descr new file mode 100644 index 000000000000..a90a7900ff1f --- /dev/null +++ b/devel/wasm3/pkg-descr @@ -0,0 +1,3 @@ +The fastest WebAssembly interpreter, and the most universal runtime. + +WWW: https://github.com/wasm3/wasm3 -- cgit v1.2.3