git: af979dd126ff - main - devel/llvm15: add a lite FLAVOR

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Sun, 02 Apr 2023 02:23:54 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/ports/commit/?id=af979dd126ff49eabb75e48087ee284e288da322

commit af979dd126ff49eabb75e48087ee284e288da322
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2023-04-02 02:17:48 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2023-04-02 02:17:48 +0000

    devel/llvm15: add a lite FLAVOR
    
    The lite flavor is for when you just need a FreeBSD compiler (e.g., in
    CI).  By default it includes CLANG and LLD as well as backends required
    for FreeBSD and FreeBSD ports (BE_NATIVE, BE_AMDGPU, and BE_WASM).
    
    The lite install is ~350GiB on amd64 vs ~1.7GiB for default and it has
    only a single dependency (zstandard).  (The goal was no dependencies,
    but libzstd is a private lib in base.)
    
    Bump PORT_REVISION due to removal of clang libxml2 dependency.
    
    Sponsored by:   DARPA
---
 devel/llvm15/Makefile | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/devel/llvm15/Makefile b/devel/llvm15/Makefile
index 166758c601e8..86dce0ee1d8a 100644
--- a/devel/llvm15/Makefile
+++ b/devel/llvm15/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	llvm
 DISTVERSION=	15.0.7
-PORTREVISION=	2
+PORTREVISION=	3
 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}/
@@ -22,6 +22,10 @@ LICENSE:=	${LICENSE:NARM}
 
 LIB_DEPENDS=	libzstd.so:archivers/zstd
 
+FLAVORS=	default lite
+FLAVOR?=	${FLAVORS:[1]}
+lite_PKGNAMESUFFIX=	${LLVM_SUFFIX}-lite
+
 LLVM_RELEASE=	${DISTVERSION:C/rc.*//}
 LLVM_MAJOR=	${LLVM_RELEASE:C/\.[0-9]\.[0-9]$//}
 LLVM_SUFFIX=	${LLVM_MAJOR}
@@ -75,6 +79,7 @@ CMAKE_ARGS+=	-DLLVM_HOST_TRIPLE=${CONFIGURE_TARGET}
 CMAKE_ARGS+=	-DCMAKE_INSTALL_MANDIR:PATH="share/man"
 CMAKE_ARGS+=	-DLLVM_PARALLEL_LINK_JOBS=1
 CMAKE_ARGS+=	-DLLVM_ENABLE_Z3_SOLVER=OFF
+CMAKE_ARGS+=	-DLLVM_ENABLE_LIBXML2=OFF
 CMAKE_ARGS+=	-DLLVM_ENABLE_LIBEDIT=OFF
 CMAKE_ARGS+=	-DPython3_EXECUTABLE=${PYTHON_CMD}
 # LLVM likes to pick up ${LOCALBASE}/lib/libtinfo.so.*
@@ -85,7 +90,16 @@ CMAKE_ARGS+=	-DLLVM_ENABLE_TERMINFO=OFF
 CFLAGS+=	-DNDEBUG
 CXXFLAGS+=	-DNDEBUG
 
-OPTIONS_DEFINE=	BE_AMDGPU BE_WASM CLANG DOCS EXTRAS FLANG LIT LLD LLDB MLIR PYCLANG STATIC_LIBS
+OPTIONS_DEFINE=	BE_AMDGPU BE_WASM CLANG DOCS LLD STATIC_LIBS
+OPTIONS_DEFAULT=	BE_AMDGPU BE_WASM CLANG LLD
+OPTIONS_SINGLE=		BACKENDS
+OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
+OPTIONS_SUB=	yes
+
+.if ${FLAVOR:Mlite}
+OPTIONS_DEFAULT+=	BE_NATIVE
+.else
+OPTIONS_DEFINE+=	EXTRAS FLANG LIT LLDB MLIR OPENMP PYCLANG
 OPTIONS_DEFINE_aarch64=	OPENMP
 OPTIONS_DEFINE_amd64=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFINE_i386=	COMPILER_RT OPENMP
@@ -93,7 +107,8 @@ OPTIONS_DEFINE_powerpc=	COMPILER_RT GOLD
 OPTIONS_DEFINE_powerpc64=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFINE_powerpc64le=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFINE_riscv64=	COMPILER_RT OPENMP
-OPTIONS_DEFAULT=	BE_AMDGPU BE_STANDARD BE_WASM CLANG EXTRAS LIT LLD LLDB PYCLANG STATIC_LIBS
+
+OPTIONS_DEFAULT+=	BE_STANDARD EXTRAS LIT LLDB PYCLANG STATIC_LIBS
 OPTIONS_DEFAULT_aarch64=	OPENMP
 OPTIONS_DEFAULT_amd64=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFAULT_i386=	COMPILER_RT
@@ -101,14 +116,13 @@ OPTIONS_DEFAULT_powerpc=	COMPILER_RT GOLD
 OPTIONS_DEFAULT_powerpc64=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFAULT_powerpc64le=	COMPILER_RT GOLD OPENMP
 OPTIONS_DEFAULT_riscv64=	COMPILER_RT OPENMP
+
 OPTIONS_EXCLUDE_armv6=	FLANG
 OPTIONS_EXCLUDE_armv7=	FLANG
 OPTIONS_EXCLUDE_i386=	FLANG
 OPTIONS_EXCLUDE_powerpc=	FLANG
 OPTIONS_EXCLUDE_riscv64=	LLDB
-OPTIONS_SINGLE=		BACKENDS
-OPTIONS_SINGLE_BACKENDS=BE_FREEBSD BE_NATIVE BE_STANDARD
-OPTIONS_SUB=	yes
+.endif
 # All non-backend options
 _ALL_OPTIONS=	CLANG COMPILER_RT DOCS EXTRAS FLANG GOLD LIT LLD LLDB MLIR OPENMP PYCLANG STATIC_LIBS
 
@@ -133,7 +147,10 @@ CLANG_SUB_LIST=		XCC=clang${LLVM_SUFFIX} \
 			XCPP=clang-cpp${LLVM_SUFFIX} \
 			XLD=ld.lld${LLVM_SUFFIX} \
 			X_COMPILER_TYPE=clang
-CLANG_USE=		GNOME=libxml2
+.if ${FLAVOR:Mlite}
+# scan-build does require perl, but lite users can install it manually.
+CLANG_USE=		PERL5=build
+.endif
 COMPILER_RT_DESC=	Sanitizer libraries
 COMPILER_RT_CMAKE_ON=	-DCOMPILER_RT_INSTALL_PATH=${LLVM_PREFIX}/lib/clang/${LLVM_RELEASE}
 COMPILER_RT_PLIST_FILES=${_COMPILER_RT_LIBS:S|^|${_CRTLIBDIR}/|} \
@@ -183,6 +200,8 @@ PYCLANG_VARS=		_USES_PYTHON=python:3.6+
 PYCLANG_CMAKE_ON=	-DCLANG_PYTHON_BINDINGS_VERSIONS=${PYTHON_VER}
 STATIC_LIBS_DESC=	Install static libraries (does not effect sanitizers)
 
+CONFLICTS_INSTALL=	${PORTNAME}${LLVM_SUFFIX} ${PORTNAME}${LLVM_SUFFIX}-lite
+
 .if defined(WITH_DEBUG)
 CMAKE_BUILD_TYPE=	RelWithDebInfo
 STRIP=