commit: d2f4ad54aa6d2c7444a98b8bfb2caccd491c4f09 Author: ArsenShnurkov <Arsen.Shnurkov <AT> gmail <DOT> com> AuthorDate: Mon Aug 17 13:29:19 2015 +0000 Commit: Heather Cynede <cynede <AT> gentoo <DOT> org> CommitDate: Mon Aug 17 13:29:19 2015 +0000 URL: https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=d2f4ad54
using xbuild instead of make dev-dotnet/nant/files/NAnt.sln.nuspec | 23 +++++++++ dev-dotnet/nant/metadata.xml | 13 ++++++ dev-dotnet/nant/nant-0.93.5019-r201504210.ebuild | 59 ++++++++++++++++++++++++ eclass/dotnet.eclass | 47 ++++++++++++++++++- 4 files changed, 140 insertions(+), 2 deletions(-) diff --git a/dev-dotnet/nant/files/NAnt.sln.nuspec b/dev-dotnet/nant/files/NAnt.sln.nuspec new file mode 100644 index 0000000..0a1b954 --- /dev/null +++ b/dev-dotnet/nant/files/NAnt.sln.nuspec @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<package > + <metadata> + <id>NAnt</id> + <version>0.93.5019</version> + <authors>[email protected]</authors> + <owners>dotnet</owners> + <licenseUrl>http://nant.sourceforge.net/license.html</licenseUrl> <!-- GPLv2 --> + <projectUrl>http://nant.sourceforge.net/</projectUrl> + <iconUrl>https://raw.githubusercontent.com/nant/nant/master/examples/Solution/cpp/WinForms/app.ico</iconUrl> + <requireLicenseAcceptance>false</requireLicenseAcceptance> + <description>Package description</description> + <releaseNotes>https://github.com/nant/nant/blob/master/doc/releasenotes.html</releaseNotes> + <copyright></copyright> + <tags>nant</tags> + <dependencies> + </dependencies> + </metadata> + <files> + <!-- * will cover .dll .mdb .config and .xml--> + <file src="build/$Configuration$/*" target="lib/net40/" /> + </files> +</package> \ No newline at end of file diff --git a/dev-dotnet/nant/metadata.xml b/dev-dotnet/nant/metadata.xml new file mode 100644 index 0000000..5c0862c --- /dev/null +++ b/dev-dotnet/nant/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>dotnet</herd> + <maintainer> + <email>[email protected]</email> + <name>dotnet</name> + </maintainer> + <use> + <flag name='developer'>enables debug information for any of debug and release builds</flag> + <flag name='nupkg'>creates local nuget package</flag> + </use> +</pkgmetadata> diff --git a/dev-dotnet/nant/nant-0.93.5019-r201504210.ebuild b/dev-dotnet/nant/nant-0.93.5019-r201504210.ebuild new file mode 100644 index 0000000..c4b280a --- /dev/null +++ b/dev-dotnet/nant/nant-0.93.5019-r201504210.ebuild @@ -0,0 +1,59 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +inherit mono-env dotnet + +NAME="nant" +HOMEPAGE="https://github.com/nant/${NAME}" + +EGIT_COMMIT="45ec8aa9ad3247f340731f4e8b953c498ad3019e" +SRC_URI="${HOMEPAGE}/archive/${EGIT_COMMIT}.zip -> ${PF}.zip" +S="${WORKDIR}/${NAME}-${EGIT_COMMIT}" + +SLOT="0" + +DESCRIPTION=".NET build tool" +LICENSE="GPL-2" +KEYWORDS="~amd64 ~ppc ~x86" +IUSE="developer nupkg debug" + +RDEPEND=">=dev-lang/mono-4.0.2.5" +DEPEND="${RDEPEND} + virtual/pkgconfig +" + +S="${WORKDIR}/${NAME}-${EGIT_COMMIT}" +SLN_FILE=NAnt.sln +METAFILETOBUILD="${S}/${SLN_FILE}" + +# This build is not parallel build friendly +MAKEOPTS="${MAKEOPTS} -j1" + +#src_prepare() { +# nuget restore "${METAFILETOBUILD}" || die +#} + +src_compile() { + exbuild "${METAFILETOBUILD}" + enuspec "${FILESDIR}/${SLN_FILE}.nuspec" +} + +src_install() { + DIR="" + if use debug; then + DIR="Debug" + else + DIR="Release" + fi + + insinto "/usr/share/nant/" + doins build/${DIR}/* + + make_wrapper nant "mono /usr/share/nant/NAnt.exe" + + enupkg "${WORKDIR}/NAnt.0.93.5019.nupkg" + + dodoc README.txt +} diff --git a/eclass/dotnet.eclass b/eclass/dotnet.eclass index 301a072..6222540 100644 --- a/eclass/dotnet.eclass +++ b/eclass/dotnet.eclass @@ -81,8 +81,51 @@ unset MONO_AOT_CACHE # @FUNCTION: exbuild # @DESCRIPTION: run xbuild with Release configuration and configurated FRAMEWORK exbuild() { - elog "xbuild ""$@"" /p:Configuration=Release /tv:4.0 /p:TargetFrameworkVersion=v""${FRAMEWORK}" ""$@""" || die" - xbuild /p:Configuration=Release /tv:4.0 /p:TargetFrameworkVersion=v"${FRAMEWORK}" "$@" || die + if use debug; then + CARGS=/p:Configuration=Debug + else + CARGS=/p:Configuration=Release + fi + + if use developer; then + SARGS=/p:DebugSymbols=True + else + SARGS=/p:DebugSymbols=False + fi + + elog "xbuild /tv:4.0 ""/p:TargetFrameworkVersion=v${FRAMEWORK}"" ""${CARGS}"" ""${SARGS}"" ""$@""" || die + xbuild /tv:4.0 "/p:TargetFrameworkVersion=v${FRAMEWORK}" "${CARGS}" "${SARGS}" "$@" || die +} + +# @FUNCTION: enuspec +# @DESCRIPTION: run nuget pack +enuspec() { + if use nupkg; then + if use debug; then + PROPS=Configuration=Debug + else + PROPS=Configuration=Release + fi + nuget pack -Properties "${PROPS}" -BasePath "${S}" -OutputDirectory "${WORKDIR}" -NonInteractive -Verbosity detailed "$@" || die + fi +} + +# @FUNCTION: enupkg +# @DESCRIPTION: installs .nupkg into local repository +enupkg() { + if use nupkg; then + if [ -d "/var/calculate/remote/distfiles" ]; then + # Control will enter here if the directory exist. + # this is necessary to handle calculate linux profiles feature (for corporate users) + elog "Installing .nupkg into /var/calculate/remote/packages/NuGet" + insinto /var/calculate/remote/packages/NuGet + else + # this is for all normal gentoo-based distributions + elog "Installing .nupkg into /usr/local/nuget/nupkg" + insinto /usr/local/nuget/nupkg + fi + doins "$@" + fi } # @FUNCTION: egacinstall
