[oe] [PATCH] meson: remove recipe and class

akuster808 akuster808 at gmail.com
Tue Jan 16 15:35:20 UTC 2018



On 01/15/2018 11:40 PM, Yi Zhao wrote:
> Hi Martin & Armin,
>
> Would you please merge this patch ? Currently the meson recipe and
> class had been merged to oe-core. But due to the higher priority of
> meta-oe layer, the lower version meson in meta-oe would be built which
> cause json-glib build failed.
Wiil do.

- armin
>
>
> Thanks,
>
> Yi
>
>
>
> 在 2017年11月17日 20:12, Alexander Kanavin 写道:
>> They have been moved to oe-core layer, as meson is increasingly
>> the primary build system for many projects, particularly in the
>> Gnome stack.
>>
>> Signed-off-by: Alexander Kanavin <alexander.kanavin at linux.intel.com>
>> ---
>>   meta-oe/classes/meson.bbclass                      | 106
>> ---------------------
>>   .../meson/meson/native_bindir.patch                |  71
>> --------------
>>   meta-oe/recipes-devtools/meson/meson_0.40.1.bb     |  20 ----
>>   3 files changed, 197 deletions(-)
>>   delete mode 100644 meta-oe/classes/meson.bbclass
>>   delete mode 100644
>> meta-oe/recipes-devtools/meson/meson/native_bindir.patch
>>   delete mode 100644 meta-oe/recipes-devtools/meson/meson_0.40.1.bb
>>
>> diff --git a/meta-oe/classes/meson.bbclass
>> b/meta-oe/classes/meson.bbclass
>> deleted file mode 100644
>> index a09bc240d..000000000
>> --- a/meta-oe/classes/meson.bbclass
>> +++ /dev/null
>> @@ -1,106 +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}"
>> -
>> -# These variables in the environment override the *native* tools,
>> not the cross.
>> -export CPPFLAGS = "${BUILD_CPPFLAGS}"
>> -export CC = "${BUILD_CC}"
>> -export CFLAGS = "${BUILD_CFLAGS}"
>> -export CXX = "${BUILD_CXX}"
>> -export CXXFLAGS = "${BUILD_CXXFLAGS}"
>> -export LD = "${BUILD_LD}"
>> -export LDFLAGS = "${BUILD_LDFLAGS}"
>> -export AR = "${BUILD_AR}"
>> -export PKG_CONFIG = "pkg-config-native"
>> -
>> -def noprefix(var, d):
>> -    return d.getVar(var, True).replace(d.getVar('prefix', True) +
>> '/', '', 1)
>> -
>> -MESONOPTS = " --prefix ${prefix} \
>> -              --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_C_ARGS = "${TARGET_CC_ARCH}${TOOLCHAIN_OPTIONS}"
>> -MESON_LINK_ARGS = "${MESON_C_ARGS} ${LDFLAGS}"
>> -
>> -MESON_HOST_ENDIAN = "${@bb.utils.contains('SITEINFO_ENDIANNESS',
>> 'be', 'big', 'little', d)}"
>> -MESON_TARGET_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES',
>> 'bigendian', 'big', 'little', d)}"
>> -
>> -EXTRA_OEMESON += "${PACKAGECONFIG_CONFARGS}"
>> -
>> -MESON_CROSS_FILE = ""
>> -MESON_CROSS_FILE_class-target = "--cross-file ${WORKDIR}/meson.cross"
>> -
>> -def meson_array(var, d):
>> -    return "', '".join(d.getVar(var, True).split()).join(("'", "'"))
>> -
>> -addtask write_config before do_configure
>> -do_write_config[vardeps] += "MESON_C_ARGS TOOLCHAIN_OPTIONS"
>> -do_write_config() {
>> -    # This needs to be Py to split the args into single-element lists
>> -    cat >${WORKDIR}/meson.cross <<EOF
>> -[binaries]
>> -c = '${HOST_PREFIX}gcc'
>> -cpp = '${HOST_PREFIX}g++'
>> -ar = '${HOST_PREFIX}ar'
>> -ld = '${HOST_PREFIX}ld'
>> -strip = '${HOST_PREFIX}strip'
>> -readelf = '${HOST_PREFIX}readelf'
>> -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_C_ARGS', d)}]
>> -cpp_link_args = [${@meson_array('MESON_LINK_ARGS', d)}]
>> -
>> -[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
>> -}
>> -
>> -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
>> diff --git a/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
>> b/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
>> deleted file mode 100644
>> index 993e9750e..000000000
>> --- a/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
>> +++ /dev/null
>> @@ -1,71 +0,0 @@
>> -There are some discussions upstream to merge this patch, but I
>> presonaly believe
>> -that is is OE only.
>> https://github.com/mesonbuild/meson/issues/1849#issuecomment-303730323
>> -
>> -Upstream-Status: Inappropriate [OE specific]
>> -Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda at gmail.com>
>> -diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
>> -index 04a22f985941..3e33bc4a79e7 100644
>> ---- a/mesonbuild/dependencies.py
>> -+++ b/mesonbuild/dependencies.py
>> -@@ -95,7 +95,7 @@ class Dependency:
>> -     def need_threads(self):
>> -         return False
>> -
>> --    def get_pkgconfig_variable(self, variable_name):
>> -+    def get_pkgconfig_variable(self, variable_name, use_native=False):
>> -         raise MesonException('Tried to get a pkg-config variable
>> from a non-pkgconfig dependency.')
>> -
>> - class InternalDependency(Dependency):
>> -@@ -224,8 +224,12 @@ class PkgConfigDependency(Dependency):
>> -         return s.format(self.__class__.__name__, self.name,
>> self.is_found,
>> -                         self.version_reqs)
>> -
>> --    def _call_pkgbin(self, args):
>> --        p, out = Popen_safe([self.pkgbin] + args, env=os.environ)[0:2]
>> -+    def _call_pkgbin(self, args, use_native=False):
>> -+        if use_native:
>> -+            pkgbin = [self.pkgbin + "-native"]
>> -+        else:
>> -+            pkgbin = [self.pkgbin]
>> -+        p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
>> -         return p.returncode, out.strip()
>> -
>> -     def _set_cargs(self):
>> -@@ -259,8 +263,8 @@ class PkgConfigDependency(Dependency):
>> -                 self.is_libtool = True
>> -             self.libs.append(lib)
>> -
>> --    def get_pkgconfig_variable(self, variable_name):
>> --        ret, out = self._call_pkgbin(['--variable=' +
>> variable_name, self.name])
>> -+    def get_pkgconfig_variable(self, variable_name, use_native=False):
>> -+        ret, out = self._call_pkgbin(['--variable=' +
>> variable_name, self.name], use_native=use_native)
>> -         variable = ''
>> -         if ret != 0:
>> -             if self.required:
>> -@@ -1091,7 +1095,7 @@ class QtBaseDependency(Dependency):
>> -         self.bindir = self.get_pkgconfig_host_bins(core)
>> -         if not self.bindir:
>> -             # If exec_prefix is not defined, the pkg-config file is
>> broken
>> --            prefix = core.get_pkgconfig_variable('exec_prefix')
>> -+            prefix = core.get_pkgconfig_variable('exec_prefix',
>> use_native=True)
>> -             if prefix:
>> -                 self.bindir = os.path.join(prefix, 'bin')
>> -
>> -@@ -1202,7 +1206,7 @@ class Qt5Dependency(QtBaseDependency):
>> -         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
>> -
>> -     def get_pkgconfig_host_bins(self, core):
>> --        return core.get_pkgconfig_variable('host_bins')
>> -+        return core.get_pkgconfig_variable('host_bins',
>> use_native=True)
>> -
>> - class Qt4Dependency(QtBaseDependency):
>> -     def __init__(self, env, kwargs):
>> -@@ -1216,7 +1220,7 @@ class Qt4Dependency(QtBaseDependency):
>> -         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
>> -         for application in applications:
>> -             try:
>> --                return
>> os.path.dirname(core.get_pkgconfig_variable('%s_location' %
>> application))
>> -+                return
>> os.path.dirname(core.get_pkgconfig_variable('%s_location' %
>> application, use_native=True))
>> -             except MesonException:
>> -                 pass
>> -
>> diff --git a/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
>> b/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
>> deleted file mode 100644
>> index 14644ba9b..000000000
>> --- a/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
>> +++ /dev/null
>> @@ -1,20 +0,0 @@
>> -HOMEPAGE = "http://mesonbuild.com"
>> -SUMMARY = "A high performance build system"
>> -
>> -LICENSE = "Apache-2.0"
>> -LIC_FILES_CHKSUM =
>> "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
>> -
>> -SRC_URI = " \
>> -    git://github.com/mesonbuild/meson.git \
>> -    file://native_bindir.patch \
>> -"
>> -
>> -SRCREV = "b25d3e4d3f2b4d37029a507cc089bdde643c6240"
>> -
>> -S = "${WORKDIR}/git"
>> -
>> -inherit setuptools3
>> -
>> -RDEPENDS_${PN} = "ninja python3-core python3-modules"
>> -
>> -BBCLASSEXTEND = "native"
>




More information about the Openembedded-devel mailing list