meta-openembedded/meta-python/classes/python_mesonpy.bbclass
Zoltán Böszörményi 1baf66e09b python_mesonpy: New class
This is a new PEP517 compatible build class for python modules
that use pyproject.toml and this:

[build-system]
build-backend = 'mesonpy'

The new class uses python3-meson-python-native.

Signed-off-by: Zoltán Böszörményi <zboszor@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2023-06-14 09:50:28 -07:00

53 lines
1.3 KiB
Plaintext

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
inherit meson setuptools3-base python3targetconfig python_pep517
# meson_do_qa_configure does the wrong thing here because
# mesonpy runs "meson setup ..." in do_compile context.
# Make it a dummy function.
meson_do_qa_configure () {
:
}
# This prevents the meson error:
# ERROR: Got argument buildtype as both -Dbuildtype and --buildtype. Pick one.
MESONOPTS:remove = "--buildtype ${MESON_BUILDTYPE}"
CONFIGURE_FILES = "pyproject.toml"
DEPENDS += "python3-wheel-native python3-meson-python-native"
def mesonpy_get_args(d):
vars = ['MESONOPTS', 'MESON_CROSS_FILE', 'EXTRA_OEMESON']
varlist = []
for var in vars:
value = d.getVar(var)
vallist = value.split()
for elem in vallist:
varlist.append("-Csetup-args=" + elem)
return ' '.join(varlist)
PEP517_BUILD_OPTS = "-Cbuilddir='${B}' ${@mesonpy_get_args(d)}"
# Python pyx -> c -> so build leaves absolute build paths in the code
INSANE_SKIP:${PN} += "buildpaths"
INSANE_SKIP:${PN}-src += "buildpaths"
python_mesonpy_do_configure () {
python_pep517_do_configure
}
python_mesonpy_do_compile () {
python_pep517_do_compile
}
python_mesonpy_do_install () {
python_pep517_do_install
}
EXPORT_FUNCTIONS do_configure do_compile do_install