mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-09-16 22:36:21 +00:00
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>
This commit is contained in:
parent
91e2bfb17f
commit
1baf66e09b
52
meta-python/classes/python_mesonpy.bbclass
Normal file
52
meta-python/classes/python_mesonpy.bbclass
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# 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
|
||||||
Loading…
x
Reference in New Issue
Block a user