diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/classes/meson.bbclass')
-rw-r--r-- | import-layers/yocto-poky/meta/classes/meson.bbclass | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/import-layers/yocto-poky/meta/classes/meson.bbclass b/import-layers/yocto-poky/meta/classes/meson.bbclass deleted file mode 100644 index 2d7ee4fff..000000000 --- a/import-layers/yocto-poky/meta/classes/meson.bbclass +++ /dev/null @@ -1,130 +0,0 @@ -inherit python3native - -DEPENDS_append = " meson-native ninja-native" - -# 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) - -MESONOPTS = " --prefix ${prefix} \ - --buildtype plain \ - --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}" - -MESON_TOOLCHAIN_ARGS = "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -MESON_C_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CFLAGS}" -MESON_CPP_ARGS = "${MESON_TOOLCHAIN_ARGS} ${CXXFLAGS}" -MESON_LINK_ARGS = "${MESON_TOOLCHAIN_ARGS} ${LDFLAGS}" - -# both are required but not used by meson -MESON_HOST_ENDIAN = "bogus-endian" -MESON_TARGET_ENDIAN = "bogus-endian" - -EXTRA_OEMESON += "${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" - -def meson_array(var, d): - return "', '".join(d.getVar(var).split()).join(("'", "'")) - -addtask write_config before do_configure -do_write_config[vardeps] += "MESON_C_ARGS MESON_CPP_ARGS MESON_LINK_ARGS CC CXX LD AR NM STRIP READELF" -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)}] -ar = [${@meson_array('AR', d)}] -nm = [${@meson_array('NM', d)}] -ld = [${@meson_array('LD', d)}] -strip = [${@meson_array('STRIP', d)}] -readelf = [${@meson_array('READELF', d)}] -pkgconfig = 'pkg-config' - -[properties] -needs_exe_wrapper = true -c_args = [${@meson_array('MESON_C_ARGS', d)}] -c_link_args = [${@meson_array('MESON_LINK_ARGS', d)}] -cpp_args = [${@meson_array('MESON_CPP_ARGS', d)}] -cpp_link_args = [${@meson_array('MESON_LINK_ARGS', d)}] -gtkdoc_exe_wrapper = '${B}/gtkdoc-qemuwrapper' - -[host_machine] -system = '${HOST_OS}' -cpu_family = '${HOST_ARCH}' -cpu = '${HOST_ARCH}' -endian = '${MESON_HOST_ENDIAN}' - -[target_machine] -system = '${TARGET_OS}' -cpu_family = '${TARGET_ARCH}' -cpu = '${TARGET_ARCH}' -endian = '${MESON_TARGET_ENDIAN}' -EOF -} - -CONFIGURE_FILES = "meson.build" - -meson_do_configure() { - if ! meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON}; then - cat ${B}/meson-logs/meson-log.txt - bbfatal_log meson failed - fi -} - -meson_do_configure_prepend_class-target() { - # Set these so that meson uses the native tools for its build sanity tests, - # which require executables to be runnable. The cross file will still - # override these for the target build. Note that we do *not* set CFLAGS, - # LDFLAGS, etc. as they will be slurped in by meson and applied to the - # target build, causing errors. - export CC="${BUILD_CC}" - export CXX="${BUILD_CXX}" - export LD="${BUILD_LD}" - export AR="${BUILD_AR}" -} - -meson_do_configure_prepend_class-nativesdk() { - # Set these so that meson uses the native tools for its build sanity tests, - # which require executables to be runnable. The cross file will still - # override these for the nativesdk build. Note that we do *not* set CFLAGS, - # LDFLAGS, etc. as they will be slurped in by meson and applied to the - # nativesdk build, causing errors. - export CC="${BUILD_CC}" - export CXX="${BUILD_CXX}" - export LD="${BUILD_LD}" - export AR="${BUILD_AR}" -} - -meson_do_configure_prepend_class-native() { - export PKG_CONFIG="pkg-config-native" -} - -do_compile[progress] = "outof:^\[(\d+)/(\d+)\]\s+" -meson_do_compile() { - ninja ${PARALLEL_MAKE} -} - -meson_do_install() { - DESTDIR='${D}' ninja ${PARALLEL_MAKEINST} install -} - -EXPORT_FUNCTIONS do_configure do_compile do_install |