dev-util/mingw64-toolchain: add IUSE=bin-symlinks

Kept off-by-default given crossdev is still preferred for
full featured mingw toolchain usage, just for anyone that
wants it (also works out better with ccache).

Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
This commit is contained in:
Ionen Wolkens
2024-05-07 07:12:48 -04:00
parent c283b1c54c
commit ab40dd1735
2 changed files with 34 additions and 1 deletions

View File

@@ -5,6 +5,13 @@
<email>ionen@gentoo.org</email>
<name>Ionen Wolkens</name>
</maintainer>
<use>
<flag name="bin-symlinks">
Symlink executables to usr/bin to be in default
PATH (conflicts with crossdev mingw, and crossdev
is preferable for a fully featured toolchain)
</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:gnu:gcc</remote-id>
<remote-id type="cpe">cpe:/a:gnu:binutils</remote-id>

View File

@@ -42,7 +42,7 @@ LICENSE="
SLOT="0"
# unkeyworded for testing
#KEYWORDS="-* ~amd64 ~x86"
IUSE="+abi_x86_32 custom-cflags debug"
IUSE="+abi_x86_32 bin-symlinks custom-cflags debug"
RDEPEND="
dev-libs/gmp:=
@@ -50,6 +50,16 @@ RDEPEND="
dev-libs/mpfr:=
sys-libs/zlib:=
virtual/libiconv
bin-symlinks? (
abi_x86_64? (
!cross-x86_64-w64-mingw32/binutils
!cross-x86_64-w64-mingw32/gcc
)
abi_x86_32? (
!cross-i686-w64-mingw32/binutils
!cross-i686-w64-mingw32/gcc
)
)
"
DEPEND="${RDEPEND}"
@@ -300,6 +310,14 @@ src_compile() {
popd >/dev/null || die
fi
if use bin-symlinks; then
mkdir -p -- "${MWT_D}${EPREFIX}"/usr/bin/ || die
local bin
for bin in "${sysroot}"/bin/*; do
ln -rs -- "${bin}" "${MWT_D}${EPREFIX}"/usr/bin/ || die
done
fi
# portage doesn't know the right strip executable to use for CTARGET
# and it can lead to .a mangling, notably with 32bit (breaks toolchain)
dostrip -x ${mwtdir}/{${CTARGET}/lib{,32},lib/gcc/${CTARGET}}
@@ -319,6 +337,9 @@ src_install() {
}
pkg_postinst() {
use bin-symlinks && has_version dev-util/shadowman && [[ ! ${ROOT} ]] &&
eselect compiler-shadow update all
if [[ ! ${REPLACING_VERSIONS} ]]; then
elog "Note that this package is primarily intended for Wine and related"
elog "packages to depend on without needing a manual crossdev setup."
@@ -337,3 +358,8 @@ pkg_postinst() {
ewarn "packages and optionally only one needs to be kept."
fi
}
pkg_postrm() {
use bin-symlinks && has_version dev-util/shadowman && [[ ! ${ROOT} ]] &&
eselect compiler-shadow clean all
}