Skip to content

Commit c4daeeb

Browse files
committed
Build tree-sitter from source
1 parent 02f18fa commit c4daeeb

22 files changed

+150
-78
lines changed

.gitmodules

+9
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,12 @@
44
[submodule "src/external/graphviz"]
55
path = src/external/graphviz
66
url = https://gitlab.com/graphviz/graphviz.git
7+
[submodule "src/external/tree-sitter/csharp-tree-sitter"]
8+
path = src/external/tree-sitter/csharp-tree-sitter
9+
url = https://github.com/tree-sitter/csharp-tree-sitter.git
10+
[submodule "src/external/tree-sitter/tree-sitter-c-sharp"]
11+
path = src/external/tree-sitter/tree-sitter-c-sharp
12+
url = https://github.com/tree-sitter/tree-sitter-c-sharp.git
13+
[submodule "src/external/tree-sitter/tree-sitter-rust"]
14+
path = src/external/tree-sitter/tree-sitter-rust
15+
url = https://github.com/tree-sitter/tree-sitter-rust.git

installer/arm64/prepare-out.cmd

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ dotnet publish -c "Release" -r win-arm64 --self-contained true --output %_PUBLIS
1717
xcopy %_PUBLISH_PATH% %_OUT_PATH% /i /c /e /y
1818
xcopy %_RESOURCES_PATH% %_OUT_PATH% /i /c /e /y
1919
xcopy %_EXTERNALS_PATH%\*.dll %_OUT_PATH% /i /c /y
20+
xcopy %_EXTERNALS_PATH%\tree-sitter\build_arm64\*.dll %_OUT_PATH% /i /c /y
2021
copy %_EXTERNALS_PATH%\capstone\build_arm64\Release\capstone.dll %_OUT_PATH%
2122
copy %_EXTERNALS_PATH%\capstone\build\Release\capstone.dll %_OUT_PATH%
2223
copy %_EXTERNALS_PATH%\graphviz\build\cmd\dot\Release\dot.exe %_OUT_PATH%

installer/x64/prepare-out.cmd

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ dotnet publish -c "Release" -r win-x64 --self-contained --output %_PUBLISH_PATH
1717
xcopy %_PUBLISH_PATH% %_OUT_PATH% /i /c /e /y
1818
xcopy %_RESOURCES_PATH% %_OUT_PATH% /i /c /e /y
1919
xcopy %_EXTERNALS_PATH%\*.dll %_OUT_PATH% /i /c /y
20+
xcopy %_EXTERNALS_PATH%\tree-sitter\build\*.dll %_OUT_PATH% /i /c /y
2021
copy %_EXTERNALS_PATH%\capstone\build\Release\capstone.dll %_OUT_PATH%
2122
copy %_EXTERNALS_PATH%\graphviz\build\cmd\dot\Release\dot.exe %_OUT_PATH%
2223
copy %_EXTERNALS_PATH%\graphviz\build\lib\cdt\Release\cdt.dll %_OUT_PATH%
-6.69 MB
Binary file not shown.
-5.68 MB
Binary file not shown.
-1.07 MB
Binary file not shown.

src/external/arm64/tree-sitter.dll

-292 KB
Binary file not shown.

src/external/build-external-arm64.cmd

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1+
for /f "delims=" %%i in ('"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -all -prerelease -property installationPath') do set _VS=%%i
2+
set _VS_ENV=%_VS%\VC\Auxiliary\Build\vcvarsamd64_arm64.bat
3+
call "%_VS_ENV%"
14
call build-capstone-arm64.cmd
2-
call build-graphviz-pgo.cmd
5+
call build-graphviz-pgo.cmd
6+
call build-tree-sitter-arm64.cmd

src/external/build-external.cmd

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1+
for /f "delims=" %%i in ('"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -all -prerelease -property installationPath') do set _VS=%%i
2+
set _VS_ENV=%_VS%\VC\Auxiliary\Build\vcvars64.bat
3+
call "%_VS_ENV%"
14
call build-capstone.cmd
2-
call build-graphviz-pgo.cmd
5+
call build-graphviz-pgo.cmd
6+
call build-tree-sitter.cmd
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cd tree-sitter
2+
cd csharp-tree-sitter
3+
git submodule update --init --recursive
4+
cd ..
5+
6+
rmdir /s /q build
7+
rmdir /s /q out
8+
mkdir build_arm64
9+
nmake
10+
copy out\*.dll build_arm64\*
11+
cd ..

src/external/build-tree-sitter.cmd

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
cd tree-sitter
2+
cd csharp-tree-sitter
3+
git submodule update --init --recursive
4+
cd ..
5+
6+
rmdir /s /q build
7+
rmdir /s /q out
8+
mkdir build
9+
nmake
10+
copy out\*.dll build\*
11+
cd ..

src/external/csharp-tree-sitter-patch.patch

-76
This file was deleted.

src/external/tree-sitter-c-sharp.dll

-6.7 MB
Binary file not shown.

src/external/tree-sitter-cpp.dll

-5.85 MB
Binary file not shown.

src/external/tree-sitter-rust.dll

-1.08 MB
Binary file not shown.

src/external/tree-sitter.dll

-309 KB
Binary file not shown.

