summaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2022-10-16 16:22:09 +0300
committerEli Zaretskii <eliz@gnu.org>2022-10-16 16:22:09 +0300
commit9d3f8912b431ed5540d9d06d85b7e338732268c9 (patch)
tree0b6fe69ab764dbb94b45aedd903ec23a20afc109 /configure.ac
parentf1e058d46b5a83ddd0423a3616aa50ac3ec7f551 (diff)
downloademacs-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.ac7
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