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