mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-11-02 17:31:32 +01:00
101 lines
3.2 KiB
Plaintext
101 lines
3.2 KiB
Plaintext
# Contributor: psykose <alice@ayaya.dev>
|
|
# Contributor: Alex Yam <alex@alexyam.com>
|
|
# Maintainer: psykose <alice@ayaya.dev>
|
|
pkgname=wasi-libcxx
|
|
# match llvm version
|
|
pkgver=15.0.7
|
|
_llvmver="${pkgver%%.*}"
|
|
_wasi_sdk_ver=19
|
|
pkgrel=1
|
|
pkgdesc="WASI LLVM C++ standard library"
|
|
subpackages="wasi-libcxxabi:_libcxxabi"
|
|
url="https://libcxx.llvm.org/"
|
|
arch="all"
|
|
license="Apache-2.0 WITH LLVM-exception"
|
|
makedepends="
|
|
clang
|
|
cmake
|
|
libxml2-dev
|
|
llvm$_llvmver-dev
|
|
llvm$_llvmver-static
|
|
python3-dev
|
|
samurai
|
|
wasi-libc
|
|
zlib-dev
|
|
"
|
|
source="
|
|
https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
|
|
https://github.com/WebAssembly/wasi-sdk/archive/refs/tags/wasi-sdk-$_wasi_sdk_ver.tar.gz
|
|
"
|
|
builddir="$srcdir"/llvm-project-$pkgver.src
|
|
# TODO: check, needs to somehow pass wasi sysroot include to lit..
|
|
options="!check"
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
mv "$srcdir"/wasi-sdk-wasi-sdk-$_wasi_sdk_ver/wasi-sdk.cmake "$builddir"
|
|
mv "$srcdir"/wasi-sdk-wasi-sdk-$_wasi_sdk_ver/cmake/Platform cmake
|
|
}
|
|
|
|
build() {
|
|
export CFLAGS="$CFLAGS -fno-exceptions --sysroot=/usr/share/wasi-sysroot"
|
|
export CXXFLAGS="$CXXFLAGS -fno-exceptions --sysroot=/usr/share/wasi-sysroot"
|
|
|
|
cmake -B build -G Ninja -S runtimes -Wno-dev \
|
|
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
|
|
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
-DCMAKE_MODULE_PATH="$builddir"/cmake \
|
|
-DCMAKE_TOOLCHAIN_FILE="$builddir"/wasi-sdk.cmake \
|
|
-DCMAKE_C_COMPILER_WORKS=ON \
|
|
-DCMAKE_CXX_COMPILER_WORKS=ON \
|
|
-DCMAKE_STAGING_PREFIX=/usr/share/wasi-sysroot \
|
|
-DCXX_SUPPORTS_CXX11=ON \
|
|
-DLIBCXX_ABI_VERSION=2 \
|
|
-DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
|
|
-DLIBCXX_CXX_ABI=libcxxabi \
|
|
-DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \
|
|
-DLIBCXX_ENABLE_EXCEPTIONS=OFF \
|
|
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
|
|
-DLIBCXX_ENABLE_FILESYSTEM=OFF \
|
|
-DLIBCXX_ENABLE_SHARED=OFF \
|
|
-DLIBCXX_ENABLE_THREADS=OFF \
|
|
-DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
|
|
-DLIBCXX_HAS_MUSL_LIBC=ON \
|
|
-DLIBCXX_HAS_PTHREAD_API=OFF \
|
|
-DLIBCXX_HAS_WIN32_THREAD_API=OFF \
|
|
-DLIBCXX_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
|
|
-DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
|
|
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
|
|
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
|
|
-DLIBCXXABI_ENABLE_PIC=OFF \
|
|
-DLIBCXXABI_ENABLE_SHARED=OFF \
|
|
-DLIBCXXABI_ENABLE_THREADS=OFF \
|
|
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
|
|
-DLIBCXXABI_HAS_PTHREAD_API=OFF \
|
|
-DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \
|
|
-DLIBCXXABI_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
|
|
-DLIBCXXABI_LIBCXX_INCLUDES="$builddir"/build-libcxx/include/c++/v1 \
|
|
-DLIBCXXABI_LIBCXX_PATH=libcxx \
|
|
-DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
|
|
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
|
|
-DUNIX=ON \
|
|
-DWASI_SDK_PREFIX=/usr
|
|
cmake --build build
|
|
}
|
|
|
|
package() {
|
|
DESTDIR="$pkgdir" cmake --install build
|
|
}
|
|
|
|
_libcxxabi() {
|
|
pkgdesc="WASI Low level support for the LLVM C++ standard library."
|
|
|
|
amove usr/share/wasi-sysroot/lib/wasm32-wasi/libc++abi.a
|
|
}
|
|
|
|
sha512sums="
|
|
4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 llvm-project-15.0.7.src.tar.xz
|
|
0a501fda853033425874537e0b0ed45d72b1f1488df99e16b7c1ab46d4f496e6329f9611f67bba0f9178f05df5cfe64706c7c34dab2eaee72e5274df6d85a77a wasi-sdk-19.tar.gz
|
|
"
|