summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 5b2b262fa6295c3f610f9b24c81ca107e2a3e4c3 (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
_dotnet_version=8.0
pkgname="csharp-ls"
pkgver=0.13.0
pkgrel=1
pkgdesc="Roslyn-based LSP language server for C#"
arch=("x86_64")
url="https://github.com/razzmatazz/csharp-language-server"
license=("MIT")
makedepends=("jq")
depends=("dotnet-sdk-$_dotnet_version")
source=("$url/archive/refs/tags/$pkgver.tar.gz")
sha256sums=('d969c914cefc8c0345a7e60ecbe2e6d9ec367d72c8ab10e5341884028e377857')
options=("staticlibs")

build(){
    local runtime_dotnet_version required_dotnet_version
    runtime_dotnet_version="$(dotnet --version)"
    required_dotnet_version="$(jq -r ".sdk.version" "$srcdir/csharp-language-server-$pkgver/global.json")"
    cd "$srcdir/csharp-language-server-$pkgver/src/CSharpLanguageServer"
    if [[ "$required_dotnet_version" != "$runtime_dotnet_version" ]]
    then
        # Hack SDK version
        echo "Removing global.json for using SDK provided by system..."
        rm "$srcdir/csharp-language-server-$pkgver/global.json"
    fi
    dotnet publish -c Release \
        --no-self-contained \
        -p:PackAsTool=false \
        -o "$srcdir/csharp-language-server-$pkgver/linux-out"
}
check(){
    cd "$srcdir/csharp-language-server-$pkgver"
    dotnet test -c Release --no-build
}
package(){
    mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/lib"
    cp -av "$srcdir/csharp-language-server-$pkgver/linux-out" \
        "$pkgdir/usr/lib/csharp-ls"
    ln -s ../lib/csharp-ls/CSharpLanguageServer "$pkgdir/usr/bin/csharp-ls"
    install -Dm644 "$srcdir/csharp-language-server-$pkgver/LICENSE" \
        "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}