mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2024-09-20 11:23:16 +00:00
main/wasi-libcxx: adopt maintainership, refactor
This commit is contained in:
parent
fe0017022a
commit
bf016777c1
1 changed files with 70 additions and 84 deletions
|
@ -1,11 +1,11 @@
|
|||
# Contributor: Alex Yam <alex@alexyam.com>
|
||||
# Maintainer:
|
||||
# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
|
||||
pkgname=wasi-libcxx
|
||||
# match llvm version
|
||||
pkgver=18.1.8
|
||||
_llvmver="${pkgver%%.*}"
|
||||
_wasi_sdk_ver=wasi-sdk-22
|
||||
pkgrel=2
|
||||
pkgrel=3
|
||||
pkgdesc="WASI LLVM C++ standard library"
|
||||
url="https://libcxx.llvm.org/"
|
||||
arch="all"
|
||||
|
@ -36,100 +36,86 @@ prepare() {
|
|||
mv "$srcdir"/wasi-sdk-$_wasi_sdk_ver/cmake/Platform cmake
|
||||
}
|
||||
|
||||
_configure() {
|
||||
local target="$1"
|
||||
local destdir="$2"
|
||||
local want_threads="OFF"
|
||||
local extra_cflags=""
|
||||
|
||||
case "$target" in
|
||||
*-threads)
|
||||
want_threads="ON"
|
||||
extra_cflags="-pthread"
|
||||
;;
|
||||
esac
|
||||
|
||||
cmake -B "$destdir" -G Ninja -S runtimes -Wno-dev \
|
||||
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
|
||||
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON \
|
||||
-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_C_FLAGS="$CFLAGS $extra_flags --target=$target" \
|
||||
-DCMAKE_CXX_FLAGS="$CXXFLAGS $extra_flags --target=$target" \
|
||||
-DCMAKE_ASM_COMPILER_TARGET="$target" \
|
||||
-DCMAKE_CXX_COMPILER_TARGET="$target" \
|
||||
-DCMAKE_C_COMPILER_TARGET="$target" \
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="$target" \
|
||||
-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=$want_threads \
|
||||
-DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
|
||||
-DLIBCXX_HAS_MUSL_LIBC=ON \
|
||||
-DLIBCXX_HAS_PTHREAD_API=$want_threads \
|
||||
-DLIBCXX_HAS_WIN32_THREAD_API=OFF \
|
||||
-DLIBCXX_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
|
||||
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
|
||||
-DLIBCXXABI_ENABLE_PIC=OFF \
|
||||
-DLIBCXXABI_ENABLE_SHARED=OFF \
|
||||
-DLIBCXXABI_ENABLE_THREADS=$want_threads \
|
||||
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
|
||||
-DLIBCXXABI_HAS_PTHREAD_API=$want_threads \
|
||||
-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_SILENT_TERMINATE:BOOL=ON \
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
|
||||
-DUNIX=ON \
|
||||
-DWASI_SDK_PREFIX=/usr \
|
||||
-DLIBCXX_INSTALL_INCLUDE_DIR=include/$target/c++/v1 \
|
||||
-DLIBCXX_INSTALL_INCLUDE_TARGET_DIR=include/$target/c++/v1 \
|
||||
-DLIBCXXABI_INSTALL_INCLUDE_DIR=include/$target/c++/v1
|
||||
# last 3 lines copied from Chimera; the config headers record the overall
|
||||
# configuration which will differ if threads are enabled
|
||||
}
|
||||
|
||||
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 \
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
|
||||
-DUNIX=ON \
|
||||
-DWASI_SDK_PREFIX=/usr
|
||||
_configure wasm32-wasi build
|
||||
cmake --build build
|
||||
|
||||
cmake -B build-threads -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_C_FLAGS="$CFLAGS --target=wasm32-wasi-threads -pthread" \
|
||||
-DCMAKE_CXX_FLAGS="$CXXFLAGS --target=wasm32-wasi-threads -pthread" \
|
||||
-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=ON \
|
||||
-DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
|
||||
-DLIBCXX_HAS_MUSL_LIBC=ON \
|
||||
-DLIBCXX_HAS_PTHREAD_API=ON \
|
||||
-DLIBCXX_HAS_WIN32_THREAD_API=OFF \
|
||||
-DLIBCXX_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
|
||||
-DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi-threads \
|
||||
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
|
||||
-DLIBCXXABI_ENABLE_PIC=OFF \
|
||||
-DLIBCXXABI_ENABLE_SHARED=OFF \
|
||||
-DLIBCXXABI_ENABLE_THREADS=ON \
|
||||
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
|
||||
-DLIBCXXABI_HAS_PTHREAD_API=ON \
|
||||
-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-threads \
|
||||
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
|
||||
-DLIBCXXABI_USE_LLVM_UNWINDER=OFF \
|
||||
-DUNIX=ON \
|
||||
-DWASI_SDK_PREFIX=/usr
|
||||
_configure wasm32-wasi-threads build-threads
|
||||
cmake --build build-threads
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
DESTDIR="$pkgdir" cmake --install build-threads
|
||||
mkdir -p "$pkgdir"/usr/share/wasi-sysroot/include/c++/v1
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
|
|
Loading…
Reference in a new issue