On 15 Mar 2023, at 08:00, Zoltan Boszormenyi via lists.openembedded.org 
<[email protected]> wrote:
> diff --git a/meta/classes-recipe/meson.bbclass 
> b/meta/classes-recipe/meson.bbclass
> index 48688bed75..f1273aa1c0 100644
> --- a/meta/classes-recipe/meson.bbclass
> +++ b/meta/classes-recipe/meson.bbclass
> @@ -4,141 +4,7 @@
> # SPDX-License-Identifier: MIT
> #
> 
> -inherit python3native meson-routines qemu
> -
> -DEPENDS:append = " meson-native ninja-native"
> -
> -EXEWRAPPER_ENABLED:class-native = "False"
> -EXEWRAPPER_ENABLED:class-nativesdk = "False"
> -EXEWRAPPER_ENABLED ?= "${@bb.utils.contains('MACHINE_FEATURES', 
> 'qemu-usermode', 'True', 'False', d)}"
> -DEPENDS:append = "${@' qemu-native' if d.getVar('EXEWRAPPER_ENABLED') == 
> 'True' else ''}"
> -
> -# As Meson enforces out-of-tree builds we can just use cleandirs
> -B = "${WORKDIR}/build"
> -do_configure[cleandirs] = "${B}"
> -
> -# Where the meson.build build configuration is
> -MESON_SOURCEPATH = "${S}"
> -
> -def noprefix(var, d):
> -    return d.getVar(var).replace(d.getVar('prefix') + '/', '', 1)
> -
> -MESON_BUILDTYPE ?= "${@oe.utils.vartrue('DEBUG_BUILD', 'debug', 'plain', d)}"
> -MESON_BUILDTYPE[vardeps] += "DEBUG_BUILD"
> -MESONOPTS = " --prefix ${prefix} \
> -              --buildtype ${MESON_BUILDTYPE} \
> -              --bindir ${@noprefix('bindir', d)} \
> -              --sbindir ${@noprefix('sbindir', d)} \
> -              --datadir ${@noprefix('datadir', d)} \
> -              --libdir ${@noprefix('libdir', d)} \
> -              --libexecdir ${@noprefix('libexecdir', d)} \
> -              --includedir ${@noprefix('includedir', d)} \
> -              --mandir ${@noprefix('mandir', d)} \
> -              --infodir ${@noprefix('infodir', d)} \
> -              --sysconfdir ${sysconfdir} \
> -              --localstatedir ${localstatedir} \
> -              --sharedstatedir ${sharedstatedir} \
> -              --wrap-mode nodownload \
> -              --native-file ${WORKDIR}/meson.native"
> -
> -EXTRA_OEMESON:append = " ${PACKAGECONFIG_CONFARGS}"
> -
> -MESON_CROSS_FILE = ""
> -MESON_CROSS_FILE:class-target = "--cross-file ${WORKDIR}/meson.cross"
> -MESON_CROSS_FILE:class-nativesdk = "--cross-file ${WORKDIR}/meson.cross"
> -
> -# Needed to set up qemu wrapper below
> -export STAGING_DIR_HOST
> -
> -def rust_tool(d, target_var):
> -    rustc = d.getVar('RUSTC')
> -    if not rustc:
> -        return ""
> -    cmd = [rustc, "--target", d.getVar(target_var)] + 
> d.getVar("RUSTFLAGS").split()
> -    return "rust = %s" % repr(cmd)
> -
> -addtask write_config before do_configure
> -do_write_config[vardeps] += "CC CXX LD AR NM STRIP READELF CFLAGS CXXFLAGS 
> LDFLAGS RUSTC RUSTFLAGS"
> -do_write_config() {
> -    # This needs to be Py to split the args into single-element lists
> -    cat >${WORKDIR}/meson.cross <<EOF
> -[binaries]
> -c = ${@meson_array('CC', d)}
> -cpp = ${@meson_array('CXX', d)}
> -cython = 'cython3'
> -ar = ${@meson_array('AR', d)}
> -nm = ${@meson_array('NM', d)}
> -strip = ${@meson_array('STRIP', d)}
> -readelf = ${@meson_array('READELF', d)}
> -objcopy = ${@meson_array('OBJCOPY', d)}
> -pkgconfig = 'pkg-config'
> -llvm-config = 'llvm-config'
> -cups-config = 'cups-config'
> -g-ir-scanner = '${STAGING_BINDIR}/g-ir-scanner-wrapper'
> -g-ir-compiler = '${STAGING_BINDIR}/g-ir-compiler-wrapper'
> -${@rust_tool(d, "HOST_SYS")}
> -${@"exe_wrapper = '${WORKDIR}/meson-qemuwrapper'" if 
> d.getVar('EXEWRAPPER_ENABLED') == 'True' else ""}
> -
> -[built-in options]
> -c_args = ${@meson_array('CFLAGS', d)}
> -c_link_args = ${@meson_array('LDFLAGS', d)}
> -cpp_args = ${@meson_array('CXXFLAGS', d)}
> -cpp_link_args = ${@meson_array('LDFLAGS', d)}
> -
> -[properties]
> -needs_exe_wrapper = true
> -
> -[host_machine]
> -system = '${@meson_operating_system('HOST_OS', d)}'
> -cpu_family = '${@meson_cpu_family('HOST_ARCH', d)}'
> -cpu = '${HOST_ARCH}'
> -endian = '${@meson_endian('HOST', d)}'
> -
> -[target_machine]
> -system = '${@meson_operating_system('TARGET_OS', d)}'
> -cpu_family = '${@meson_cpu_family('TARGET_ARCH', d)}'
> -cpu = '${TARGET_ARCH}'
> -endian = '${@meson_endian('TARGET', d)}'
> -EOF
> -
> -    cat >${WORKDIR}/meson.native <<EOF
> -[binaries]
> -c = ${@meson_array('BUILD_CC', d)}
> -cpp = ${@meson_array('BUILD_CXX', d)}
> -cython = 'cython3'
> -ar = ${@meson_array('BUILD_AR', d)}
> -nm = ${@meson_array('BUILD_NM', d)}
> -strip = ${@meson_array('BUILD_STRIP', d)}
> -readelf = ${@meson_array('BUILD_READELF', d)}
> -objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
> -pkgconfig = 'pkg-config-native'
> -${@rust_tool(d, "BUILD_SYS")}
> -
> -[built-in options]
> -c_args = ${@meson_array('BUILD_CFLAGS', d)}
> -c_link_args = ${@meson_array('BUILD_LDFLAGS', d)}
> -cpp_args = ${@meson_array('BUILD_CXXFLAGS', d)}
> -cpp_link_args = ${@meson_array('BUILD_LDFLAGS', d)}
> -EOF
> -}
> -
> -do_write_config:append:class-target() {
> -    # Write out a qemu wrapper that will be used as exe_wrapper so that meson
> -    # can run target helper binaries through that.
> -    qemu_binary="${@qemu_wrapper_cmdline(d, '$STAGING_DIR_HOST', 
> ['$STAGING_DIR_HOST/${libdir}','$STAGING_DIR_HOST/${base_libdir}'])}"
> -    cat > ${WORKDIR}/meson-qemuwrapper << EOF
> -#!/bin/sh
> -# Use a modules directory which doesn't exist so we don't load random things
> -# which may then get deleted (or their dependencies) and potentially segfault
> -export GIO_MODULE_DIR=${STAGING_LIBDIR}/gio/modules-dummy
> -
> -# meson sets this wrongly (only to libs in build-dir), 
> qemu_wrapper_cmdline() and GIR_EXTRA_LIBS_PATH take care of it properly
> -unset LD_LIBRARY_PATH
> -
> -$qemu_binary "\$@"
> -EOF
> -    chmod +x ${WORKDIR}/meson-qemuwrapper
> -}
> +inherit meson-common
> 
> # Tell externalsrc that changes to this file require a reconfigure
> CONFIGURE_FILES = “meson.build”

This patch appears to move every line from meson.bbclass to 
meson-common.bbclass, apart from the CONFIGURE_FILES line which would still be 
needed in the python-meson case anyway.

I can’t see what is gained here, just inherit meson.

Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#178651): 
https://lists.openembedded.org/g/openembedded-core/message/178651
Mute This Topic: https://lists.openembedded.org/mt/97622973/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to