public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Ionen Wolkens" <ionen@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: app-emulation/dxvk/
Date: Wed, 13 Jul 2022 14:39:25 +0000 (UTC)	[thread overview]
Message-ID: <1657722530.521451bd6a3834a7a190cade2dbb472ce32d18c4.ionen@gentoo> (raw)

commit:     521451bd6a3834a7a190cade2dbb472ce32d18c4
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 14:28:50 2022 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 14:28:50 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=521451bd

app-emulation/dxvk: add 1.10.2

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 app-emulation/dxvk/Manifest           |   1 +
 app-emulation/dxvk/dxvk-1.10.2.ebuild | 134 ++++++++++++++++++++++++++++++++++
 2 files changed, 135 insertions(+)

diff --git a/app-emulation/dxvk/Manifest b/app-emulation/dxvk/Manifest
index c26971ce4b08..2d6ed76b68c1 100644
--- a/app-emulation/dxvk/Manifest
+++ b/app-emulation/dxvk/Manifest
@@ -1 +1,2 @@
 DIST dxvk-1.10.1.tar.gz 1188138 BLAKE2B e4c5c5052de3f0976581317b9e6de148735198d2545e961ed4540be8660fbba0bcd30f81a1b55f032a1e00e226993d1ab3e4017b104f2829bf37d2ee4fc4420a SHA512 8fd34d9f14a7013cdc1957f63bf60feb19748fddc1cd6ec40cf271005f636de62965efb42ddf2598dad3e37a4f59a870bf769387b2534db93451d1ea6aa65410
+DIST dxvk-1.10.2.tar.gz 1199562 BLAKE2B 8605d80de3640845589727999da8d19f235eafd52dc693ddfc6a6c54da4525ab5a1418694767395e37cfd84ab55bfd33867cd8608ff2e34965759f68832f55ee SHA512 2a68ececd405e38b6a463637f98c871e53f83c0b232bbf45f08b6b2cac01637eecea90f9337d8ebc600e174a65fe2b10236b1b29afdbd0ad0a9d970a050678a4

