diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2022-05-17 22:14:51 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2022-05-20 16:01:45 -0400 |
commit | 04a3486edf82062ddc9dacd30c0bc45101022a72 (patch) | |
tree | d44b63bb4ce6fd6e77ad9adc77ee73400c99cd62 | |
parent | sys-kernel/gentoo-sources: Stabilize 4.9.315 arm, #846575 (diff) | |
download | gentoo-04a3486edf82062ddc9dacd30c0bc45101022a72.tar.gz gentoo-04a3486edf82062ddc9dacd30c0bc45101022a72.tar.bz2 gentoo-04a3486edf82062ddc9dacd30c0bc45101022a72.zip |
app-emulation/wine-vanilla: support building with mingw64-toolchain
This allows USE=mingw to be usable without manually using crossdev
first to ease usage for users and automated testing.
Old behavior using crossdev still available with USE=crossdev-mingw,
albeit new one should offer better stability given mingw64-toolchain
is intended/tested especially to build wine+dxvk+vkd3d-proton.
Given wine is pushing PE conversions and some things work better with
PE files (e.g. Blizzard games, Proton also uses --with-mingw), it may
be useful for the prospect of making this a default at some point.
Note that mingw64-toolchain's ${MULTILIB_USEDEP} does belong in BDEPEND
(unless <EAPI-7), as it'll use cross libraries located in BROOT.
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
-rw-r--r-- | app-emulation/wine-vanilla/metadata.xml | 4 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-6.0.2.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.0.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.5-r1.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.6-r1.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.7.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-7.8.ebuild | 46 | ||||
-rw-r--r-- | app-emulation/wine-vanilla/wine-vanilla-9999.ebuild | 46 |
9 files changed, 148 insertions, 224 deletions
diff --git a/app-emulation/wine-vanilla/metadata.xml b/app-emulation/wine-vanilla/metadata.xml index 8972283b6d89..dcf09b834f72 100644 --- a/app-emulation/wine-vanilla/metadata.xml +++ b/app-emulation/wine-vanilla/metadata.xml @@ -18,6 +18,10 @@ This variant of the Wine packaging does not include external patchsets </longdescription> <use> <flag name="capi">Enable ISDN support via CAPI</flag> + <flag name="crossdev-mingw"> + Use <pkg>sys-devel/crossdev</pkg> for the toolchain rather than + <pkg>dev-util/mingw64-toolchain</pkg> (requires manual setting up) + </flag> <flag name="custom-cflags">Bypass strip-flags; use at your own peril</flag> <flag name="dos">Pull in <pkg>games-emulation/dosbox</pkg> to run DOS applications</flag> <flag name="faudio">Pull in <pkg>app-emulation/faudio</pkg> to provide XAudio2 functionality</flag> diff --git a/app-emulation/wine-vanilla/wine-vanilla-6.0.2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-6.0.2.ebuild index 1a3c42a09643..9810db168765 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-6.0.2.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-6.0.2.ebuild @@ -34,9 +34,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos +lcms ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama +xml" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +faudio +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos +lcms ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama +xml" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -128,7 +129,8 @@ DEPEND="${COMMON_DEPEND} virtual/pkgconfig virtual/yacc X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" + xinerama? ( x11-base/xorg-proto ) + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" # These use a non-standard "Wine" category, which is provided by # /etc/xdg/applications-merged/wine.menu @@ -194,32 +196,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usex abi_x86_64 x86_64${mingw} '') $(usex abi_x86_32 i686${mingw} ''); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -315,6 +303,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${EPREFIX}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild index 352885e11423..1992efdf9908 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.0-r2.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -49,7 +50,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -185,32 +187,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -306,6 +294,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.0.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.0.ebuild index 90894fbc6aef..74051ef469f0 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.0.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.0.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -121,7 +122,8 @@ DEPEND="${COMMON_DEPEND} virtual/pkgconfig virtual/yacc X? ( x11-base/xorg-proto ) - xinerama? ( x11-base/xorg-proto )" + xinerama? ( x11-base/xorg-proto ) + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" # These use a non-standard "Wine" category, which is provided by # /etc/xdg/applications-merged/wine.menu @@ -184,32 +186,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usex abi_x86_64 x86_64${mingw} '') $(usex abi_x86_32 i686${mingw} ''); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -305,6 +293,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${EPREFIX}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.5-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.5-r1.ebuild index 11829957a62f..e6242d06fb43 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.5-r1.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.5-r1.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -49,7 +50,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -186,32 +188,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -307,6 +295,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.6-r1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.6-r1.ebuild index 7e5368175d7d..b0609a8bff36 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.6-r1.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.6-r1.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -49,7 +50,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -185,32 +187,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -306,6 +294,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.7.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.7.ebuild index 7e5368175d7d..b0609a8bff36 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.7.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.7.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vkd3d vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 ) @@ -49,7 +50,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -185,32 +187,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -306,6 +294,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-7.8.ebuild b/app-emulation/wine-vanilla/wine-vanilla-7.8.ebuild index 0ff4ad29a37e..25c7af87ecba 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-7.8.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-7.8.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 @@ -48,7 +49,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -183,32 +185,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -304,6 +292,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild index 0ff4ad29a37e..25c7af87ecba 100644 --- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild +++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild @@ -35,9 +35,10 @@ SRC_URI="${SRC_URI} LICENSE="LGPL-2.1" SLOT="${PV}" -IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi crossdev-mingw cups custom-cflags dos +fontconfig +gecko gphoto2 gssapi gstreamer kerberos ldap mingw +mono mp3 netapi nls odbc openal opencl +opengl osmesa oss +perl pcap pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks +unwind usb v4l vulkan +X +xcomposite xinerama" REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) X? ( truetype ) + crossdev-mingw? ( mingw ) elibc_glibc? ( threads ) osmesa? ( opengl ) test? ( abi_x86_32 )" # osmesa-opengl #286560 # X-truetype #551124 @@ -48,7 +49,8 @@ RESTRICT="test" BDEPEND="sys-devel/flex virtual/yacc - virtual/pkgconfig" + virtual/pkgconfig + !crossdev-mingw? ( dev-util/mingw64-toolchain[${MULTILIB_USEDEP}] )" COMMON_DEPEND=" X? ( @@ -183,32 +185,18 @@ pkg_pretend() { fi fi - if use mingw && use abi_x86_32 && ! has_version "cross-i686-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-i686-w64-mingw32' compiler and its runtime for 32-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target i686-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." - fi - - if use mingw && use abi_x86_64 && ! has_version "cross-x86_64-w64-mingw32/gcc"; then - eerror - eerror "USE=\"mingw\" is currently experimental, and requires the" - eerror "'cross-x86_64-w64-mingw32' compiler and its runtime for 64-bit builds." - eerror - eerror "These can be installed by using 'sys-devel/crossdev':" - eerror - eerror "crossdev --target x86_64-w64-mingw32" - eerror - eerror "For more information on setting up MinGW, see: https://wiki.gentoo.org/wiki/Mingw" - eerror - die "MinGW build was enabled, but no compiler to support it was found." + if use crossdev-mingw && [[ ! -v MINGW_BYPASS ]]; then + local mingw=-w64-mingw32 + for mingw in $(usev abi_x86_64 x86_64${mingw}) $(usev abi_x86_32 i686${mingw}); do + type -P ${mingw}-gcc && continue + eerror "With USE=crossdev-mingw, you must prepare the MinGW toolchain" + eerror "yourself by installing sys-devel/crossdev then running:" + eerror + eerror " crossdev --target ${mingw}" + eerror + eerror "For more information, please see: https://wiki.gentoo.org/wiki/Mingw" + die "USE=crossdev-mingw is enabled, but ${mingw}-gcc was not found" + done fi } @@ -304,6 +292,8 @@ src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use mingw; then + use crossdev-mingw || PATH=${BROOT}/usr/lib/mingw64-toolchain/bin:${PATH} + export CROSSCFLAGS="${CFLAGS}" fi |