Apocrypha

clojure-clr-1.12.2gentoo

# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DOTNET_PKG_COMPAT="10.0"
NUGETS="
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
"

inherit dotnet-pkg

DESCRIPTION="Port of the functional programming language Clojure to the CLR and .NET"
HOMEPAGE="https://github.com/clojure/clojure-clr/"

if [[ "${PV}" == *9999* ]] ; then
	inherit git-r3

	EGIT_REPO_URI="https://github.com/clojure/${PN}"
else
	SRC_URI="https://github.com/clojure/${PN}/archive/refs/tags/clojure-${PV}.tar.gz
		-> ${P}.gh.tar.gz"
	S="${WORKDIR}/${PN}-clojure-${PV}"

	KEYWORDS="~amd64"
fi

SRC_URI+=" ${NUGET_URIS} "

LICENSE="Apache-2.0 BSD EPL-1.0 MIT"
SLOT="0"

DOCS=( README.md changes.md )
DOTNET_PKG_PROJECTS=( Clojure/Clojure.Main/Clojure.Main.csproj )

src_unpack() {
	dotnet-pkg_src_unpack

	if [[ -n "${EGIT_REPO_URI}" ]] ; then
		git-r3_src_unpack
	fi
}

src_prepare() {
	sed -e "s|<TargetFrameworks.*|<TargetFrameworks>net${DOTNET_PKG_COMPAT}</TargetFrameworks>|g" \
		-e "s|net9.0|net${DOTNET_PKG_COMPAT}|g" \
		-e "s|mono |${DOTNET_PKG_EXECUTABLE} exec |g" \
		-i Clojure/*/*.csproj \
		|| die

	# Portage variable "FEATURES" confuses dotnet.
	sed -e "s|\$(Features);||g" -i Clojure/Directory.Build.props || die

	dotnet-pkg_src_prepare
}

src_configure() {
	dotnet-pkg-base_restore Clojure/Clojure.sln
}

src_install() {
	dotnet-pkg-base_install
	dotnet-pkg-base_dolauncher "/usr/share/${P}/Clojure.Main" "${PN}"

	einstalldocs
}