sys-devel/parity-9999: follow upstream development

Package-Manager: Portage-2.3.24, Repoman-2.3.6
This commit is contained in:
Michael Haubenwallner
2018-07-03 16:35:22 +02:00
parent 7745a3f2a8
commit 0fc053670e
2 changed files with 54 additions and 27 deletions

View File

@@ -6,7 +6,18 @@
<name>Michael Haubenwallner</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">parity</remote-id>
<remote-id type="github">haubi/parity</remote-id>
</upstream>
<use>
<flag name="vc7_0">Enable support for Visual Studio 2002</flag>
<flag name="vc7_1">Enable support for Visual Studio 2003</flag>
<flag name="vc8_0">Enable support for Visual Studio 2005</flag>
<flag name="vc9_0">Enable support for Visual Studio 2008</flag>
<flag name="vc10_0">Enable support for Visual Studio 2010</flag>
<flag name="vc11_0">Enable support for Visual Studio 2012</flag>
<flag name="vc12_0">Enable support for Visual Studio 2013</flag>
<flag name="vc14_0">Enable support for Visual Studio 2015</flag>
<flag name="vc15_0">Enable support for Visual Studio 2017</flag>
<flag name="vc_x86">Enable support for 32bit Visual Studio compilers</flag>
</use>
</pkgmetadata>

View File

@@ -14,9 +14,15 @@ fi
DESCRIPTION="A POSIX to native Win32 Cross-Compiler Tool (requires Visual Studio)"
HOMEPAGE="https://github.com/haubi/parity"
parity-vcarchs() { echo x86 ; }
parity-vcvers() { echo 7_0 7_1 8_0 9_0 10_0 11_0 12_0 14_0 15_0 ; }
LICENSE="LGPL-3"
SLOT="0"
IUSE=""
IUSE="$(
for a in $(parity-vcarchs); do echo "+vc_${a}"; done
for v in $(parity-vcvers); do echo "+vc${v}"; done
)"
if [[ ${PV} == 9999 ]]; then
src_prepare() {
@@ -25,30 +31,40 @@ if [[ ${PV} == 9999 ]]; then
}
fi
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
# create i586-pc-winnt-g[++|cc|..] links..
local exeext=
[[ -f ${ED}usr/bin/parity.gnu.gcc.exe ]] && exeext=.exe
# create cross compiler syms, also for former versioned winnt profiles
local v t
for v in "" 5.2 6.1; do
dosym /usr/bin/parity.gnu.gcc${exeext} /usr/bin/i586-pc-winnt${v}-c++
dosym /usr/bin/parity.gnu.gcc${exeext} /usr/bin/i586-pc-winnt${v}-g++
for t in gcc ld windres ar nm ranlib strip; do
if [[ -e "${ED}"usr/bin/parity.gnu.${t}${exeext} ]]; then
dosym /usr/bin/parity.gnu.${t}${exeext} /usr/bin/i586-pc-winnt${v}-${t}
else
dosym /usr/bin/parity.gnu.${t} /usr/bin/i586-pc-winnt${v}-${t}
fi
done
parity-enabled-vcarchs() {
local enabled= a
for a in $(parity-vcarchs) ; do
if use vc_${a} ; then
enabled+=",${a}"
fi
done
# we don't need the header files installed by parity... private
# header files are supported with a patch from 2.1.0-r1 onwards,
# so they won't be there anymore, but -f does the job in any case.
rm -f "${ED}"/usr/include/*.h
echo ${enabled#,}
}
parity-enabled-vcvers() {
local enabled= v
for v in $(parity-vcvers) ; do
if use vc${v} ; then
enabled+=",${v/_/.}"
fi
done
echo ${enabled#,}
}
src_configure() {
local myconf=(
--enable-msvc-archs="$(parity-enabled-vcarchs)"
--enable-msvc-versions="$(parity-enabled-vcvers)"
--disable-default-msvc-version
)
econf "${myconf[@]}"
}
pkg_postinst() {
if [[ -n ${ROOT%/} ]] ; then
einfo "To enable all available MSVC versions, on the target machine please run:"
einfo " '${EPREFIX}/usr/bin/parity-setup' --enable-all"
else
"${EPREFIX}"/usr/bin/parity-setup --enable-all
fi
}