git: 71ce3cb476ac - main - emulators/yuzu: switch to newer libc++

From: Jan Beich <jbeich_at_FreeBSD.org>
Date: Thu, 02 Feb 2023 06:37:35 UTC
The branch main has been updated by jbeich:

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

commit 71ce3cb476ac72829c957d0d1a739aa5ddad993a
Author:     Jan Beich <jbeich@FreeBSD.org>
AuthorDate: 2023-01-31 01:50:14 +0000
Commit:     Jan Beich <jbeich@FreeBSD.org>
CommitDate: 2023-02-02 06:36:27 +0000

    emulators/yuzu: switch to newer libc++
    
    Disable src/common/polyfill_ranges.h as it's not tested by upstream CI
    and breaks build with recent libc++ versions.
---
 emulators/yuzu/Makefile | 19 ++++++++++++++-----
 emulators/yuzu/distinfo |  4 ++--
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index 760dc264bc5b..193a66308d03 100644
--- a/emulators/yuzu/Makefile
+++ b/emulators/yuzu/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	yuzu
 PORTVERSION=	s20230130
+PORTREVISION=	1
 CATEGORIES=	emulators wayland
 .if make(makesum)
 MASTER_SITES=	https://api.yuzu-emu.org/gamedb/?dummy=/:gamedb
@@ -71,7 +72,6 @@ CMAKE_ON+=	BUNDLE_SPEEX # only used by cubeb tests
 CMAKE_OFF=	YUZU_CHECK_SUBMODULES YUZU_USE_EXTERNAL_SDL2 YUZU_USE_EXTERNAL_VULKAN_HEADERS
 CMAKE_OFF+=	${CMAKE_TESTING_ON}
 CMAKE_TESTING_ON=	YUZU_TESTS
-CXXFLAGS+=	-D_LIBCPP_HAS_NO_INCOMPLETE_RANGES # common/polyfill_ranges.h
 LDFLAGS+=	-Wl,--as-needed # Qt5Network
 ELF_FEATURES=	${PLIST_FILES:Mbin/*:S/^/+wxneeded:/}
 PLIST_FILES=	bin/${PORTNAME}-cmd \
@@ -145,17 +145,26 @@ post-patch-VAAPI-off:
 	@${REINPLACE_CMD} -i .nova '/pkg_check.*libva/d' \
 		${WRKSRC}/CMakeLists.txt
 
-# libc++ >= 14 defines std::ranges outside -D_LIBCPP_HAS_NO_INCOMPLETE_RANGES
-.if exists(/usr/include/c++/v1/__memory/concepts.h)
+# XXX Drop after FreeBSD 13.2 EOL around 2024-05-01 (don't forget distinfo)
+.if !exists(/usr/include/c++/v1/__ranges/as_rvalue_view.h) || make(makesum) || make(fetch)
+. if !exists(/usr/include/c++/v1/__memory/concepts.h)
+USES+=		llvm:min=14,build
+CC=		clang${LLVM_VERSION}
+CXX=		clang++${LLVM_VERSION}
+CPP=		clang-cpp${LLVM_VERSION}
+CONFIGURE_ENV+=	CC="${CC}" CXX="${CXX}" CPP="${CPP}"
+. endif
+
 # XXX Move into separate port and standardize via USES
-GH_TUPLE+=	llvm:llvm-project:llvmorg-13.0.1:libcxx
+GH_TUPLE+=	llvm:llvm-project:llvmorg-16.0.0-rc1:libcxx
 CXXFLAGS+=	-nostdinc++ -isystem${WRKDIR}/libcxx_prefix/include/c++/v1
-# Don't link against old libc++ to avoid ABI mismatch in Qt
+# Don't link against new libc++ to avoid ABI mismatch in Qt
 #LDFLAGS+=	-nostdlib++ -L${WRKDIR}/libcxx_prefix/lib -l:libc++.a -lcxxrt
 
 pre-configure:	bundled-libcxx
 bundled-libcxx:
 	@${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS:M*Ninja*} \
+		-DLIBCXX_INCLUDE_BENCHMARKS:BOOL=OFF \
 		-DCMAKE_INSTALL_PREFIX:PATH=${WRKDIR}/libcxx_prefix \
 		-B ${WRKDIR}/libcxx_build -S ${WRKSRC_libcxx}/libcxx
 	@${DO_MAKE_BUILD:NDESTDIR*} install -C ${WRKDIR}/libcxx_build
diff --git a/emulators/yuzu/distinfo b/emulators/yuzu/distinfo
index e967daffaf40..a68b4ac367a4 100644
--- a/emulators/yuzu/distinfo
+++ b/emulators/yuzu/distinfo
@@ -21,7 +21,7 @@ SHA256 (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 8629757290774a34ed
 SIZE (kinetiknz-cubeb-cubeb-0.2-1350-gf79e0cf_GH0.tar.gz) = 220847
 SHA256 (yhirose-cpp-httplib-v0.10.8-1-g305a7ab_GH0.tar.gz) = 2b8ebbe60c5fab1254e454518108cb8da5ee3a07e1cf9f432448d985efe4a003
 SIZE (yhirose-cpp-httplib-v0.10.8-1-g305a7ab_GH0.tar.gz) = 620778
-SHA256 (llvm-llvm-project-llvmorg-13.0.1_GH0.tar.gz) = 09c50d558bd975c41157364421820228df66632802a4a6a7c9c17f86a7340802
-SIZE (llvm-llvm-project-llvmorg-13.0.1_GH0.tar.gz) = 147290251
+SHA256 (llvm-llvm-project-llvmorg-16.0.0-rc1_GH0.tar.gz) = e1b8d991921c8e9564359b17955878716dc68201ded4699c6b175b14fe3085aa
+SIZE (llvm-llvm-project-llvmorg-16.0.0-rc1_GH0.tar.gz) = 180127224
 SHA256 (c17d71240b23.patch) = 4aaf5522ec3f7d393cec59638220d6142489c4e946060ec94444ca3f47e2b2a7
 SIZE (c17d71240b23.patch) = 7562