# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
KEYWORDS="amd64 ~x86"
RESTRICT="mirror"
inherit mono-env xbuild gac nupkg
SLOT="2" # NUnit V2 IS NO LONGER MAINTAINED OR UPDATED.
USE_DOTNET="net45"
IUSE="+${USE_DOTNET} developer debug +gac nupkg doc"
NAME="nunitv2"
HOMEPAGE="https://github.com/nunit/${NAME}"
EGIT_COMMIT="1b549f4f8b067518c7b54a5b263679adb83ccda4"
SRC_URI="${HOMEPAGE}/archive/${EGIT_COMMIT}.zip -> ${CATEGORY}-${PN}-${PV}.zip"
S="${WORKDIR}/${NAME}-${EGIT_COMMIT}"
DESCRIPTION="NUnit test suite for mono applications"
LICENSE="NUnit-License" # http://nunit.org/nuget/license.html
RDEPEND=">=dev-lang/mono-4.0.2.5
dev-util/nant[nupkg]
"
DEPEND="${RDEPEND}
"
S="${WORKDIR}/${NAME}-${EGIT_COMMIT}"
FILE_TO_BUILD=nunit.sln
METAFILETOBUILD="${S}/${FILE_TO_BUILD}"
# PN = Package name, for example vim.
# PV = Package version (excluding revision, if any), for example 6.3.
src_prepare() {
chmod -R +rw "${S}" || die
enuget_restore "${METAFILETOBUILD}"
if use debug; then
DIR="Debug"
else
DIR="Release"
fi
sed -i '/x86/d' "${S}/nuget/"*.nuspec || die
sed -i '/log4net/d' "${S}/nuget/"*.nuspec || die
sed -i 's#\\#/#g' "${S}/nuget/"*.nuspec || die
sed -i "s#\${package.version}#$(get_version_component_range 1-3)#g" "${S}/nuget/"*.nuspec || die
sed -i "s#\${project.base.dir}##g" "${S}/nuget/"*.nuspec || die
sed -i "s#\${current.build.dir}#bin/${DIR}#g" "${S}/nuget/"*.nuspec || die
default
}
src_compile() {
# /p:PublicSign=true
exbuild /p:SignAssembly=true /p:DelaySign=true "/p:AssemblyOriginatorKeyFile=${S}/src/nunit.snk" "${METAFILETOBUILD}"
sn -R "${S}/bin/${DIR}/lib/nunit-console-runner.dll" "${S}/src/nunit.snk" || die
sn -R "${S}/bin/${DIR}/framework/nunit.framework.dll" "${S}/src/nunit.snk" || die
enuspec "${S}/nuget/nunit.nuspec"
enuspec "${S}/nuget/nunit.runners.nuspec"
}
src_install() {
if use debug; then
DIR="Debug"
else
DIR="Release"
fi
SLOTTEDDIR="/usr/share/nunit-${SLOT}/"
insinto "${SLOTTEDDIR}"
doins bin/${DIR}/*.{config,dll,exe}
# install: cannot stat 'bin/Release/*.mdb': No such file or directory
if use developer; then
doins bin/${DIR}/*.mdb
fi
# into /usr
# dobin ${FILESDIR}/nunit-console
make_wrapper nunit264 "mono ${SLOTTEDDIR}/nunit-console.exe"
if use gac; then
if use debug; then
DIR="Debug"
else
DIR="Release"
fi
egacinstall "${S}/bin/${DIR}/lib/nunit-console-runner.dll"
egacinstall "${S}/bin/${DIR}/framework/nunit.framework.dll"
fi
if use doc; then
# dodoc ${WORKDIR}/doc/*.txt
# dohtml ${WORKDIR}/doc/*.html
# insinto /usr/share/${P}/samples
# doins -r ${WORKDIR}/samples/*
doins license.txt
fi
enupkg "${WORKDIR}/NUnit.$(get_version_component_range 1-3).nupkg"
enupkg "${WORKDIR}/NUnit.Runners.$(get_version_component_range 1-3).nupkg"
}