summaryrefslogtreecommitdiff
path: root/dev-dotnet/csharp-language-server/csharp-language-server-0.5.7.ebuild
blob: ab7d3aec623dadf2e71c8535f0340663f8a3e852 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DOTNET_COMPAT=6.0

inherit edo multiprocessing

DESCRIPTION="Roslyn-based LSP language server for C#"
HOMEPAGE="https://github.com/razzmatazz/csharp-language-server/"
SRC_URI="
	https://github.com/razzmatazz/${PN}/archive/${PV}.tar.gz
		-> ${P}.tar.gz
	https://dev.gentoo.org/~xgqt/distfiles/deps/${P}-prebuilt.tar.xz
"

LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="debug"

RDEPEND="virtual/dotnet-sdk:${DOTNET_COMPAT}"
BDEPEND="${RDEPEND}"

# Generated by dotnet.
QA_PREBUILT=".*"

src_prepare() {
	export DOTNET_CLI_TELEMETRY_OPTOUT=1
	export DOTNET_NOLOGO=1
	export DOTNET_CONFIGURATION=$(usex debug Debug Release)
	export DOTNET_OUTPUT="${WORKDIR}"/${P}_net${DOTNET_COMPAT}_${DOTNET_CONFIGURATION}/${PN}
	export NUGET_PACKAGES="${WORKDIR}"/nuget_packages

	default
}

src_configure() {
	edob dotnet restore "${S}"/src              \
		--source "${NUGET_PACKAGES}"            \
		-p:TargetFramework=net${DOTNET_COMPAT}
}

src_compile() {
	local myopts=(
		--configuration ${DOTNET_CONFIGURATION}
		--no-restore
		--no-self-contained
		--nologo
		--output "${DOTNET_OUTPUT}"
		-maxCpuCount:$(makeopts_jobs)
		-p:TargetFramework=net${DOTNET_COMPAT}
	)
	edob dotnet build ${myopts[@]} "${S}"/src
}

src_test() {
	local myopts=(
		--configuration ${DOTNET_CONFIGURATION}
		--no-restore
		--nologo
		-maxCpuCount:$(makeopts_jobs)
		-p:TargetFramework=net${DOTNET_COMPAT}
	)
	edob dotnet test ${myopts[@]} "${S}"/src
}

src_install() {
	mkdir -p "${ED}"/usr/share/ || die
	cp -r "${DOTNET_OUTPUT}" "${ED}"/usr/share/ || die

	dosym -r /usr/share/${PN}/CSharpLanguageServer /usr/bin/csharp-ls

	dodoc CHANGELOG.md README.md
}