'(lcms2 "liblcms2-2.dll")
'(gccjit "libgccjit-0.dll")
;; MSYS2 distributes libtree-sitter.dll, without API version
- ;; number...
- '(tree-sitter "libtree-sitter.dll" "libtree-sitter-0.dll")))
+ ;; number, upto and including version 0.24.3-2; later versions
+ ;; come with libtree-sitter-major.minor.dll (as in
+ ;; libtree-sitter-0.24.dll). Sadly, the header files don't have
+ ;; any symbols for library version, so we can only use the
+ ;; library-language ABI version; according to
+ ;; https://github.com/tree-sitter/tree-sitter/issues/3925, the
+ ;; language ABI must change when the library's ABI is modified.
+ (if (<= tree-sitter--library-abi 14)
+ '(tree-sitter "libtree-sitter-0.24.dll"
+ "libtree-sitter.dll"
+ "libtree-sitter-0.dll")
+ '(tree-sitter "libtree-sitter-0.25.dll"))))
;;; multi-tty support
(defvar w32-initialized nil
defsubr (&Streesit_subtree_stat);
#endif /* HAVE_TREE_SITTER */
defsubr (&Streesit_available_p);
+#ifdef WINDOWSNT
+ DEFSYM (Qtree_sitter__library_abi, "tree-sitter--library-abi");
+ Fset (Qtree_sitter__library_abi,
+#if HAVE_TREE_SITTER
+ make_fixnum (TREE_SITTER_LANGUAGE_VERSION)
+#else
+ make_fixnum (-1)
+#endif
+ );
+#endif
+
}