mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-10-12 17:51:11 -04:00
dotnet-utils.eclass: superseeded by dotnet-pkg in ::gentoo
the only consumer in ::guru was xivlauncher, which got ported to dotnet-pkg in 1.0.5 Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
This commit is contained in:
1 parent
39d4970a0c
commit
ac877450a5
1 file changed
-194
@@ -1,194 +0,0 @@
|
||||
# Copyright 1999-2022 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
# @ECLASS: dotnet-utils.eclass
|
||||
# @MAINTAINER:
|
||||
# navi@vlhl.dev
|
||||
# @AUTHOR:
|
||||
# Anna Figueiredo Gomes <navi@vlhl.dev>
|
||||
# @SUPPORTED_EAPIS: 7 8
|
||||
# @BLURB: common functions and variables for dotnet builds
|
||||
|
||||
case ${EAPI} in
|
||||
7|8) ;;
|
||||
*) die "${ECLASS}: EAPI ${EAPI} unsupported." ;;
|
||||
esac
|
||||
|
||||
if [[ ! ${_DOTNET_UTILS_ECLASS} ]]; then
|
||||
_DOTNET_UTILS_ECLASS=1
|
||||
|
||||
inherit edo multiprocessing
|
||||
|
||||
# @ECLASS_VARIABLE: DOTNET_SLOT
|
||||
# @REQUIRED
|
||||
# @PRE_INHERIT
|
||||
# @DESCRIPTION:
|
||||
# Allows to choose a slot for dotnet
|
||||
|
||||
if [[ ! ${DOTNET_SLOT} ]]; then
|
||||
die "${ECLASS}: DOTNET_SLOT not set"
|
||||
fi
|
||||
|
||||
# Temporary, use the virtual once you can have multiple virtuals installed at once
|
||||
BDEPEND+=" || ( dev-dotnet/dotnet-sdk-bin:${DOTNET_SLOT} dev-dotnet/dotnet-sdk:${DOTNET_SLOT} )"
|
||||
|
||||
# @ECLASS_VARIABLE: DOTNET_EXECUTABLE
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# Sets the right executable name.
|
||||
|
||||
# @ECLASS_VARIABLE: DOTNET_CLI_TELEMETRY_OPTOUT
|
||||
# @OUTPUT_VARIABLE
|
||||
# @DESCRIPTION:
|
||||
# Disables telemetry on dotnet.
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
|
||||
# @ECLASS_VARIABLE: MSBUILDDISABLENODEREUSE
|
||||
# @OUTPUT_VARIABLE
|
||||
# @DESCRIPTION:
|
||||
# Stops the dotnet node after the build is done.
|
||||
export MSBUILDDISABLENODEREUSE=1
|
||||
|
||||
# @ECLASS_VARIABLE: DOTNET_NOLOGO
|
||||
# @OUTPUT_VARIABLE
|
||||
# @DESCRIPTION:
|
||||
# Disables the header logo when running dotnet commands.
|
||||
export DOTNET_NOLOGO=1
|
||||
|
||||
# Needed otherwise the binaries break
|
||||
RESTRICT+=" strip"
|
||||
|
||||
# @ECLASS_VARIABLE: NUGETS
|
||||
# @DEFAULT_UNSET
|
||||
# @DESCRIPTION:
|
||||
# String containing all nuget packages that need to be downloaded. Used by
|
||||
# the 'nuget_uris' function.
|
||||
#
|
||||
# Example:
|
||||
# @CODE
|
||||
# NUGETS="
|
||||
# ImGui.NET-1.87.2
|
||||
# Config.Net-4.19.0
|
||||
# "
|
||||
#
|
||||
# inherit dotnet-utils
|
||||
#
|
||||
# ...
|
||||
#
|
||||
# SRC_URI="$(nuget_uris)"
|
||||
# @CODE
|
||||
|
||||
# @FUNCTION: nuget_uris
|
||||
# @USAGE: <nuget...>
|
||||
# @DESCRIPTION:
|
||||
# Generates the URIs to put in SRC_URI to help fetch dependencies.
|
||||
# If no arguments provided, uses NUGETS variable.
|
||||
nuget_uris() {
|
||||
local -r regex='^([a-zA-Z0-9_.-]+)-([0-9]+\.[0-9]+\.[0-9]+.*)$'
|
||||
local nuget nugets
|
||||
|
||||
if (( $# != 0 )); then
|
||||
nugets="${@}"
|
||||
elif [[ ${NUGETS} ]]; then
|
||||
nugets="${NUGETS}"
|
||||
else
|
||||
eerror "NUGETS variable is not defined and nothing passed as argument"
|
||||
die "${FUNCNAME}: Can't generate SRC_URI from empty input"
|
||||
fi
|
||||
|
||||
for nuget in ${nugets}; do
|
||||
local name version url
|
||||
[[ ${nuget} =~ ${regex} ]] || die "Could not parse name and version from nuget: $nuget"
|
||||
name="${BASH_REMATCH[1]}"
|
||||
version="${BASH_REMATCH[2]}"
|
||||
url="https://api.nuget.org/v3-flatcontainer/${name}/${version}/${name}.${version}.nupkg"
|
||||
echo "${url}"
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: dotnet-utils_pkg_setup
|
||||
# @DESCRIPTION:
|
||||
# Sets up DOTNET_RUNTIME and DOTNET_EXECUTABLE variables for later use in edotnet.
|
||||
dotnet-utils_pkg_setup() {
|
||||
if use amd64; then
|
||||
DOTNET_RUNTIME="linux-x64"
|
||||
elif use arm; then
|
||||
DOTNET_RUNTIME="linux-arm"
|
||||
elif use arm64; then
|
||||
DOTNET_RUNTIME="linux-arm64"
|
||||
else
|
||||
die "Unsupported arch: ${ARCH}"
|
||||
fi
|
||||
|
||||
local _dotnet
|
||||
for _dotnet in dotnet{,-bin}-${DOTNET_SLOT}; do
|
||||
if type ${_dotnet} 1> /dev/null 2>&1; then
|
||||
DOTNET_EXECUTABLE=${_dotnet}
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: edotnet
|
||||
# @USAGE: <command> [args...]
|
||||
# @DESCRIPTION:
|
||||
# Call dotnet, passing the supplied arguments.
|
||||
edotnet() {
|
||||
debug-print-function ${FUNCNAME} "${@}"
|
||||
|
||||
local dotnet_args=(
|
||||
--runtime "${DOTNET_RUNTIME}"
|
||||
-maxcpucount:$(makeopts_jobs)
|
||||
)
|
||||
|
||||
edo "${DOTNET_EXECUTABLE}" "${@}" "${dotnet_args[@]}"
|
||||
}
|
||||
|
||||
# @FUNCTION: dotnet-utils_src_unpack
|
||||
# @DESCRIPTION:
|
||||
# Unpacks the package
|
||||
dotnet-utils_src_unpack() {
|
||||
debug-print-function ${FUNCNAME} "${@}"
|
||||
|
||||
local archive
|
||||
for archive in ${A}; do
|
||||
case "${archive}" in
|
||||
*.nupkg)
|
||||
;;
|
||||
*)
|
||||
unpack ${archive}
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
# @FUNCTION: dotnet-utils_src_prepare
|
||||
# @DESCRIPTION:
|
||||
# Restore the packages using 'dotnet restore'
|
||||
dotnet-utils_src_prepare() {
|
||||
debug-print-function ${FUNCNAME} "${@}"
|
||||
|
||||
edotnet restore --source "${DISTDIR}" || die "'dotnet restore' failed"
|
||||
default_src_prepare
|
||||
}
|
||||
|
||||
# @FUNCTION: dotnet-utils_src_compile
|
||||
# @DESCRIPTION:
|
||||
# Build the package using dotnet publish
|
||||
dotnet-utils_src_compile() {
|
||||
debug-print-function ${FUNCNAME} "${@}"
|
||||
|
||||
local publish_args=(
|
||||
--no-restore
|
||||
--configuration Release
|
||||
-p:Version=${PV}
|
||||
-p:DebugType=embedded
|
||||
--self-contained
|
||||
)
|
||||
|
||||
edotnet publish "${publish_args[@]}" || die "'dotnet publish' failed"
|
||||
}
|
||||
|
||||
fi
|
||||
|
||||
EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_compile
|
||||
Reference in new issue
Block a user