39b2b6e4a3
Fixes build error with python-pillow since its version bump to 12.0.0
which introduced a dependency to pybind with buildroot commit
5f446a8d6d:
FileNotFoundError: [Errno 2] No such file or directory:
'/home/bernd/buildroot/output/host/lib/python3.13/site-packages/include/pybind11/detail/common.h'
Implement the solution suggested by Vincent Fazio [1]:
Generate `pybind11/_version.py` file with a hard-coded version to avoid
copying pybind11 headers in HOST_DIR.
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/13138981946 (TestPythonPybind)
[1] https://lists.busybox.net/pipermail/buildroot/2026-February/796082.html
Cc: Vincent Fazio <vfazio@xes-inc.com>
Cc: James Hilliard <james.hilliard1@gmail.com>
Cc: Bernd Kuhls <bernd@kuhls.net>
Signed-off-by: Romain Naour <romain.naour@smile.fr>
Tested-by: Vincent Fazio <vfazio@xes-inc.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
36 lines
1.3 KiB
Makefile
36 lines
1.3 KiB
Makefile
################################################################################
|
|
#
|
|
# python-pybind
|
|
#
|
|
################################################################################
|
|
|
|
PYTHON_PYBIND_VERSION = 3.0.1
|
|
PYTHON_PYBIND_SITE = $(call github,pybind,pybind11,v$(PYTHON_PYBIND_VERSION))
|
|
PYTHON_PYBIND_LICENSE = BSD-3-Clause
|
|
PYTHON_PYBIND_LICENSE_FILES = LICENSE
|
|
PYTHON_PYBIND_INSTALL_STAGING = YES
|
|
PYTHON_PYBIND_INSTALL_TARGET = NO # Header-only library
|
|
PYTHON_PYBIND_DEPENDENCIES = python3
|
|
|
|
PYTHON_PYBIND_CONF_OPTS = \
|
|
-DPYBIND11_INSTALL=ON \
|
|
-DPYBIND11_TEST=OFF \
|
|
-DPYBIND11_NOPYTHON=ON
|
|
|
|
PYTHON_PYBIND_INSTALL_PATH = $(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages/pybind11
|
|
|
|
# Overwrite 'pybind11/_version.py' with a hard-coded version to replace
|
|
# 'pybind11/_version.py' installed by default that require
|
|
# pybind11/detail/common.h header in HOST_DIR.
|
|
# https://github.com/pybind/pybind11/blob/f5fbe867d2d26e4a0a9177a51f6e568868ad3dc8/pyproject.toml#L93
|
|
define PYTHON_PYBIND_INSTALL_MODULE
|
|
mkdir -p $(PYTHON_PYBIND_INSTALL_PATH)
|
|
cp -dpf $(@D)/pybind11/*.py $(PYTHON_PYBIND_INSTALL_PATH)
|
|
sed -e 's#@@PYBIND_VERSION@@#$(PYTHON_PYBIND_VERSION)#' \
|
|
$(PYTHON_PYBIND_PKGDIR)/python-pybind_version.py.in \
|
|
> $(PYTHON_PYBIND_INSTALL_PATH)/_version.py
|
|
endef
|
|
PYTHON_PYBIND_POST_INSTALL_STAGING_HOOKS += PYTHON_PYBIND_INSTALL_MODULE
|
|
|
|
$(eval $(cmake-package))
|