python3-ninja: fix ninja_syntax import and version for setuptools build

Fixes issues introduced in commit 16a72067f5 ("python3-ninja: upgrade
1.11.1.1 -> 1.13.0").

Upstream's __init__.py uses a relative import:
  from .ninja_syntax import Writer, escape, expand

This requires ninja_syntax.py to be present inside the ninja package
directory. Upstream relies on CMake (via scikit-build-core) to copy
ninja_syntax.py from ninja-upstream/misc/ into the package during
build [1]. Since the OE recipe replaces scikit-build-core with
setuptools (no-scikit-build.patch), CMake is not invoked and this
copy does not happen, causing ImportError at runtime.

Similarly, upstream uses scikit-build-core's generate feature to
create _version.py from the SCM version. With setuptools, this
does not happen automatically, so generate it in do_configure.

[1] https://github.com/scikit-build/ninja-python-distributions/commit/f3b4a786be

Signed-off-by: Jiaying Song <jiaying.song.cn@windriver.com>
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Jiaying Song
2026-04-02 15:54:34 +08:00
committed by Khem Raj
parent 9546a4e07d
commit 2a4bed73a9

View File

@@ -14,6 +14,11 @@ DEPENDS += "python3-setuptools-scm-native"
do_install:append () {
rm -rf ${D}${bindir}
install -m 0644 ${S}/ninja-upstream/misc/ninja_syntax.py ${D}${PYTHON_SITEPACKAGES_DIR}/ninja/ninja_syntax.py
}
do_configure:prepend() {
echo 'version = "${PV}"' > ${S}/src/ninja/_version.py
}
RDEPENDS:${PN} = " \