[packages/tree-sitter] package rust based cli tool
atler
atler at pld-linux.org
Sat Sep 3 12:58:31 CEST 2022
commit a056e4c8c2da3c5241dd58e5c2c053ed0232ac19
Author: Jan Palus <atler at pld-linux.org>
Date: Sat Sep 3 12:55:12 2022 +0200
package rust based cli tool
tree-sitter.spec | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 66 insertions(+), 1 deletion(-)
---
diff --git a/tree-sitter.spec b/tree-sitter.spec
index 2be5585..f88b59b 100644
--- a/tree-sitter.spec
+++ b/tree-sitter.spec
@@ -1,3 +1,9 @@
+#
+# Conditional build:
+%bcond_without cli # don't build cli tool for generating and testing parsers
+
+%define crates_ver 0.20.7
+
Summary: An incremental parsing system for programming tools
Name: tree-sitter
Version: 0.20.7
@@ -6,7 +12,16 @@ License: MIT
Group: Libraries
Source0: https://github.com/tree-sitter/tree-sitter/archive/v%{version}/%{name}-%{version}.tar.gz
# Source0-md5: f8fddc6c47ae32c13a6a774b1060a068
+Source1: %{name}-crates-%{crates_ver}.tar.xz
+# Source1-md5: 6a9d6656c53a88badbe754064a91f8b8
URL: https://tree-sitter.github.io
+BuildRequires: rpmbuild(macros) >= 2.004
+%if %{with cli}
+BuildRequires: cargo
+BuildRequires: rust
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -37,8 +52,36 @@ Requires: %{name}-devel = %{version}-%{release}
%description static
Static tree-sitter library.
+%package cli
+Summary: tree-sitter command line utility
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: gcc
+Requires: gcc-c++
+Requires: nodejs
+
+%description cli
+The Tree-sitter CLI allows you to develop, test, and use Tree-sitter
+grammars from the command line.
+
%prep
-%setup -q
+%setup -q %{?with_cli:-a1}
+
+%if %{with cli}
+%{__mv} -f tree-sitter-%{crates_ver}/cli/vendor/* cli/vendor
+
+export CARGO_HOME="$(pwd)/cli/.cargo"
+
+mkdir -p "$CARGO_HOME"
+cat >$CARGO_HOME/config <<EOF
+[source.crates-io]
+registry = 'https://github.com/rust-lang/crates.io-index'
+replace-with = 'vendored-sources'
+
+[source.vendored-sources]
+directory = '$PWD/cli/vendor'
+EOF
+%endif
%build
%{__make} \
@@ -50,6 +93,13 @@ Static tree-sitter library.
CFLAGS="%{rpmcppflags} %{rpmcflags}" \
LDFLAGS="%{rpmldflags}"
+%if %{with cli}
+export CARGO_HOME="$(pwd)/cli/.cargo"
+cd cli
+%cargo_build --frozen
+cd ..
+%endif
+
%install
rm -rf $RPM_BUILD_ROOT
@@ -60,6 +110,14 @@ rm -rf $RPM_BUILD_ROOT
LIBDIR="%{_libdir}" \
PCLIBDIR="%{_pkgconfigdir}"
+%if %{with cli}
+export CARGO_HOME="$(pwd)/cli/.cargo"
+cd cli
+%cargo_install --frozen --root $RPM_BUILD_ROOT%{_prefix} --path $PWD
+cd ..
+%{__rm} $RPM_BUILD_ROOT%{_prefix}/.crates*
+%endif
+
%clean
rm -rf $RPM_BUILD_ROOT
@@ -81,3 +139,10 @@ rm -rf $RPM_BUILD_ROOT
%files static
%defattr(644,root,root,755)
%{_libdir}/libtree-sitter.a
+
+%if %{with cli}
+%files cli
+%defattr(644,root,root,755)
+%doc cli/README.md
+%attr(755,root,root) %{_bindir}/tree-sitter
+%endif
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/tree-sitter.git/commitdiff/a056e4c8c2da3c5241dd58e5c2c053ed0232ac19
More information about the pld-cvs-commit
mailing list