Files
haikuports/dev-libs/tree-sitter/tree_sitter-0.20.10~git.recipe
2023-10-14 23:10:24 -06:00

75 lines
1.7 KiB
Bash

SUMMARY="An incremental parsing system for programming tools"
DESCRIPTION="Tree-sitter is an extendable parsing system for various programming tools."
HOMEPAGE="https://tree-sitter.github.io/"
COPYRIGHT="2018-2023 Max Brunsfeld"
LICENSE="MIT"
REVISION="1"
srcGitRev="20924fa4cdeb10d82ac308481e39bf8519334e55"
SOURCE_URI="https://github.com/tree-sitter/tree-sitter/archive/$srcGitRev.tar.gz"
CHECKSUM_SHA256="8aa9b4ad2d8ab69177912e6872dc94bb973b295e8718d62a599a49b62f9a9e5d"
SOURCE_DIR="tree-sitter-$srcGitRev"
PATCHES="tree_sitter-$portVersion.patchset"
ARCHITECTURES="all !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
libVersion="0.0"
libVersionCompat="$libVersion compat >= 0"
PROVIDES="
tree_sitter$secondaryArchSuffix = $portVersion
lib:libtree_sitter$secondaryArchSuffix = $libVersionCompat
cmd:tree_sitter
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
tree_sitter${secondaryArchSuffix}_devel
devel:libtree_sitter$secondaryArchSuffix = $libVersionCompat
"
REQUIRES_devel="
tree_sitter$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:cargo$secondaryArchSuffix >= 0.70.0
cmd:make
"
BUILD()
{
export CARGO_HOME=$sourceDir/.cargo
# will become the default with rust 1.70
export CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse
cargo fetch --locked
make
cd cli
cargo build --release --locked --offline --all-features
}
INSTALL()
{
export CARGO_HOME=$sourceDir/.cargo
make PREFIX=$prefix INCLUDEDIR=$includeDir \
LIBDIR=$libDir install
install -Dm 755 target/release/tree-sitter -t $prefix/bin
prepareInstalledDevelLib libtree-sitter
fixPkgconfig
packageEntries devel \
"$developDir"
}