aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2023-01-31 01:50:14 +0000
committerJan Beich <jbeich@FreeBSD.org>2023-02-02 06:39:02 +0000
commit3eff87c4dc8d063ac99abb4569c90a20291cbfd5 (patch)
treed53b91fb0866691016a56ce116ebc16067d8c0ee
parent97bd2053140538508e4d74a8a0ae023a832f2a56 (diff)
downloadports-3eff87c4dc8d063ac99abb4569c90a20291cbfd5.tar.gz
ports-3eff87c4dc8d063ac99abb4569c90a20291cbfd5.zip
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. (cherry picked from commit 71ce3cb476ac72829c957d0d1a739aa5ddad993a)
-rw-r--r--emulators/yuzu/Makefile19
-rw-r--r--emulators/yuzu/distinfo4
2 files changed, 16 insertions, 7 deletions
diff --git a/emulators/yuzu/Makefile b/emulators/yuzu/Makefile
index ab506cfb21ce..2a9a5a6f2127 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 \
@@ -151,17 +151,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