COMMENT = C++ standard library for WebAssembly System Interface
DISTNAME = llvm-project-${LLVM_V}.src
PKGNAME = wasi-libcxx-${LLVM_V}
LIBPATH = libc++.a
BUILDSUBDIR = runtimes
# In transition from BSD-ish to Apache 2 + LLVM exceptions
PERMIT_PACKAGE = Yes
BUILD_DEPENDS += lang/wasi-libc>=0.20251114p1
TRIPLE = wasm32-wasip1
CONFIGURE_ARGS= \
-DLLVM_CMAKE_DIR=${LOCALBASE}/llvm${MODCLANG_VERSION}/lib/cmake/llvm \
-DCMAKE_C_COMPILER_WORKS=1 \
-DCMAKE_CXX_COMPILER_WORKS=1 \
-DCMAKE_C_COMPILER_TARGET=${TRIPLE} \
-DCMAKE_CXX_COMPILER_TARGET=${TRIPLE} \
-DCMAKE_STAGING_PREFIX=${WASI_SYSROOT} \
-DCMAKE_SYSROOT=${WASI_SYSROOT} \
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=OFF \
-DCMAKE_PLATFORM_RUNTIME_PATH=\; \
-DUNIX:BOOL=ON \
-DLIBCXX_ABI_VERSION=2 \
-DLIBCXX_CXX_ABI=libcxxabi \
-DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
-DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
-DLIBCXX_ENABLE_SHARED:BOOL=OFF \
-DLIBCXX_ENABLE_THREADS:BOOL=OFF \
-DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
-DLIBCXX_HAS_MUSL_LIBC:BOOL=ON \
-DLIBCXX_HAS_PTHREAD_API:BOOL=OFF \
-DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
-DLIBCXX_INCLUDE_TESTS:BOOL=OFF \
-DLIBCXX_LIBDIR_SUFFIX=/${TRIPLE} \
-DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
-DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
-DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
-DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
-DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
-DLIBCXXABI_USE_LLVM_UNWINDER:BOOL=OFF \
-DLIBCXXABI_LIBDIR_SUFFIX=/${TRIPLE} \
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
.include <bsd.port.mk>