COMMENT =	C++ standard library ABI for WebAssembly System Interface

DISTNAME =	llvm-${LLVM_V}.src
PKGNAME =	wasi-libcxxabi-${LLVM_V}
LIBPATH =	wasm32-wasi/libc++abi.a
BUILDSUBDIR =	libcxxabi

# In transition from BSD-ish to Apache 2 + LLVM exceptions
PERMIT_PACKAGE =	Yes

BUILD_DEPENDS +=	lang/wasi-libc
BUILD_DEPENDS +=	lang/wasi-sdk/libcxx

CONFIGURE_ARGS=	-DLLVM_PATH=${WRKDIR}/${DISTNAME} \
		-DCMAKE_C_COMPILER_WORKS=1 \
		-DCMAKE_CXX_COMPILER_WORKS=1 \
		-DCMAKE_CXX_COMPILER_TARGET=wasm32-wasi \
		-DCMAKE_STAGING_PREFIX=${WASI_SYSROOT} \
		-DCMAKE_SYSROOT=${WASI_SYSROOT} \
		-DUNIX:BOOL=ON \
		-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
		-DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
		-DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
		-DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
		-DLIBCXXABI_HAS_COMMENT_LIB_PRAGMA:BOOL=ON \
		-DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
		-DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
		-DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
		-DLIBCXXABI_LIBCXX_INCLUDES=${WASI_SYSROOT}/include \
		-DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
		-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_FNO_EXCEPTIONS_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_NOSTDLIBXX_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WALL_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_W_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WWRITE_STRINGS_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WERROR_EQ_RETURN_TYPE_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WUNDEF_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WNO_SUGGEST_OVERRIDE_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WNO_ERROR_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_EHS_FLAG:BOOL=OFF \
		-DLIBCXXABI_SUPPORTS_EHA_FLAG:BOOL=OFF \
		-DLIBCXXABI_SUPPORTS_WCHAR_SUBSCRIPTS_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WCONVERSION_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WMISMATCHED_TAGS_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WMISSING_BRACES_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WNEWLINE_EOF_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WUNUSED_FUNCTION_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSHADOW_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSHORTEN_64_TO_32_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSIGN_COMPARE_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSIGN_CONVERSION_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSTRICT_ALIASING_EQ_2_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WSTRICT_OVERFLOW_EQ_4_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WUNUSED_PARAMETER_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WUNUSED_VARIABLE_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_WX_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_PEDANTIC_FLAG:BOOL=ON \
		-DLIBCXXABI_SUPPORTS_FSTRICT_ALIASING_FLAG:BOOL=ON

.include <bsd.port.mk>
