summaryrefslogtreecommitdiff
path: root/eclass
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2023-08-26 18:52:19 +0100
committerSam James <sam@gentoo.org>2023-08-27 21:26:13 +0100
commit21c41570673c156af3780b11cfbdf8cf42b3974d (patch)
tree6dd5684e008089ae165955c2aa5c8614d6273e26 /eclass
parentdist-kernel-utils.eclass: only sign image if it is a UKI (diff)
downloadgentoo-21c41570673c156af3780b11cfbdf8cf42b3974d.tar.gz
gentoo-21c41570673c156af3780b11cfbdf8cf42b3974d.tar.bz2
gentoo-21c41570673c156af3780b11cfbdf8cf42b3974d.zip
tree-sitter-grammar.eclass: force use of local parser.h
There shouldn't be a system-wide copy of parser.h and upstream plan on dropping this from dev-libs/tree-sitter as it can cause issues if there's a mismatch between the version used for the bundled generated parser vs the header used to build the library. Force use of the correct one in the dist tarball at src/tree_sitter/parser.h instead. Drop the dependency on dev-libs/tree-sitter given we were only depending on it for this header. Bug: https://github.com/tree-sitter/tree-sitter-bash/issues/199 Bug: https://bugs.gentoo.org/912716 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'eclass')
-rw-r--r--eclass/tree-sitter-grammar.eclass9
1 files changed, 4 insertions, 5 deletions
diff --git a/eclass/tree-sitter-grammar.eclass b/eclass/tree-sitter-grammar.eclass
index e74d18653b8a..b2563220cfc2 100644
--- a/eclass/tree-sitter-grammar.eclass
+++ b/eclass/tree-sitter-grammar.eclass
@@ -24,9 +24,6 @@ SRC_URI="https://github.com/tree-sitter/${PN}/archive/${TS_PV:-v${PV}}.tar.gz
-> ${P}.tar.gz"
S="${WORKDIR}"/${PN}-${TS_PV:-${PV}}/src
-# Needed for tree_sitter/parser.h
-DEPEND="dev-libs/tree-sitter"
-
BDEPEND+=" test? ( dev-util/tree-sitter-cli )"
IUSE+=" test"
RESTRICT+=" !test? ( test )"
@@ -61,8 +58,10 @@ tree-sitter-grammar_src_compile() {
# or scanner.cc.
tc-export CC CXX
- export CFLAGS="${CFLAGS} -fPIC"
- export CXXFLAGS="${CXXFLAGS} -fPIC"
+ # We want to use the bundled parser.h, not anything lurking on the system, hence -I
+ # See https://github.com/tree-sitter/tree-sitter-bash/issues/199#issuecomment-1694416505
+ export CFLAGS="${CFLAGS} -fPIC -I. -Itree_sitter"
+ export CXXFLAGS="${CXXFLAGS} -fPIC -I. -Itree_sitter"
local objects=( parser.o )
if [[ -f "${S}"/scanner.c || -f "${S}"/scanner.cc ]]; then