diff options
author | Eli Zaretskii <eliz@gnu.org> | 2022-10-16 16:22:09 +0300 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2022-10-16 16:22:09 +0300 |
commit | 9d3f8912b431ed5540d9d06d85b7e338732268c9 (patch) | |
tree | 0b6fe69ab764dbb94b45aedd903ec23a20afc109 /configure.ac | |
parent | f1e058d46b5a83ddd0423a3616aa50ac3ec7f551 (diff) | |
download | emacs-9d3f8912b431ed5540d9d06d85b7e338732268c9.tar.gz |
Support MinGW build on MS-Windows
* src/treesit.c [WINDOWSNT]: Add MS-Windows boilerplate for
dynamically-loaded optional libraries.
(init_treesit_functions) [WINDOWSNT]: New function.
(load_tree_sitter_if_necessary): New function.
(ts_initialize): Call 'load_tree_sitter_if_necessary'.
(ts_delete_parser, ts_delete_query, ts_named_node_p): Wrapper
functions for TS calls from outside treesit.c.
(Ftreesit_parser_root_node, Ftreesit_parser_set_included_ranges)
(Ftreesit_parser_included_ranges, Ftreesit_node_type)
(Ftreesit_node_start, Ftreesit_node_end, Ftreesit_node_string)
(Ftreesit_node_parent, Ftreesit_node_child, Ftreesit_node_check)
(Ftreesit_node_field_name_for_child, Ftreesit_node_child_count)
(Ftreesit_node_next_sibling, Ftreesit_node_prev_sibling)
(Ftreesit_node_first_child_for_pos)
(Ftreesit_node_descendant_for_range, Ftreesit_node_eq)
(Ftreesit_query_compile, Ftreesit_query_capture)
(Ftreesit_search_subtree, Ftreesit_search_forward)
(Ftreesit_induce_sparse_tree): Call 'ts_initialize' before any
other TS functions.
(Ftreesit_available_p): 'treesit-available-p' implemented in C, so
that on WINDOWSNT the library could be loaded dynamically.
* src/treesit.h (ts_delete_parser, ts_delete_query)
(ts_named_node_p): Add prototypes.
* src/print.c (print_vectorlike):
* src/alloc.c (cleanup_vector): Call tree-sitter function via
wrappers defined in treesit.c, not directly, because WINDOWSNT
redefines the TS functions to be called via function pointers.
* src/Makefile.in (base_obj): Add treesit.o
(TREE_SITTER_OBJ): Remove.
* lisp/treesit.el (treesit-available-p): Remove: now implemented
in C.
* lisp/term/w32-win.el (dynamic-library-alist): Add libtree-sitter
DLLs.
* configure.ac (TREE_SITTER): Support the MinGW build.
(TREE_SITTER_OBJ): Remove.
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 7d751fd6a81..4ce7e8b8ce9 100644 --- a/configure.ac +++ b/configure.ac @@ -3223,13 +3223,16 @@ if test "${with_tree_sitter}" != "no"; then [HAVE_TREE_SITTER=yes], [HAVE_TREE_SITTER=no]) if test "${HAVE_TREE_SITTER}" = yes; then AC_DEFINE(HAVE_TREE_SITTER, 1, [Define if using tree-sitter.]) - TREE_SITTER_OBJ="treesit.o" + fi + + # Windows loads tree-sitter dynamically + if test "${opsys}" = "mingw32"; then + TREE_SITTER_LIBS= fi fi AC_SUBST(TREE_SITTER_LIBS) AC_SUBST(TREE_SITTER_CFLAGS) -AC_SUBST(TREE_SITTER_OBJ) NOTIFY_OBJ= NOTIFY_SUMMARY=no |