Patrick Williams | 520786c | 2023-06-25 16:20:36 -0500 | [diff] [blame] | 1 | # |
| 2 | # Copyright OpenEmbedded Contributors |
| 3 | # |
| 4 | # SPDX-License-Identifier: MIT |
| 5 | # |
| 6 | |
| 7 | inherit meson setuptools3-base python3targetconfig python_pep517 |
| 8 | |
| 9 | # meson_do_qa_configure does the wrong thing here because |
| 10 | # mesonpy runs "meson setup ..." in do_compile context. |
| 11 | # Make it a dummy function. |
| 12 | meson_do_qa_configure () { |
| 13 | : |
| 14 | } |
| 15 | |
| 16 | # This prevents the meson error: |
| 17 | # ERROR: Got argument buildtype as both -Dbuildtype and --buildtype. Pick one. |
| 18 | MESONOPTS:remove = "--buildtype ${MESON_BUILDTYPE}" |
| 19 | |
| 20 | CONFIGURE_FILES = "pyproject.toml" |
| 21 | |
| 22 | DEPENDS += "python3-wheel-native python3-meson-python-native" |
| 23 | |
| 24 | def mesonpy_get_args(d): |
| 25 | vars = ['MESONOPTS', 'MESON_CROSS_FILE', 'EXTRA_OEMESON'] |
| 26 | varlist = [] |
| 27 | for var in vars: |
| 28 | value = d.getVar(var) |
| 29 | vallist = value.split() |
| 30 | for elem in vallist: |
| 31 | varlist.append("-Csetup-args=" + elem) |
| 32 | return ' '.join(varlist) |
| 33 | |
| 34 | PEP517_BUILD_OPTS = "-Cbuilddir='${B}' ${@mesonpy_get_args(d)}" |
| 35 | |
| 36 | # Python pyx -> c -> so build leaves absolute build paths in the code |
| 37 | INSANE_SKIP:${PN} += "buildpaths" |
| 38 | INSANE_SKIP:${PN}-src += "buildpaths" |
| 39 | |
| 40 | python_mesonpy_do_configure () { |
| 41 | python_pep517_do_configure |
| 42 | } |
| 43 | |
| 44 | python_mesonpy_do_compile () { |
| 45 | python_pep517_do_compile |
| 46 | } |
| 47 | |
| 48 | python_mesonpy_do_install () { |
| 49 | python_pep517_do_install |
| 50 | } |
| 51 | |
| 52 | EXPORT_FUNCTIONS do_configure do_compile do_install |