contrib/wasi-libc++/Pkgfile

61 lines
2.1 KiB
Plaintext
Raw Normal View History

2021-12-11 13:30:08 +01:00
# Description: WASI libc++ implementation for WebAssembly
# URL: https://libcxx.llvm.org/
# Maintainer: John McQuah, jmcquah at disroot dot org
2024-04-05 13:51:16 +02:00
# Depends on: wasi-compiler-rt
2021-12-11 13:30:08 +01:00
name=wasi-libc++
2024-06-12 22:51:50 +02:00
version=18.1.7
2023-01-17 19:49:35 +01:00
release=1
2022-09-19 00:42:01 +02:00
source=(https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/llvm-project-$version.src.tar.xz
2024-03-07 16:01:25 +01:00
wasi-sdk.cmake)
2021-12-11 13:30:08 +01:00
build() {
2023-09-23 04:32:50 +02:00
cd llvm-project-$version.src
2021-12-11 13:30:08 +01:00
2023-09-23 04:32:50 +02:00
mkdir -p build cmake/Platform
cp "$SRC"/wasi-sdk.cmake build
2024-03-07 16:01:25 +01:00
echo "set(WASI 1)" > cmake/Platform/WASI.cmake
2021-12-11 13:30:08 +01:00
2023-09-23 04:32:50 +02:00
cmake -G Ninja -S runtimes -B build \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_C_FLAGS="-O3 -pipe -DNDEBUG -fno-exceptions --sysroot=/usr/share/wasi-sysroot" \
-D CMAKE_CXX_FLAGS="-O3 -pipe -DNDEBUG -fno-exceptions --sysroot=/usr/share/wasi-sysroot" \
-D CMAKE_TOOLCHAIN_FILE=wasi-sdk.cmake \
-D CMAKE_CXX_COMPILER_WORKS=ON \
-D CMAKE_C_COMPILER_WORKS=ON \
-D CMAKE_INSTALL_PREFIX=/usr/share/wasi-sysroot \
-D LLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
-D LLVM_DEFAULT_TARGET_TRIPLE=wasm32-wasi \
-D LIBCXX_ABI_VERSION=2 \
-D LIBCXX_ENABLE_EXCEPTIONS=OFF \
-D LIBCXX_ENABLE_FILESYSTEM=OFF \
-D LIBCXX_ENABLE_SHARED=OFF \
-D LIBCXX_ENABLE_THREADS=OFF \
-D LIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
-D LIBCXX_HAS_PTHREAD_API=OFF \
-D LIBCXX_HAS_WIN32_THREAD_API=OFF \
-D LIBCXX_INCLUDE_TESTS=OFF \
-D LIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
-D LIBCXXABI_ENABLE_EXCEPTIONS=OFF \
-D LIBCXXABI_ENABLE_SHARED=OFF \
-D LIBCXXABI_ENABLE_THREADS=OFF \
-D LIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
-D LIBCXXABI_HAS_PTHREAD_API=OFF \
-D LIBCXXABI_HAS_WIN32_THREAD_API=OFF \
-D LIBCXXABI_INCLUDE_TESTS=OFF \
-D LIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
-D LIBCXXABI_SILENT_TERMINATE:BOOL=ON \
2024-03-07 16:01:25 +01:00
-D LIBCXXABI_USE_LLVM_UNWINDER=OFF \
2023-09-23 04:32:50 +02:00
-D UNIX=ON \
-D WASI_SDK_PREFIX=/usr
2021-12-11 13:30:08 +01:00
2024-04-20 00:00:12 +02:00
ninja -C build -j ${JOBS:-1} cxx cxxabi
2023-09-23 04:32:50 +02:00
DESTDIR="$PKG" ninja -C build install-cxx install-cxxabi
2021-12-11 13:30:08 +01:00
2023-09-23 04:32:50 +02:00
cd "$PKG"/usr/share/wasi-sysroot/lib/wasm32-wasi
for f in *.a; do
/usr/bin/llvm-ranlib $f
/usr/bin/llvm-strip --strip-debug $f
done
2021-12-11 13:30:08 +01:00
}