59 lines
1.6 KiB
Bash

# POWER Maintainer: Alexander Baldeck <alex.bldck@gmail.com>
# Maintainer: Filipe Laíns (FFY00) <lains@archlinux.org>
# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
pkgbase=tree-sitter
pkgname=(
tree-sitter
tree-sitter-cli
)
pkgver=0.24.3
pkgrel=2
arch=(x86_64 powerpc64le powerpc64 powerpc riscv64)
url=https://github.com/tree-sitter/tree-sitter
license=(MIT)
makedepends=(
cmake
git
rust
)
options=(!lto) # Needed for CLI build
source=("git+$url.git#commit=v$pkgver")
b2sums=('31f6e9ec2e5417fab8867127d0f07de08df85b932544eab4ddf3b96fe4cf6ffc58a5b52214a718c316fe5858c0cc8c25ba09938dc13ae6ed18529baba9e2b1d0')
validpgpkeys=(FCC13F47A6900D64239FF13BE67890ADC4227273) # Amaan Qureshi <amaanq12@gmail.com>
prepare() {
cd $pkgbase/cli
cargo fetch --locked --target "$(rustc -vV | sed -n 's/host: //p')"
}
build() {
cd $pkgbase
cmake -S lib -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON # Enable LTO
cmake --build build
cd cli
cargo build --release --locked --offline
}
package_tree-sitter() {
pkgdesc='Incremental parsing library'
provides=(libtree-sitter.so)
cd $pkgbase
DESTDIR="$pkgdir" cmake --install build
install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgbase
}
package_tree-sitter-cli() {
pkgdesc='CLI tool for developing, testing, and using Tree-sitter parsers'
depends=(gcc-libs)
optdepends=('nodejs: for the generate subcommand')
cd $pkgbase
install -Dt "$pkgdir"/usr/bin target/release/$pkgbase
install -Dm644 -t "$pkgdir"/usr/share/licenses/${pkgbase}-cli LICENSE
}