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.20251114

CONFIGURE_ARGS=	\
		-DLLVM_MAIN_SRC_DIR=${WRKDIR}/llvm-${LLVM_V}.src \
		-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>
