# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="8"
SLOT="0"
KEYWORDS="amd64 arm64"
RESTRICT="mirror test"
# These two inherit directives are placed before IUSE line because of dotnet_expand and msbuild_expand functions
inherit dotnet
inherit msbuild-framework
USE_DOTNET="net45"
USE_MSBUILD="msbuild15-9 msbuild15-7 msbuild15-4"
IUSE="+$(dotnet_expand ${USE_DOTNET}) +$(msbuild_expand ${USE_MSBUILD}) +msbuild debug developer"
inherit dotbuildtask
# see https://devmanual.gentoo.org/general-concepts/dependencies/
# «Starting with EAPI 7, build dependencies are split into two variables: BDEPEND and DEPEND.
# BDEPEND specifies dependencies applicable to CBUILD, i.e. programs that need to be executed during the build.
# DEPEND specifies dependencies for CHOST, i.e. packages that need to be found on built system, e.g. libraries and headers.
# In earlier EAPIs, all build dependencies are placed in DEPEND.»
# The RDEPEND ebuild variable should specify any dependencies which are required at runtime.
# This includes libraries (when dynamically linked), any data packages and (for interpreted languages) the relevant interpreter.
# Note that when installing from a binary package, only RDEPEND will be checked.
DEPEND="
dev-dotnet/msbuild-tasks-api:15.9
"
RDEPEND="
${DEPEND}
"
HOMEPAGE="https://github.com/ArsenShnurkov/mono-packaging-tools"
DESCRIPTION="Alternative build sequence with PkgConfig instead of NuGet"
LICENSE="GPL-3"
EGIT_COMMIT="413603c17671a973f63ad94e37d8f308b63de727"
GITHUB_PROJECTNAME="mono-packaging-tools"
GITHUB_ACCOUNT="ArsenShnurkov"
SRC_URI="https://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECTNAME}/archive/${EGIT_COMMIT}.tar.gz -> ${PN}-${PV}.tar.gz"
S="${WORKDIR}/${GITHUB_PROJECTNAME}-${EGIT_COMMIT}"
function references() {
echo -n \
$(reference_dependency Microsoft.Build.Framework-15.9) \
$(reference_framework System)
}
src_compile() {
mkdir -p $(bin_dir) || die
ecsc $(references) $(csharp_sources Gentoo.NET.Sdk/Gentoo.NET.Sdk.Tasks) $(output_dll Gentoo.NET.Sdk.Tasks)
}
src_install () {
if use msbuild; then
local targets=( ${USE_MSBUILD} )
for target in ${targets[@]}; do
local etarget="$( msbuild_expand ${target} )"
if use ${etarget}; then
local TARGET_SLOT=${target//msbuild/}
MSBUILD_TARGET="${target}"
einssdk "Gentoo.NET.Sdk" \
"${S}/Gentoo.NET.Sdk/Sdk/Sdk.props" \
"${S}/Gentoo.NET.Sdk/Sdk/Sdk.targets"
einstask "$(bin_dir)/Gentoo.NET.Sdk.Tasks.dll"
local SDK_NAME="Gentoo.NET.Sdk.IL"
einssdk "${SDK_NAME}" \
"${S}/${SDK_NAME}/Sdk/Sdk.props" \
"${S}/${SDK_NAME}/Sdk/Sdk.targets"
insinto "$(get_MSBuildSdksPath)/${SDK_NAME}/Targets"
doins "${S}/${SDK_NAME}/Targets/ilproj.targets"
fi
done
fi
}