diff --git a/app-emulation/dxvk/dxvk-1.10.2.ebuild b/app-emulation/dxvk/dxvk-1.10.2.ebuild
new file mode 100644
index 000000000000..cf84df747aaa
--- /dev/null
+++ b/app-emulation/dxvk/dxvk-1.10.2.ebuild
@@ -0,0 +1,134 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MULTILIB_COMPAT=( abi_x86_{32,64} )
+inherit flag-o-matic meson-multilib
+
+if [[ ${PV} == 9999 ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="https://github.com/doitsujin/dxvk.git"
+else
+	SRC_URI="https://github.com/doitsujin/dxvk/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+	KEYWORDS="-* ~amd64 ~x86"
+fi
+
+DESCRIPTION="Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine"
+HOMEPAGE="https://github.com/doitsujin/dxvk/"
+
+LICENSE="ZLIB"
+SLOT="0"
+IUSE="+abi_x86_32 crossdev-mingw +d3d9 +d3d10 +d3d11 debug +dxgi"
+REQUIRED_USE="
+	|| ( d3d9 d3d10 d3d11 dxgi )
+	d3d10? ( d3d11 )
+	dxgi? ( d3d11 )"
+
+BDEPEND="
+	dev-util/glslang
+	!crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )"
+
+pkg_pretend() {
+	[[ ${MERGE_TYPE} == binary ]] && return
+
+	if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then
+		local tool=-w64-mingw32-g++
+		for tool in $(usev abi_x86_64 x86_64${tool}) $(usev abi_x86_32 i686${tool}); do
+			if ! type -P ${tool} >/dev/null; then
+				eerror "With USE=crossdev-mingw, it is necessary to setup the mingw toolchain."
+				eerror "For instructions, please see: https://wiki.gentoo.org/wiki/Mingw"
+				use abi_x86_32 && use abi_x86_64 &&
+					eerror "Also, with USE=abi_x86_32, will need both i686 and x86_64 toolchains."
+				die "USE=crossdev-mingw is set but ${tool} was not found"
+			elif [[ ! $(LC_ALL=C ${tool} -v 2>&1) =~ "Thread model: posix" ]]; then
+				eerror "${PN} requires GCC to be built with --enable-threads=posix"
+				eerror "Please see: https://wiki.gentoo.org/wiki/Mingw#POSIX_threads_for_Windows"
+				die "USE=crossdev-mingw is set but ${tool} does not use POSIX threads"
+			fi
+		done
+	fi
+}
+
+src_prepare() {
+	default
+
+	sed -i "/^basedir=/s|=.*|=${EPREFIX}/usr/lib/${PN}|" setup_dxvk.sh || die
+}
+
+src_configure() {
+	use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH}
+
+	# AVX has a history of causing issues with this package, disable for safety
+	# https://github.com/Tk-Glitch/PKGBUILDS/issues/515
+	append-flags -mno-avx
+
+	if [[ ${CHOST} != *-mingw* ]]; then
+		[[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+		CHOST_amd64=x86_64-w64-mingw32
+		CHOST_x86=i686-w64-mingw32
+		CHOST=$(usex x86 ${CHOST_x86} ${CHOST_amd64})
+
+		strip-unsupported-flags
+	fi
+
+	multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+	# multilib's ${CHOST_amd64}-gcc -m32 is unusable with crossdev,
+	# unset again so meson eclass will set ${CHOST}-gcc + others
+	use crossdev-mingw && [[ ! -v MINGW_BYPASS ]] && unset AR CC CXX RC STRIP
+
+	local emesonargs=(
+		--prefix="${EPREFIX}"/usr/lib/${PN}
+		--{bin,lib}dir=x${MULTILIB_ABI_FLAG: -2}
+		$(meson_use {,enable_}d3d9)
+		$(meson_use {,enable_}d3d10)
+		$(meson_use {,enable_}d3d11)
+		$(meson_use {,enable_}dxgi)
+		$(usev !debug --strip) # portage won't strip .dll, so allow it here
+		-Denable_tests=false # needs wine/vulkan and is intended for manual use
+	)
+
+	meson_src_configure
+}
+
+multilib_src_install_all() {
+	dobin setup_dxvk.sh
+	dodoc README.md dxvk.conf
+
+	find "${ED}" -type f -name '*.a' -delete || die
+}
+
+pkg_preinst() {
+	[[ -e /usr/$(get_libdir)/dxvk/d3d11.dll ]] && DXVK_HAD_OVERLAY=
+}
+
+pkg_postinst() {
+	if [[ ! ${REPLACING_VERSIONS} ]]; then
+		elog "To enable ${PN} on a wine prefix, you can run the following command:"
+		elog
+		elog "	WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+		elog
+		elog "See ${EROOT}/usr/share/doc/${PF}/README.md* for details."
+	elif [[ -v DXVK_HAD_OVERLAY ]]; then
+		# temporary warning until this version is more widely used
+		elog "Gentoo's main repo ebuild for ${PN} uses different paths than most overlays."
+		elog "If you were using symbolic links in wine prefixes it may be necessary to"
+		elog "refresh them by re-running the command:"
+		elog
+		elog "	WINEPREFIX=/path/to/prefix setup_dxvk.sh install --symlink"
+		elog
+		elog "Also, if you were using /etc/${PN}.conf, ${PN} is no longer patched to load"
+		elog "it. See ${EROOT}/usr/share/doc/${PF}/README.md* for handling configs."
+	fi
+
+	# don't try to keep wine-*[vulkan] in RDEPEND, but still give a warning
+	local wine
+	for wine in app-emulation/wine-{vanilla,staging}; do
+		has_version ${wine} && ! has_version ${wine}[vulkan] &&
+			ewarn "${wine} was not built with USE=vulkan, ${PN} will not be usable with it"
+	done
+}


             reply	other threads:[~2022-07-13 14:39 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-13 14:39 Ionen Wolkens [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-03-13 22:10 [gentoo-commits] repo/gentoo:master commit in: app-emulation/dxvk/ Ionen Wolkens
2025-03-09 14:41 Ionen Wolkens
2025-02-14  8:00 Ionen Wolkens
2025-02-14  8:00 Ionen Wolkens
2025-02-05 14:10 Jakov Smolić
2025-02-05 11:27 Sam James
2025-01-22  9:55 Ionen Wolkens
2025-01-13 16:16 Ionen Wolkens
2024-12-31 23:51 Ionen Wolkens
2024-12-31 12:47 Sam James
2024-12-31  9:57 Sam James
2024-12-20 16:14 Ionen Wolkens
2024-12-10 18:53 Sam James
2024-12-10 14:37 Arthur Zamarin
2024-12-10  9:53 Ionen Wolkens
2024-11-18 12:07 Ionen Wolkens
2024-11-11 23:22 Ionen Wolkens
2024-11-11 23:22 Ionen Wolkens
2024-11-04 16:15 Ionen Wolkens
2024-10-16  7:41 Sam James
2024-10-16  7:41 Sam James
2024-09-26 23:05 Ionen Wolkens
2024-07-30 18:00 Arthur Zamarin
2024-07-30 18:00 Arthur Zamarin
2024-07-10 12:18 Ionen Wolkens
2024-05-22  3:32 Ionen Wolkens
2024-05-21  3:01 Ionen Wolkens
2024-05-10  4:26 Ionen Wolkens
2024-05-07 14:28 Ionen Wolkens
2024-04-27 21:46 Sam James
2024-04-27 21:46 Sam James
2024-03-28 10:10 Ionen Wolkens
2024-03-27 16:45 Ionen Wolkens
2024-03-24 18:39 Ionen Wolkens
2024-03-20 13:37 Ionen Wolkens
2024-03-20 13:37 Ionen Wolkens
2024-03-20  7:17 Ionen Wolkens
2024-02-09 16:18 Ionen Wolkens
2024-02-09 16:18 Ionen Wolkens
2023-10-01 13:35 Sam James
2023-10-01 13:35 Sam James
2023-09-04 17:12 Ionen Wolkens
2023-08-16 21:38 Ionen Wolkens
2023-08-15 20:22 Ionen Wolkens
2023-08-10 10:53 Ionen Wolkens
2023-06-26 10:12 Ionen Wolkens
2023-06-08 12:24 Arthur Zamarin
2023-06-08 12:23 Arthur Zamarin
2023-06-02  6:54 Ionen Wolkens
2023-05-25  4:16 Ionen Wolkens
2023-05-12 11:59 Ionen Wolkens
2023-05-12 11:59 Ionen Wolkens
2023-04-29  9:43 Ionen Wolkens
2023-04-17 20:44 Ionen Wolkens
2023-02-13 11:46 Ionen Wolkens
2023-01-24 21:40 Ionen Wolkens
2023-01-24 21:40 Ionen Wolkens
2022-12-15 21:32 Ionen Wolkens
2022-12-14 16:56 Ionen Wolkens
2022-11-29 15:02 Ionen Wolkens
2022-11-29 13:25 Ionen Wolkens
2022-11-29 12:13 Ionen Wolkens
2022-11-10 23:50 Ionen Wolkens
2022-11-10 23:50 Ionen Wolkens
2022-11-10 23:50 Ionen Wolkens
2022-10-31  0:54 Ionen Wolkens
2022-10-23  7:20 Ionen Wolkens
2022-09-27 23:46 Ionen Wolkens
2022-09-14 23:11 Ionen Wolkens
2022-09-01  0:34 Ionen Wolkens
2022-08-02 15:37 Ionen Wolkens
2022-07-16 17:03 Ionen Wolkens
2022-07-13 14:44 Ionen Wolkens
2022-06-28  7:46 Ionen Wolkens
2022-05-17  4:21 Ionen Wolkens
2022-05-14  2:23 Ionen Wolkens
2022-05-13  2:48 Ionen Wolkens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1657722530.521451bd6a3834a7a190cade2dbb472ce32d18c4.ionen@gentoo \
    --to=ionen@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox