| # | 
 | # 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 |