src/external/tree-sitter/Makefile

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
########
2+
#
3+
# Tree-Sitter Base and Common Language Parsers
4+
#
5+
6+
CFLAGS=/nologo /FC /O2 /GL /Ob3 /Zc:inline /Gm- /Oi /Z7 /Gy /diagnostics:column /Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/include
7+
LFLAGS=/def:csharp-tree-sitter/tree-sitter/$(@B).def /incremental:no /debug /OPT:REF /OPT:ICF /LTCG
8+
LFLAGS2=/def:$(@B).def /incremental:no /debug /OPT:REF /OPT:ICF /LTCG
9+
10+
BIN=out
11+
12+
DLLS=\
13+
$(BIN)/tree-sitter.dll \
14+
$(BIN)/tree-sitter-cpp.dll \
15+
$(BIN)/tree-sitter-c-sharp.dll \
16+
$(BIN)/tree-sitter-rust.dll \
17+
18+
all: dirs $(DLLS)
19+
20+
dirs:
21+
@if not exist $(BIN)\nul mkdir $(BIN)
22+
23+
########
24+
#
25+
# Tree-Sitter Base Library
26+
#
27+
$(BIN)/tree-sitter.obj: \
28+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/alloc.c \
29+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/get_changed_ranges.c \
30+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/language.c \
31+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lexer.c \
32+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lib.c \
33+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/node.c \
34+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/parser.c \
35+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/query.c \
36+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/stack.c \
37+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/subtree.c \
38+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/tree.c \
39+
csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/tree_cursor.c
40+
cl $(CFLAGS) /Fo:$@ \
41+
/Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/src /Icsharp-tree-sitter/tree-sitter/tree-sitter/lib/src/unicode \
42+
/c csharp-tree-sitter/tree-sitter/tree-sitter/lib/src/lib.c
43+
44+
$(BIN)/tree-sitter.dll: $(BIN)/tree-sitter.obj
45+
cl /LD $(CFLAGS) /Fe:$@ $** /link $(LFLAGS)
46+
47+
48+
########
49+
#
50+
# C++
51+
#
52+
$(BIN)/tree-sitter-cpp-parser.obj: csharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/parser.c
53+
cl $(CFLAGS) /Fo:$@ /Icsharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/include /c $**
54+
55+
$(BIN)/tree-sitter-cpp-scanner.obj: csharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/scanner.c
56+
cl $(CFLAGS) /Fo:$@ /Icsharp-tree-sitter/tree-sitter/tree-sitter-cpp/src/include /c $**
57+
58+
$(BIN)/tree-sitter-cpp.dll: $(BIN)/tree-sitter-cpp-parser.obj $(BIN)/tree-sitter-cpp-scanner.obj
59+
cl /LD $(CFLAGS) /Fe:$@ $** /link $(LFLAGS)
60+
61+
########
62+
#
63+
# C#
64+
#
65+
$(BIN)/tree-sitter-c-sharp-parser.obj: tree-sitter-c-sharp/src/parser.c
66+
cl $(CFLAGS) /Fo:$@ /Itree-sitter-c-sharp/src/include /c $**
67+
68+
$(BIN)/tree-sitter-c-sharp-scanner.obj: tree-sitter-c-sharp/src/scanner.c
69+
cl $(CFLAGS) /Fo:$@ /Itree-sitter-c-sharp/src/include /c $**
70+
71+
$(BIN)/tree-sitter-c-sharp.dll: $(BIN)/tree-sitter-c-sharp-parser.obj $(BIN)/tree-sitter-c-sharp-scanner.obj
72+
cl /LD $(CFLAGS) /Fe:$@ $** /link $(LFLAGS2)
73+
74+
########
75+
#
76+
# Rust
77+
#
78+
$(BIN)/tree-sitter-rust-parser.obj: tree-sitter-rust/src/parser.c
79+
cl $(CFLAGS) /Fo:$@ /Itree-sitter-rust/src/include /c $**
80+
81+
$(BIN)/tree-sitter-rust-scanner.obj: tree-sitter-rust/src/scanner.c
82+
cl $(CFLAGS) /Fo:$@ /Itree-sitter-rust/src/include /c $**
83+
84+
$(BIN)/tree-sitter-rust.dll: $(BIN)/tree-sitter-rust-parser.obj $(BIN)/tree-sitter-rust-scanner.obj
85+
cl /LD $(CFLAGS) /Fe:$@ $** /link $(LFLAGS2)
86+
87+
########
88+
#
89+
# Clean
90+
#
91+
clean:
92+
-del *.obj $(BIN)\*.obj 2>nul
93+
-del $(BIN)\tree-sitter*.dll $(BIN)\tree-sitter*.exp $(BIN)\tree-sitter*.lib $(BIN)\tree-sitter*.pdb 2>nul
94+
-del tree-sitter*.dll tree-sitter*.exp tree-sitter*.lib tree-sitter*.pdb 2>nul
95+
-del $(BIN)\xred.* $(BIN)\test.exe $(BIN)\test.exp $(BIN)\test.pdb $(BIN)\test.lib 2>nul
96+
-del *~ 2>nul
97+
@-echo.
98+
@-echo.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
LIBRARY TREE-SITTER-C-SHARP
2+
EXPORTS
3+
tree_sitter_c_sharp
Submodule tree-sitter-rust added at 9c84af0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
LIBRARY TREE-SITTER-RUST
2+
EXPORTS
3+
tree_sitter_rust

0 commit comments

Comments
 (0)