mirror of
https://git.freebsd.org/ports.git
synced 2025-05-07 19:30:46 -04:00
LLVM 18 enables this by default, which is not wanted here. This is effectively a no-op for other LLVM versions. Context: https://github.com/WebAssembly/wasi-sdk/pull/377
89 lines
3.2 KiB
Makefile
89 lines
3.2 KiB
Makefile
PORTNAME= libcxx
|
|
DISTVERSION?= 0
|
|
PORTREVISION?= 0
|
|
CATEGORIES= devel lang
|
|
MASTER_SITES= https://github.com/llvm/llvm-project/releases/download/llvmorg-${DISTVERSION:S/rc/-rc/}/ \
|
|
https://${PRE_}releases.llvm.org/${LLVM_RELEASE}/${RCDIR}/
|
|
PKGNAMEPREFIX= wasi-
|
|
PKGNAMESUFFIX= ${LLVM_VERSION}
|
|
DISTNAME= llvm-project-${DISTVERSION}.src
|
|
DISTFILES= llvm-project-${DISTVERSION}.src${EXTRACT_SUFX}
|
|
|
|
MAINTAINER= vishwin@FreeBSD.org
|
|
COMMENT= C++ standard library for WebAssembly System Interface
|
|
WWW= https://llvm.org/
|
|
|
|
LICENSE= LLVM2
|
|
LICENSE_NAME= Apache License 2.0 with LLVM Exceptions
|
|
LICENSE_FILE= ${WRKSRC}/llvm/LICENSE.TXT
|
|
LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
|
|
|
|
.if ${DISTVERSION} == 0
|
|
IGNORE= is a meta port; there is nothing to build
|
|
PKGNAMESUFFIX= -master
|
|
.endif
|
|
|
|
BUILD_DEPENDS= ${WASI_SYSROOT}/include/stdarg.h:devel/wasi-libc \
|
|
wasi-compiler-rt${LLVM_VERSION}>0:devel/wasi-compiler-rt${LLVM_VERSION}
|
|
|
|
USES= cmake llvm:${LLVM_SUFFIX} tar:xz
|
|
|
|
LLVM_RELEASE= ${DISTVERSION:C/rc.*//}
|
|
LLVM_SUFFIX= ${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//}
|
|
DISTINFO_FILE= ${PORTSDIR}/${LLVM_PORT}/distinfo
|
|
SSP_UNSAFE= yes
|
|
NO_ARCH= yes
|
|
PLIST= ${.CURDIR}/pkg-plist
|
|
|
|
CONFIGURE_ENV+= CC="${CC}" CFLAGS="${CFLAGS}" \
|
|
CXX="${CXX}" CXXFLAGS="${CXXFLAGS}"
|
|
CC= ${LOCALBASE}/bin/clang${LLVM_VERSION}
|
|
CXX= ${LOCALBASE}/bin/clang++${LLVM_VERSION}
|
|
WASI_SYSROOT= ${LOCALBASE}/share/wasi-sysroot
|
|
TRIPLE= wasm32-wasi
|
|
WITHOUT_CPU_CFLAGS= yes
|
|
# try to sync with https://github.com/WebAssembly/wasi-sdk
|
|
# Makefile and wasi-sdk.cmake
|
|
CMAKE_INSTALL_PREFIX= ${PREFIX}/share/wasi-sysroot
|
|
CMAKE_SOURCE_PATH= ${WRKSRC}/runtimes
|
|
CMAKE_ARGS= -DCMAKE_AR=${LOCALBASE}/bin/llvm-ar${LLVM_VERSION} \
|
|
-DCMAKE_RANLIB=${LOCALBASE}/bin/llvm-ranlib${LLVM_VERSION} \
|
|
-DCMAKE_C_COMPILER_TARGET=${TRIPLE} \
|
|
-DCMAKE_CXX_COMPILER_TARGET=${TRIPLE} \
|
|
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
|
|
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
|
|
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY \
|
|
-DCMAKE_C_COMPILER_WORKS=ON \
|
|
-DCMAKE_CXX_COMPILER_WORKS=ON \
|
|
-DCMAKE_STAGING_PREFIX=${CMAKE_INSTALL_PREFIX} \
|
|
-DLLVM_CONFIG_PATH=${LOCALBASE}/bin/${LLVM_CONFIG} \
|
|
-DCXX_SUPPORTS_CXX11=ON \
|
|
-DLIBCXX_ENABLE_THREADS:BOOL=OFF \
|
|
-DLIBCXX_HAS_PTHREAD_API:BOOL=OFF \
|
|
-DLIBCXX_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
|
|
-DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
|
|
-DLIBCXX_HAS_WIN32_THREAD_API:BOOL=OFF \
|
|
-DLLVM_COMPILER_CHECKED=ON \
|
|
-DLIBCXX_ENABLE_SHARED:BOOL=OFF \
|
|
-DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY:BOOL=OFF \
|
|
-DLIBCXX_ENABLE_EXCEPTIONS:BOOL=OFF \
|
|
-DLIBCXX_ENABLE_FILESYSTEM:BOOL=OFF \
|
|
-DLIBCXX_CXX_ABI=libcxxabi \
|
|
-DLIBCXX_HAS_MUSL_LIBC:BOOL=ON \
|
|
-DLIBCXX_ABI_VERSION=2 \
|
|
-DLIBCXXABI_ENABLE_EXCEPTIONS:BOOL=OFF \
|
|
-DLIBCXXABI_ENABLE_SHARED:BOOL=OFF \
|
|
-DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
|
|
-DLIBCXXABI_ENABLE_THREADS:BOOL=OFF \
|
|
-DLIBCXXABI_HAS_PTHREAD_API:BOOL=OFF \
|
|
-DLIBCXXABI_HAS_EXTERNAL_THREAD_API:BOOL=OFF \
|
|
-DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY:BOOL=OFF \
|
|
-DLIBCXXABI_HAS_WIN32_THREAD_API:BOOL=OFF \
|
|
-DLIBCXXABI_USE_LLVM_UNWINDER:BOOL=OFF \
|
|
-DUNIX:BOOL=ON \
|
|
-DCMAKE_SYSROOT=${WASI_SYSROOT} \
|
|
-DLIBCXX_LIBDIR_SUFFIX=/${TRIPLE} \
|
|
-DLIBCXXABI_LIBDIR_SUFFIX=/${TRIPLE} \
|
|
-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi"
|
|
|
|
.include <bsd.port.mk>
|