find library path to libclang.so via glob command in /usr/lib/llvm-* and set it
diff --git a/tools/mkdoc.py b/tools/mkdoc.py
index 44164af..2b429ae 100755
--- a/tools/mkdoc.py
+++ b/tools/mkdoc.py
@@ -254,6 +254,13 @@
parameters.append('-isysroot')
parameters.append(sysroot_dir)
elif platform.system() == 'Linux':
+ # cython.util.find_library does not find `libclang` for all clang
+ # versions and distributions. LLVM switched to a monolithical setup
+ # that includes everything under /usr/lib/llvm{version_number}/
+ # We therefore glob for the library and select the highest version
+ library_path = sorted(glob("/usr/lib/llvm-*/lib/"), reversed=True)[0]
+ cindex.Config.set_library_path(library_path)
+
# clang doesn't find its own base includes by default on Linux,
# but different distros install them in different paths.
# Try to autodetect, preferring the highest numbered version.