Skip to content

Commit 7bea7a9

Browse files
feat: separate C bindings
Neovim requires separate libraries
1 parent d30de5d commit 7bea7a9

File tree

12 files changed

+156
-105
lines changed

12 files changed

+156
-105
lines changed

.gitattributes

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
*/src/tree_sitter/* linguist-generated
66
*/bindings/** linguist-generated
77

8+
common/common.mak linguist-generated
89
bindings/** linguist-generated
910
binding.gyp linguist-generated
1011
setup.py linguist-generated
11-
Makefile linguist-generated
1212
Package.swift linguist-generated
13+
14+
bindings/rust/lib.rs -linguist-generated

.github/workflows/ci.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,6 @@ jobs:
4242
uses: tree-sitter/[email protected]
4343
- name: Rebuild with default extensions
4444
run: npm run build
45-
env:
46-
EXTENSION_DEFAULT: 1
4745
- name: Verify grammar consistency
4846
run: git diff --exit-code -- */src/grammar.json
4947
fuzz:

Makefile

Lines changed: 4 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -1,99 +1,5 @@
1-
VERSION := 0.2.0
1+
all install uninstall clean:
2+
$(MAKE) -C tree-sitter-markdown $@
3+
$(MAKE) -C tree-sitter-markdown-inline $@
24

3-
LANGUAGE_NAME := tree-sitter-markdown
4-
5-
# repository
6-
PARSER_URL := https://github.com/tree-sitter-grammars/tree-sitter-markdown
7-
8-
TS ?= tree-sitter
9-
10-
# ABI versioning
11-
SONAME_MAJOR := $(word 1,$(subst ., ,$(VERSION)))
12-
SONAME_MINOR := $(word 2,$(subst ., ,$(VERSION)))
13-
14-
# install directory layout
15-
PREFIX ?= /usr/local
16-
INCLUDEDIR ?= $(PREFIX)/include
17-
LIBDIR ?= $(PREFIX)/lib
18-
PCLIBDIR ?= $(LIBDIR)/pkgconfig
19-
20-
# object files
21-
OBJS := $(patsubst %.c,%.o,$(wildcard */src/*.c))
22-
23-
# flags
24-
ARFLAGS := rcs
25-
override CFLAGS += -Itree-sitter-markdown/src -std=c11 -fPIC
26-
27-
# OS-specific bits
28-
ifeq ($(OS),Windows_NT)
29-
$(error "Windows is not supported")
30-
else ifeq ($(shell uname),Darwin)
31-
SOEXT = dylib
32-
SOEXTVER_MAJOR = $(SONAME_MAJOR).dylib
33-
SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).dylib
34-
LINKSHARED := $(LINKSHARED)-dynamiclib -Wl,
35-
ifneq ($(ADDITIONAL_LIBS),)
36-
LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS),
37-
endif
38-
LINKSHARED := $(LINKSHARED)-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SONAME_MAJOR).dylib,-rpath,@executable_path/../Frameworks
39-
else
40-
SOEXT = so
41-
SOEXTVER_MAJOR = so.$(SONAME_MAJOR)
42-
SOEXTVER = so.$(SONAME_MAJOR).$(SONAME_MINOR)
43-
LINKSHARED := $(LINKSHARED)-shared -Wl,
44-
ifneq ($(ADDITIONAL_LIBS),)
45-
LINKSHARED := $(LINKSHARED)$(ADDITIONAL_LIBS)
46-
endif
47-
LINKSHARED := $(LINKSHARED)-soname,lib$(LANGUAGE_NAME).so.$(SONAME_MAJOR)
48-
endif
49-
ifneq ($(filter $(shell uname),FreeBSD NetBSD DragonFly),)
50-
PCLIBDIR := $(PREFIX)/libdata/pkgconfig
51-
endif
52-
53-
all: lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) $(LANGUAGE_NAME).pc
54-
55-
lib$(LANGUAGE_NAME).a: $(OBJS)
56-
$(AR) $(ARFLAGS) $@ $^
57-
58-
lib$(LANGUAGE_NAME).$(SOEXT): $(OBJS)
59-
$(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@
60-
ifneq ($(STRIP),)
61-
$(STRIP) $@
62-
endif
63-
64-
$(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in
65-
sed -e 's|@URL@|$(PARSER_URL)|' \
66-
-e 's|@VERSION@|$(VERSION)|' \
67-
-e 's|@LIBDIR@|$(LIBDIR)|' \
68-
-e 's|@INCLUDEDIR@|$(INCLUDEDIR)|' \
69-
-e 's|@REQUIRES@|$(REQUIRES)|' \
70-
-e 's|@ADDITIONAL_LIBS@|$(ADDITIONAL_LIBS)|' \
71-
-e 's|=$(PREFIX)|=$${prefix}|' \
72-
-e 's|@PREFIX@|$(PREFIX)|' $< > $@
73-
74-
$(SRC_DIR)/parser.c: grammar.js
75-
$(TS) generate --no-bindings
76-
77-
install: all
78-
install -Dm644 bindings/c/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h
79-
install -Dm644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc
80-
install -Dm755 lib$(LANGUAGE_NAME).a '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a
81-
install -m755 lib$(LANGUAGE_NAME).$(SOEXT) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER)
82-
ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR)
83-
ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT)
84-
85-
uninstall:
86-
$(RM) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a \
87-
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) \
88-
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) \
89-
'$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) \
90-
'$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h \
91-
'$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc
92-
93-
clean:
94-
$(RM) $(OBJS) $(LANGUAGE_NAME).pc lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT)
95-
96-
test:
97-
$(TS) test
98-
99-
.PHONY: all install uninstall clean test
5+
.PHONY: all install uninstall clean

bindings/.gitignore

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bindings/go/binding.go

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/common.mak

Lines changed: 107 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
LANGUAGE_NAME := tree-sitter-markdown-inline
2+
3+
include ../common/common.mak

tree-sitter-markdown-inline/bindings/c/tree-sitter-markdown-inline.h

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tree-sitter-markdown-inline/bindings/c/tree-sitter-markdown-inline.pc.in

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tree-sitter-markdown/Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
LANGUAGE_NAME := tree-sitter-markdown
2+
3+
REQUIRES := tree-sitter-markdown-inline
4+
5+
include ../common/common.mak

0 commit comments

Comments
 (0)