Mercurial > hgrepos > Python2 > PyMuPDF
diff Makefile.freebsd @ 38:8934ac156ef5
Allow to build with the PyPI package "clang" instead of "libclang".
1. It seems to be maintained.
2. In the FreeBSD base system there is no pre-built libclang.so. If you
need this library you have to install llvm from ports additionally.
2. On FreeBSD there is no pre-built wheel "libclang" with a packaged
libclang.so.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 23 Sep 2025 10:27:15 +0200 |
| parents | f0e1e5146733 |
| children |
line wrap: on
line diff
--- a/Makefile.freebsd Mon Sep 22 11:44:07 2025 +0200 +++ b/Makefile.freebsd Tue Sep 23 10:27:15 2025 +0200 @@ -36,14 +36,21 @@ PYMUPDF_SETUP_MUPDF_BUILD?= $(THIS_MAKEFILE_DIR)/mupdf-source # It would compile with tesseract because its sources are vendored by MuPDF PYMUPDF_SETUP_MUPDF_TESSERACT?= 0 +# +# We use clang instead of libclang: On FreeBSD you have to install +# llvm to get a libclang.so installed; there is no libclang package +# with a bundled libclang.so. Additionally, libclang currently is not +# up-to-date with respect to clang versions >= 19. +# +PYMUPDF_SETUP_LIBCLANG?= clang>=18,<19 LIBCLANG_LIBRARY_PATH?= $(CLANG_DIR)/lib +CLANG_DIR?= /usr/local/llvm18 TEST= /bin/test LOCALBASE?= /usr/local SYMLINK?= /bin/ln -s PYTHON?= python3 PYTHON_PREFIXES!= $(PYTHON) -c 'import sys; print(sys.prefix); print(sys.base_prefix)' -CLANG_DIR?= /usr/local/llvm18 # # Setting these does not work for some parts built by sub-makes. @@ -77,11 +84,11 @@ $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/cc || $(SYMLINK) $(CLANG_DIR)/bin/clang $(firstword $(PYTHON_PREFIXES))/bin/cc $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/c++ || $(SYMLINK) $(CLANG_DIR)/bin/clang++ $(firstword $(PYTHON_PREFIXES))/bin/c++ $(TEST) -e $(firstword $(PYTHON_PREFIXES))/bin/ld || $(SYMLINK) $(CLANG_DIR)/bin/ld.lld $(firstword $(PYTHON_PREFIXES))/bin/ld - FORTIFY=$(FORTIFY) EXTRA_CHECKS=$(EXTRA_CHECKS) PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) $(PYTHON) -m build --wheel --verbose --no-isolation + FORTIFY=$(FORTIFY) EXTRA_CHECKS=$(EXTRA_CHECKS) PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) PYMUPDF_SETUP_LIBCLANG='$(PYMUPDF_SETUP_LIBCLANG)' $(PYTHON) -m build --wheel --verbose --no-isolation sdist: check - PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) $(PYTHON) -m build --sdist --verbose --no-isolation + PIPCL_VERBOSE=2 LIBCLANG_LIBRARY_PATH=$(LIBCLANG_LIBRARY_PATH) PYMUPDF_SETUP_MUPDF_BUILD=$(PYMUPDF_SETUP_MUPDF_BUILD) PYMUPDF_SETUP_MUPDF_TESSERACT=$(PYMUPDF_SETUP_MUPDF_TESSERACT) PYMUPDF_SETUP_LIBCLANG='$(PYMUPDF_SETUP_LIBCLANG)' $(PYTHON) -m build --sdist --verbose --no-isolation populate-venv: @@ -97,7 +104,9 @@ $(PYTHON) -m pip freeze | grep -E '^\s*setuptools-scm==' >/dev/null $(PYTHON) -m pip freeze | grep -E '^\s*build==' >/dev/null $(PYTHON) -m pip freeze | grep -E '^\s*swig==' >/dev/null - $(PYTHON) -m pip freeze | grep -E '^\s*libclang==18\.' >/dev/null + $(PYTHON) -m pip freeze | grep -E '^\s*clang==18\.' >/dev/null + # This covers the "clang" and "libclang" package + $(PYTHON) -c 'import clang.cindex' >/dev/null $(TEST) -x $(LOCALBASE)/bin/gmake $(TEST) -x $(LOCALBASE)/bin/cmake $(TEST) -x $(CLANG_DIR)/bin/llvm-ar
