On Fri, May 14, 2021 at 6:59 AM Alexander Kanavin <alex.kana...@gmail.com> wrote: > > Probably resolved by updating to 40.1? > https://gitlab.gnome.org/GNOME/nautilus/-/tags >
easier said than done. Sadly these are complex apps and I don't have time to fix the long list of dependencies it will ensue therefore I will leave it broken and exclude them from my distro builds from, Andreas might be interested > Alex > > On Fri, 14 May 2021 at 15:46, Khem Raj <raj.k...@gmail.com> wrote: >> >> breaks nautilus https://errors.yoctoproject.org/Errors/Details/581184/ >> >> On Thu, May 13, 2021 at 1:56 PM Alexander Kanavin >> <alex.kana...@gmail.com> wrote: >> > >> > Rebase patches; dropped chunks (and cross-prop-default.patch) >> > have been removed upstream. >> > >> > Move native-only patches to all-patches, as they're a pain to rebase >> > separately. >> > >> > Signed-off-by: Alexander Kanavin <alex.kana...@gmail.com> >> > --- >> > meta/recipes-devtools/meson/meson.inc | 11 +- >> > .../0001-Make-CPU-family-warnings-fatal.patch | 18 +- >> > ...sues-that-arise-when-cross-compiling.patch | 8 +- >> > ...-not-manipulate-the-environment-when.patch | 14 +- >> > ...pport-building-allarch-recipes-again.patch | 10 +- >> > .../meson/meson/0003-native_bindir.patch | 58 +-- >> > ...2c19e693a69b0650ce6c8a8903163c959996.patch | 412 ++++++++++++++++++ >> > .../meson/meson/cross-prop-default.patch | 23 - >> > .../{meson_0.57.2.bb => meson_0.58.0.bb} | 0 >> > ...on_0.57.2.bb => nativesdk-meson_0.58.0.bb} | 0 >> > 10 files changed, 456 insertions(+), 98 deletions(-) >> > create mode 100644 >> > meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch >> > delete mode 100644 >> > meta/recipes-devtools/meson/meson/cross-prop-default.patch >> > rename meta/recipes-devtools/meson/{meson_0.57.2.bb => meson_0.58.0.bb} >> > (100%) >> > rename meta/recipes-devtools/meson/{nativesdk-meson_0.57.2.bb => >> > nativesdk-meson_0.58.0.bb} (100%) >> > >> > diff --git a/meta/recipes-devtools/meson/meson.inc >> > b/meta/recipes-devtools/meson/meson.inc >> > index 10e7d8a1ce..f60381453b 100644 >> > --- a/meta/recipes-devtools/meson/meson.inc >> > +++ b/meta/recipes-devtools/meson/meson.inc >> > @@ -12,16 +12,13 @@ SRC_URI = >> > "https://github.com/mesonbuild/meson/releases/download/${PV}/meson-${P >> > file://0003-native_bindir.patch \ >> > >> > file://0001-python-module-do-not-manipulate-the-environment-when.patch \ >> > file://disable-rpath-handling.patch \ >> > - file://cross-prop-default.patch \ >> > >> > file://0001-modules-python.py-do-not-substitute-python-s-install.patch \ >> > file://gi-target-dep.patch \ >> > + file://0001-Make-CPU-family-warnings-fatal.patch \ >> > + file://0002-Support-building-allarch-recipes-again.patch \ >> > + file://4e312c19e693a69b0650ce6c8a8903163c959996.patch \ >> > " >> > -SRC_URI[sha256sum] = >> > "3a83e7b1c5de94fa991ec34d9b198d94f38ed699d3524cb0fdf3b99fd23d4cc5" >> > - >> > -SRC_URI_append_class-native = " \ >> > - file://0001-Make-CPU-family-warnings-fatal.patch \ >> > - file://0002-Support-building-allarch-recipes-again.patch \ >> > -" >> > +SRC_URI[sha256sum] = >> > "f4820df0bc969c99019fd4af8ca5f136ee94c63d8a5ad67e7eb73bdbc9182fdd" >> > >> > UPSTREAM_CHECK_URI = "https://github.com/mesonbuild/meson/releases" >> > UPSTREAM_CHECK_REGEX = "meson-(?P<pver>\d+(\.\d+)+)\.tar" >> > diff --git >> > a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch >> > >> > b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch >> > index 300797f9ee..bcccfabd17 100644 >> > --- >> > a/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch >> > +++ >> > b/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch >> > @@ -1,34 +1,33 @@ >> > -From 198e2de24adf5845e3ba389b533cf43440ee8acb Mon Sep 17 00:00:00 2001 >> > +From b64032a2eb1fb760f4ffd5b4b666e2433cf80d39 Mon Sep 17 00:00:00 2001 >> > From: Ross Burton <ross.bur...@intel.com> >> > Date: Tue, 3 Jul 2018 13:59:09 +0100 >> > -Subject: [PATCH] Make CPU family warnings fatal >> > +Subject: [PATCH 1/2] Make CPU family warnings fatal >> > >> > Upstream-Status: Inappropriate [OE specific] >> > Signed-off-by: Ross Burton <ross.bur...@intel.com> >> > - >> > --- >> > mesonbuild/envconfig.py | 2 +- >> > mesonbuild/environment.py | 4 +--- >> > 2 files changed, 2 insertions(+), 4 deletions(-) >> > >> > diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py >> > -index ba35d16..2d3c34c 100644 >> > +index c6a4df3..4d58c91 100644 >> > --- a/mesonbuild/envconfig.py >> > +++ b/mesonbuild/envconfig.py >> > -@@ -262,7 +262,7 @@ class MachineInfo: >> > +@@ -266,7 +266,7 @@ class MachineInfo: >> > >> > cpu_family = literal['cpu_family'] >> > if cpu_family not in known_cpu_families: >> > -- mlog.warning('Unknown CPU family {}, please report this at >> > https://github.com/mesonbuild/meson/issues/new'.format(cpu_family)) >> > +- mlog.warning(f'Unknown CPU family {cpu_family}, please >> > report this at https://github.com/mesonbuild/meson/issues/new') >> > + raise EnvironmentException('Unknown CPU family {}, see >> > https://wiki.yoctoproject.org/wiki/Meson/UnknownCPU for >> > directions.'.format(cpu_family)) >> > >> > endian = literal['endian'] >> > if endian not in ('little', 'big'): >> > diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py >> > -index 756dd81..4d2c2b6 100644 >> > +index fc9b703..eea8345 100644 >> > --- a/mesonbuild/environment.py >> > +++ b/mesonbuild/environment.py >> > -@@ -434,9 +434,7 @@ def detect_cpu_family(compilers: CompilersDict) -> >> > str: >> > +@@ -436,9 +436,7 @@ def detect_cpu_family(compilers: CompilersDict) -> >> > str: >> > trial = 'ppc64' >> > >> > if trial not in known_cpu_families: >> > @@ -39,3 +38,6 @@ index 756dd81..4d2c2b6 100644 >> > >> > return trial >> > >> > +-- >> > +2.24.0 >> > + >> > diff --git >> > a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch >> > >> > b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch >> > index 471f1500da..ce90e515da 100644 >> > --- >> > a/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch >> > +++ >> > b/meta/recipes-devtools/meson/meson/0001-gtkdoc-fix-issues-that-arise-when-cross-compiling.patch >> > @@ -1,4 +1,4 @@ >> > -From d3ef01a4208a801acad380a4aaceb6a21f8fa603 Mon Sep 17 00:00:00 2001 >> > +From 2f9c59e0489e569c5382404667c10f5c200a72ad Mon Sep 17 00:00:00 2001 >> > From: Alexander Kanavin <alex.kana...@gmail.com> >> > Date: Fri, 4 Aug 2017 16:16:41 +0300 >> > Subject: [PATCH] gtkdoc: fix issues that arise when cross-compiling >> > @@ -20,11 +20,11 @@ Signed-off-by: Alexander Kanavin >> > <alex.kana...@gmail.com> >> > 1 file changed, 4 insertions(+) >> > >> > diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py >> > -index bcf77b9..6a4b472 100644 >> > +index dc2979e..c9ff9bd 100644 >> > --- a/mesonbuild/modules/gnome.py >> > +++ b/mesonbuild/modules/gnome.py >> > -@@ -974,6 +974,10 @@ This will become a hard error in the future.''') >> > - args.append('--{}={}'.format(program_name, path)) >> > +@@ -1053,6 +1053,10 @@ class GnomeModule(ExtensionModule): >> > + args.append(f'--{program_name}={path}') >> > if namespace: >> > args.append('--namespace=' + namespace) >> > + gtkdoc_exe_wrapper = >> > state.environment.properties.host.get('gtkdoc_exe_wrapper', None) >> > diff --git >> > a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch >> > >> > b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch >> > index eb0e90dbdd..fdadc6869b 100644 >> > --- >> > a/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch >> > +++ >> > b/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch >> > @@ -1,4 +1,4 @@ >> > -From 689e28c49b85311f93f39df70cbee702fc44afb6 Mon Sep 17 00:00:00 2001 >> > +From 2264e67d7c2c22ca634fd26ea8ada6f0344ab280 Mon Sep 17 00:00:00 2001 >> > From: Alexander Kanavin <alex.kana...@gmail.com> >> > Date: Mon, 19 Nov 2018 14:24:26 +0100 >> > Subject: [PATCH] python module: do not manipulate the environment when >> > calling >> > @@ -12,10 +12,10 @@ Signed-off-by: Alexander Kanavin >> > <alex.kana...@gmail.com> >> > 1 file changed, 12 deletions(-) >> > >> > diff --git a/mesonbuild/modules/python.py b/mesonbuild/modules/python.py >> > -index 07be318..b770603 100644 >> > +index 422155b..aaf5844 100644 >> > --- a/mesonbuild/modules/python.py >> > +++ b/mesonbuild/modules/python.py >> > -@@ -71,11 +71,6 @@ class PythonDependency(ExternalDependency): >> > +@@ -70,11 +70,6 @@ class PythonDependency(ExternalDependency): >> > old_pkg_libdir = os.environ.get('PKG_CONFIG_LIBDIR') >> > old_pkg_path = os.environ.get('PKG_CONFIG_PATH') >> > >> > @@ -26,9 +26,9 @@ index 07be318..b770603 100644 >> > - >> > try: >> > self.pkgdep = PkgConfigDependency(pkg_name, >> > environment, kwargs) >> > - mlog.debug('Found "{}" via pkgconfig lookup in LIBPC >> > ({})'.format(pkg_name, pkg_libdir)) >> > -@@ -84,13 +79,6 @@ class PythonDependency(ExternalDependency): >> > - mlog.debug('"{}" could not be found in LIBPC >> > ({})'.format(pkg_name, pkg_libdir)) >> > + mlog.debug(f'Found "{pkg_name}" via pkgconfig lookup >> > in LIBPC ({pkg_libdir})') >> > +@@ -83,13 +78,6 @@ class PythonDependency(ExternalDependency): >> > + mlog.debug(f'"{pkg_name}" could not be found in >> > LIBPC ({pkg_libdir})') >> > mlog.debug(e) >> > >> > - if old_pkg_path is not None: >> > @@ -39,5 +39,5 @@ index 07be318..b770603 100644 >> > - else: >> > - os.environ.pop('PKG_CONFIG_LIBDIR', None) >> > else: >> > - mlog.debug('"{}" could not be found in LIBPC ({}), this >> > is likely due to a relocated python installation'.format(pkg_name, >> > pkg_libdir)) >> > + mlog.debug(f'"{pkg_name}" could not be found in LIBPC >> > ({pkg_libdir}), this is likely due to a relocated python installation') >> > >> > diff --git >> > a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch >> > >> > b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch >> > index f6175a194c..dcc1ce9c27 100644 >> > --- >> > a/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch >> > +++ >> > b/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch >> > @@ -1,19 +1,18 @@ >> > -From ac1021a3abf612e8be9b19eecb97062e0c314701 Mon Sep 17 00:00:00 2001 >> > +From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001 >> > From: Peter Kjellerstedt <p...@axis.com> >> > Date: Thu, 26 Jul 2018 16:32:49 +0200 >> > -Subject: [PATCH] Support building allarch recipes again >> > +Subject: [PATCH 2/2] Support building allarch recipes again >> > >> > This registers "allarch" as a known CPU family. >> > >> > Upstream-Status: Inappropriate [OE specific] >> > Signed-off-by: Peter Kjellerstedt <peter.kjellerst...@axis.com> >> > - >> > --- >> > mesonbuild/envconfig.py | 1 + >> > 1 file changed, 1 insertion(+) >> > >> > diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py >> > -index 2d3c34c..b9e7908 100644 >> > +index 4d58c91..ff01ad1 100644 >> > --- a/mesonbuild/envconfig.py >> > +++ b/mesonbuild/envconfig.py >> > @@ -36,6 +36,7 @@ from pathlib import Path >> > @@ -24,3 +23,6 @@ index 2d3c34c..b9e7908 100644 >> > 'aarch64', >> > 'alpha', >> > 'arc', >> > +-- >> > +2.24.0 >> > + >> > diff --git a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch >> > b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch >> > index ed85116c4f..89257b9e05 100644 >> > --- a/meta/recipes-devtools/meson/meson/0003-native_bindir.patch >> > +++ b/meta/recipes-devtools/meson/meson/0003-native_bindir.patch >> > @@ -1,4 +1,4 @@ >> > -From 1546e1f95a119175b7a4e4272a26dd85505e5ede Mon Sep 17 00:00:00 2001 >> > +From 30e97d4090a3d3f5b7ddcaf27cfa17f3c8c1d462 Mon Sep 17 00:00:00 2001 >> > From: Ricardo Ribalda Delgado <ricardo.riba...@gmail.com> >> > Date: Wed, 15 Nov 2017 15:05:01 +0100 >> > Subject: [PATCH] native_bindir >> > @@ -18,23 +18,22 @@ Signed-off-by: Ricardo Ribalda Delgado >> > <ricardo.riba...@gmail.com> >> > >> > --- >> > mesonbuild/dependencies/base.py | 19 +++++++++++-------- >> > - mesonbuild/dependencies/ui.py | 6 +++--- >> > - 2 files changed, 14 insertions(+), 11 deletions(-) >> > + 1 file changed, 11 insertions(+), 8 deletions(-) >> > >> > diff --git a/mesonbuild/dependencies/base.py >> > b/mesonbuild/dependencies/base.py >> > -index cd77b4b..7e3f338 100644 >> > +index 14380d4..d0c443f 100644 >> > --- a/mesonbuild/dependencies/base.py >> > +++ b/mesonbuild/dependencies/base.py >> > -@@ -192,7 +192,7 @@ class Dependency: >> > +@@ -179,7 +179,7 @@ class Dependency: >> > def get_exe_args(self, compiler): >> > return [] >> > >> > - def get_pkgconfig_variable(self, variable_name: str, kwargs: >> > T.Dict[str, T.Any]) -> str: >> > + def get_pkgconfig_variable(self, variable_name: str, kwargs: >> > T.Dict[str, T.Any], use_native=False) -> str: >> > - raise DependencyException('{!r} is not a pkgconfig >> > dependency'.format(self.name)) >> > + raise DependencyException(f'{self.name!r} is not a pkgconfig >> > dependency') >> > >> > def get_configtool_variable(self, variable_name): >> > -@@ -280,7 +280,7 @@ class InternalDependency(Dependency): >> > +@@ -267,7 +267,7 @@ class InternalDependency(Dependency): >> > return True >> > return any(d.is_built() for d in self.ext_deps) >> > >> > @@ -43,7 +42,7 @@ index cd77b4b..7e3f338 100644 >> > raise DependencyException('Method "get_pkgconfig_variable()" is ' >> > 'invalid for an internal dependency') >> > >> > -@@ -658,8 +658,11 @@ class PkgConfigDependency(ExternalDependency): >> > +@@ -645,8 +645,11 @@ class PkgConfigDependency(ExternalDependency): >> > return s.format(self.__class__.__name__, self.name, >> > self.is_found, >> > self.version_reqs) >> > >> > @@ -57,16 +56,16 @@ index cd77b4b..7e3f338 100644 >> > p, out, err = Popen_safe(cmd, env=env) >> > rc, out, err = p.returncode, out.strip(), err.strip() >> > call = ' '.join(cmd) >> > -@@ -685,7 +688,7 @@ class PkgConfigDependency(ExternalDependency): >> > - env['PKG_CONFIG_LIBDIR'] = new_pkg_config_libdir >> > - mlog.debug('PKG_CONFIG_LIBDIR: ' + new_pkg_config_libdir) >> > +@@ -674,7 +677,7 @@ class PkgConfigDependency(ExternalDependency): >> > + if key.startswith('PKG_'): >> > + mlog.debug(f'env[{key}]: {value}') >> > >> > - def _call_pkgbin(self, args, env=None): >> > + def _call_pkgbin(self, args, env=None, use_native=False): >> > # Always copy the environment since we're going to modify it >> > # with pkg-config variables >> > if env is None: >> > -@@ -699,7 +702,7 @@ class PkgConfigDependency(ExternalDependency): >> > +@@ -688,7 +691,7 @@ class PkgConfigDependency(ExternalDependency): >> > targs = tuple(args) >> > cache = PkgConfigDependency.pkgbin_cache >> > if (self.pkgbin, targs, fenv) not in cache: >> > @@ -75,7 +74,7 @@ index cd77b4b..7e3f338 100644 >> > return cache[(self.pkgbin, targs, fenv)] >> > >> > def _convert_mingw_paths(self, args: T.List[str]) -> T.List[str]: >> > -@@ -905,7 +908,7 @@ class PkgConfigDependency(ExternalDependency): >> > +@@ -894,7 +897,7 @@ class PkgConfigDependency(ExternalDependency): >> > (self.name, out_raw)) >> > self.link_args, self.raw_link_args = self._search_libs(out, >> > out_raw) >> > >> > @@ -84,7 +83,7 @@ index cd77b4b..7e3f338 100644 >> > options = ['--variable=' + variable_name, self.name] >> > >> > if 'define_variable' in kwargs: >> > -@@ -918,7 +921,7 @@ class PkgConfigDependency(ExternalDependency): >> > +@@ -907,7 +910,7 @@ class PkgConfigDependency(ExternalDependency): >> > >> > options = ['--define-variable=' + '='.join(definition)] + >> > options >> > >> > @@ -93,34 +92,3 @@ index cd77b4b..7e3f338 100644 >> > variable = '' >> > if ret != 0: >> > if self.required: >> > -diff --git a/mesonbuild/dependencies/ui.py b/mesonbuild/dependencies/ui.py >> > -index d897d76..a598d2e 100644 >> > ---- a/mesonbuild/dependencies/ui.py >> > -+++ b/mesonbuild/dependencies/ui.py >> > -@@ -325,7 +325,7 @@ class QtBaseDependency(ExternalDependency): >> > - 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') >> > - >> > -@@ -528,7 +528,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 >> > - >> > -@@ -538,7 +538,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) >> > - >> > - def get_private_includes(self, mod_inc_dir, module): >> > - return _qt_get_private_includes(mod_inc_dir, module, >> > self.version) >> > diff --git >> > a/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch >> > >> > b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch >> > new file mode 100644 >> > index 0000000000..76daf019b0 >> > --- /dev/null >> > +++ >> > b/meta/recipes-devtools/meson/meson/4e312c19e693a69b0650ce6c8a8903163c959996.patch >> > @@ -0,0 +1,412 @@ >> > +From 4e312c19e693a69b0650ce6c8a8903163c959996 Mon Sep 17 00:00:00 2001 >> > +From: Xavier Claessens <xavier.claess...@collabora.com> >> > +Date: Tue, 11 May 2021 09:18:47 -0400 >> > +Subject: [PATCH] gnome: Fix gtkdoc generation >> > + >> > +install_scripts used to replace @BUILD_ROOT@ and @SOURCE_ROOT@ but it >> > +was not documented and got removed in Meson 0.58.0. gnome.gtkdoc() was >> > +relying on that behaviour, but it has always been broken in the case the >> > +source or build directory contains spaces. >> > + >> > +Fix this by changing get_include_args() to substitue paths directly >> > +which will then get escaped correctly. >> > + >> > +Add a unit test that builds GObject documentation which is where this >> > +issue has been spotted. >> > + >> > +Fixes: #8744 >> > +Upstream-Status: Backport >> > +Signed-off-by: Alexander Kanavin <alex.kana...@gmail.com> >> > +--- >> > + mesonbuild/modules/__init__.py | 54 +++++++++---------- >> > + mesonbuild/modules/gnome.py | 15 +++--- >> > + mesonbuild/modules/hotdoc.py | 3 +- >> > + mesonbuild/modules/qt.py | 4 +- >> > + mesonbuild/modules/windows.py | 5 +- >> > + .../10 gtk-doc/doc/foobar1/foobar-docs.sgml | 2 +- >> > + .../doc/foobar1/foobar-sections.txt | 16 ++++++ >> > + .../10 gtk-doc/doc/foobar1/foobar.types | 4 ++ >> > + .../10 gtk-doc/doc/foobar1/meson.build | 6 ++- >> > + test cases/frameworks/10 gtk-doc/foo.c | 30 +++++++++++ >> > + .../frameworks/10 gtk-doc/include/foo.h | 18 +++++++ >> > + test cases/frameworks/10 gtk-doc/meson.build | 12 +++++ >> > + test cases/frameworks/10 gtk-doc/test.json | 4 +- >> > + 13 files changed, 127 insertions(+), 46 deletions(-) >> > + create mode 100644 test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar-sections.txt >> > + create mode 100644 test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar.types >> > + create mode 100644 test cases/frameworks/10 gtk-doc/foo.c >> > + >> > +diff --git a/mesonbuild/modules/__init__.py >> > b/mesonbuild/modules/__init__.py >> > +index ddb5e3e6cf3..c0970294c34 100644 >> > +--- a/mesonbuild/modules/__init__.py >> > ++++ b/mesonbuild/modules/__init__.py >> > +@@ -56,6 +56,33 @@ def __init__(self, interpreter: 'Interpreter') -> None: >> > + self.target_machine = >> > interpreter.builtin['target_machine'].held_object >> > + self.current_node = interpreter.current_node >> > + >> > ++ def get_include_args(self, include_dirs, prefix='-I'): >> > ++ if not include_dirs: >> > ++ return [] >> > ++ >> > ++ srcdir = self.environment.get_source_dir() >> > ++ builddir = self.environment.get_build_dir() >> > ++ >> > ++ dirs_str = [] >> > ++ for dirs in unholder(include_dirs): >> > ++ if isinstance(dirs, str): >> > ++ dirs_str += [f'{prefix}{dirs}'] >> > ++ continue >> > ++ >> > ++ # Should be build.IncludeDirs object. >> > ++ basedir = dirs.get_curdir() >> > ++ for d in dirs.get_incdirs(): >> > ++ expdir = os.path.join(basedir, d) >> > ++ srctreedir = os.path.join(srcdir, expdir) >> > ++ buildtreedir = os.path.join(builddir, expdir) >> > ++ dirs_str += [f'{prefix}{buildtreedir}', >> > ++ f'{prefix}{srctreedir}'] >> > ++ for d in dirs.get_extra_build_dirs(): >> > ++ dirs_str += [f'{prefix}{d}'] >> > ++ >> > ++ return dirs_str >> > ++ >> > ++ >> > + class ModuleObject: >> > + """Base class for all objects returned by modules >> > + """ >> > +@@ -71,33 +98,6 @@ def __init__(self, interpreter: >> > T.Optional['Interpreter'] = None) -> None: >> > + class ExtensionModule(ModuleObject): >> > + pass >> > + >> > +-def get_include_args(include_dirs, prefix='-I'): >> > +- ''' >> > +- Expand include arguments to refer to the source and build dirs >> > +- by using @SOURCE_ROOT@ and @BUILD_ROOT@ for later substitution >> > +- ''' >> > +- if not include_dirs: >> > +- return [] >> > +- >> > +- dirs_str = [] >> > +- for dirs in unholder(include_dirs): >> > +- if isinstance(dirs, str): >> > +- dirs_str += [f'{prefix}{dirs}'] >> > +- continue >> > +- >> > +- # Should be build.IncludeDirs object. >> > +- basedir = dirs.get_curdir() >> > +- for d in dirs.get_incdirs(): >> > +- expdir = os.path.join(basedir, d) >> > +- srctreedir = os.path.join('@SOURCE_ROOT@', expdir) >> > +- buildtreedir = os.path.join('@BUILD_ROOT@', expdir) >> > +- dirs_str += [f'{prefix}{buildtreedir}', >> > +- f'{prefix}{srctreedir}'] >> > +- for d in dirs.get_extra_build_dirs(): >> > +- dirs_str += [f'{prefix}{d}'] >> > +- >> > +- return dirs_str >> > +- >> > + def is_module_library(fname): >> > + ''' >> > + Check if the file is a library-like file generated by a >> > module-specific >> > +diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py >> > +index d0b053d4f76..c91cda66f8b 100644 >> > +--- a/mesonbuild/modules/gnome.py >> > ++++ b/mesonbuild/modules/gnome.py >> > +@@ -26,7 +26,6 @@ >> > + from .. import mesonlib >> > + from .. import interpreter >> > + from . import GResourceTarget, GResourceHeaderTarget, GirTarget, >> > TypelibTarget, VapiTarget >> > +-from . import get_include_args >> > + from . import ExtensionModule >> > + from . import ModuleReturnValue >> > + from ..mesonlib import ( >> > +@@ -394,7 +393,7 @@ def _get_dependencies_flags(self, deps, state, >> > depends, include_rpath=False, >> > + gi_includes.update([girdir]) >> > + if isinstance(dep, InternalDependency): >> > + cflags.update(dep.get_compile_args()) >> > +- cflags.update(get_include_args(dep.include_directories)) >> > ++ >> > cflags.update(state.get_include_args(dep.include_directories)) >> > + for lib in unholder(dep.libraries): >> > + if isinstance(lib, build.SharedLibrary): >> > + >> > internal_ldflags.update(self._get_link_args(state, lib, depends, >> > include_rpath)) >> > +@@ -443,7 +442,7 @@ def _get_dependencies_flags(self, deps, state, >> > depends, include_rpath=False, >> > + else: >> > + external_ldflags.update([lib]) >> > + elif isinstance(dep, (build.StaticLibrary, >> > build.SharedLibrary)): >> > +- cflags.update(get_include_args(dep.get_include_dirs())) >> > ++ >> > cflags.update(state.get_include_args(dep.get_include_dirs())) >> > + depends.append(dep) >> > + else: >> > + mlog.log(f'dependency {dep!r} not handled to build gir >> > files') >> > +@@ -853,7 +852,7 @@ def generate_gir(self, state, args, kwargs): >> > + scan_command += self._scan_header(kwargs) >> > + scan_command += self._scan_extra_args(kwargs) >> > + scan_command += ['-I' + srcdir, '-I' + builddir] >> > +- scan_command += get_include_args(girtargets_inc_dirs) >> > ++ scan_command += state.get_include_args(girtargets_inc_dirs) >> > + scan_command += ['--filelist=' + self._make_gir_filelist(state, >> > srcdir, ns, nsversion, girtargets, libsources)] >> > + scan_command += self._scan_link_withs(state, depends, kwargs) >> > + scan_command += self._scan_include(state, depends, gir_inc_dirs, >> > kwargs) >> > +@@ -863,8 +862,8 @@ def generate_gir(self, state, args, kwargs): >> > + scan_command += ['--cflags-begin'] >> > + scan_command += cflags >> > + scan_command += ['--cflags-end'] >> > +- scan_command += get_include_args(inc_dirs) >> > +- scan_command += get_include_args(list(gi_includes) + >> > gir_inc_dirs + inc_dirs, prefix='--add-include-path=') >> > ++ scan_command += state.get_include_args(inc_dirs) >> > ++ scan_command += state.get_include_args(list(gi_includes) + >> > gir_inc_dirs + inc_dirs, prefix='--add-include-path=') >> > + scan_command += list(internal_ldflags) >> > + scan_command += self._scan_gir_targets(state, girtargets) >> > + scan_command += self._scan_langs(state, [lc[0] for lc in >> > langs_compilers]) >> > +@@ -886,7 +885,7 @@ def generate_gir(self, state, args, kwargs): >> > + >> > + typelib_output = f'{ns}-{nsversion}.typelib' >> > + typelib_cmd = [gicompiler, scan_target, '--output', '@OUTPUT@'] >> > +- typelib_cmd += get_include_args(gir_inc_dirs, >> > prefix='--includedir=') >> > ++ typelib_cmd += state.get_include_args(gir_inc_dirs, >> > prefix='--includedir=') >> > + >> > + for incdir in typelib_includes: >> > + typelib_cmd += ["--includedir=" + incdir] >> > +@@ -1127,7 +1126,7 @@ def _get_build_args(self, kwargs, state, depends): >> > + 'Gir include dirs should be include_directories().') >> > + >> > + cflags.extend(deps_cflags) >> > +- cflags.extend(get_include_args(inc_dirs)) >> > ++ cflags.extend(state.get_include_args(inc_dirs)) >> > + ldflags = [] >> > + ldflags.extend(internal_ldflags) >> > + ldflags.extend(external_ldflags) >> > +diff --git a/mesonbuild/modules/hotdoc.py b/mesonbuild/modules/hotdoc.py >> > +index bf8cd229c0d..89a5d938ea7 100644 >> > +--- a/mesonbuild/modules/hotdoc.py >> > ++++ b/mesonbuild/modules/hotdoc.py >> > +@@ -22,7 +22,6 @@ >> > + from mesonbuild.coredata import MesonException >> > + from . import ModuleReturnValue >> > + from . import ExtensionModule >> > +-from . import get_include_args >> > + from ..dependencies import Dependency, InternalDependency >> > + from ..interpreterbase import FeatureNew, InvalidArguments, noPosargs, >> > noKwargs >> > + from ..interpreter import CustomTargetHolder >> > +@@ -191,7 +190,7 @@ def process_dependencies(self, deps): >> > + for dep in mesonlib.listify(ensure_list(deps)): >> > + dep = getattr(dep, "held_object", dep) >> > + if isinstance(dep, InternalDependency): >> > +- inc_args = get_include_args(dep.include_directories) >> > ++ inc_args = >> > self.state.get_include_args(dep.include_directories) >> > + cflags.update([self.replace_dirs_in_string(x) >> > + for x in inc_args]) >> > + cflags.update(self.process_dependencies(dep.libraries)) >> > +diff --git a/mesonbuild/modules/qt.py b/mesonbuild/modules/qt.py >> > +index b7389bd59af..1bf0099d1df 100644 >> > +--- a/mesonbuild/modules/qt.py >> > ++++ b/mesonbuild/modules/qt.py >> > +@@ -23,7 +23,7 @@ >> > + from ..mesonlib import MesonException, extract_as_list, File, unholder, >> > version_compare >> > + from ..dependencies import Dependency >> > + import xml.etree.ElementTree as ET >> > +-from . import ModuleReturnValue, get_include_args, ExtensionModule >> > ++from . import ModuleReturnValue, ExtensionModule >> > + from ..interpreterbase import noPosargs, permittedKwargs, FeatureNew, >> > FeatureNewKwargs >> > + from ..interpreter import extract_required_kwarg >> > + from ..programs import NonExistingExternalProgram >> > +@@ -239,7 +239,7 @@ def preprocess(self, state, args, kwargs): >> > + ui_gen = build.Generator([self.uic], ui_kwargs) >> > + ui_output = ui_gen.process_files(f'Qt{self.qt_version} ui', >> > ui_files, state) >> > + sources.append(ui_output) >> > +- inc = get_include_args(include_dirs=include_directories) >> > ++ inc = state.get_include_args(include_dirs=include_directories) >> > + compile_args = [] >> > + for dep in unholder(dependencies): >> > + if isinstance(dep, Dependency): >> > +diff --git a/mesonbuild/modules/windows.py b/mesonbuild/modules/windows.py >> > +index d7a86380885..c4fdc196681 100644 >> > +--- a/mesonbuild/modules/windows.py >> > ++++ b/mesonbuild/modules/windows.py >> > +@@ -19,7 +19,6 @@ >> > + from .. import mlog >> > + from .. import mesonlib, build >> > + from ..mesonlib import MachineChoice, MesonException, extract_as_list, >> > unholder >> > +-from . import get_include_args >> > + from . import ModuleReturnValue >> > + from . import ExtensionModule >> > + from ..interpreter import CustomTargetHolder >> > +@@ -83,12 +82,12 @@ def compile_resources(self, state, args, kwargs): >> > + wrc_depends = extract_as_list(kwargs, 'depends', pop = True) >> > + for d in wrc_depends: >> > + if isinstance(d, CustomTargetHolder): >> > +- extra_args += get_include_args([d.outdir_include()]) >> > ++ extra_args += >> > state.get_include_args([d.outdir_include()]) >> > + inc_dirs = extract_as_list(kwargs, 'include_directories', pop = >> > True) >> > + for incd in inc_dirs: >> > + if not isinstance(incd.held_object, (str, >> > build.IncludeDirs)): >> > + raise MesonException('Resource include dirs should be >> > include_directories().') >> > +- extra_args += get_include_args(inc_dirs) >> > ++ extra_args += state.get_include_args(inc_dirs) >> > + >> > + rescomp, rescomp_type = self._find_resource_compiler(state) >> > + if rescomp_type == ResourceCompilerType.rc: >> > +diff --git a/test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar-docs.sgml b/test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar-docs.sgml >> > +index 95f73efdf45..6ccd087dc18 100644 >> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml >> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-docs.sgml >> > +@@ -35,7 +35,7 @@ >> > + </partintro> >> > + <xi:include href="xml/foo.xml"/> >> > + <xi:include href="../../include/bar.xml"/> >> > +- <xi:include href="xml/foo-version.xml"/> >> > ++ <xi:include href="xml/version.xml"/> >> > + </reference> >> > + >> > + </book> >> > +diff --git a/test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar-sections.txt b/test cases/frameworks/10 >> > gtk-doc/doc/foobar1/foobar-sections.txt >> > +new file mode 100644 >> > +index 00000000000..d14c8dab010 >> > +--- /dev/null >> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar-sections.txt >> > +@@ -0,0 +1,16 @@ >> > ++<SECTION> >> > ++<FILE>foo</FILE> >> > ++<TITLE>FooObj</TITLE> >> > ++FooObj >> > ++FooObjClass >> > ++foo_do_something >> > ++</SECTION> >> > ++ >> > ++<SECTION> >> > ++<FILE>version</FILE> >> > ++<TITLE>version</TITLE> >> > ++FOO_MAJOR_VERSION >> > ++FOO_MINOR_VERSION >> > ++FOO_MICRO_VERSION >> > ++</SECTION> >> > ++ >> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types >> > b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types >> > +new file mode 100644 >> > +index 00000000000..0a9c046f3ed >> > +--- /dev/null >> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/foobar.types >> > +@@ -0,0 +1,4 @@ >> > ++% This include is useless it's a regression test for >> > https://github.com/mesonbuild/meson/issues/8744 >> > ++#include <foo.h> >> > ++ >> > ++foo_obj_get_type >> > +diff --git a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build >> > b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build >> > +index 149c6e956aa..f4b3724dbae 100644 >> > +--- a/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build >> > ++++ b/test cases/frameworks/10 gtk-doc/doc/foobar1/meson.build >> > +@@ -1,5 +1,9 @@ >> > + gnome.gtkdoc('foobar', >> > +- src_dir : inc, >> > ++ src_dir : [inc, '.'], >> > + main_sgml : 'foobar-docs.sgml', >> > + content_files : [docbook, version_xml], >> > ++ dependencies: foo_dep, >> > ++ # Manually written types file for regression test: >> > ++ # https://github.com/mesonbuild/meson/issues/8744 >> > ++ gobject_typesfile: 'foobar.types', >> > + install : true) >> > +diff --git a/test cases/frameworks/10 gtk-doc/foo.c b/test >> > cases/frameworks/10 gtk-doc/foo.c >> > +new file mode 100644 >> > +index 00000000000..36c0639ec08 >> > +--- /dev/null >> > ++++ b/test cases/frameworks/10 gtk-doc/foo.c >> > +@@ -0,0 +1,30 @@ >> > ++#include <foo.h> >> > ++ >> > ++ >> > ++struct _FooObj { >> > ++ GObject parent; >> > ++ int dummy; >> > ++}; >> > ++ >> > ++G_DEFINE_TYPE(FooObj, foo_obj, G_TYPE_OBJECT) >> > ++ >> > ++static void foo_obj_init (FooObj *self) >> > ++{ >> > ++} >> > ++ >> > ++static void foo_obj_class_init (FooObjClass *klass) >> > ++{ >> > ++} >> > ++ >> > ++/** >> > ++ * foo_do_something: >> > ++ * @self: self >> > ++ * >> > ++ * Useless function. >> > ++ * >> > ++ * Returns: 0. >> > ++ */ >> > ++int foo_do_something(FooObj *self) >> > ++{ >> > ++ return 0; >> > ++} >> > +diff --git a/test cases/frameworks/10 gtk-doc/include/foo.h b/test >> > cases/frameworks/10 gtk-doc/include/foo.h >> > +index 7b8946b6a86..510f3d1ecb5 100644 >> > +--- a/test cases/frameworks/10 gtk-doc/include/foo.h >> > ++++ b/test cases/frameworks/10 gtk-doc/include/foo.h >> > +@@ -1,5 +1,7 @@ >> > + #pragma once >> > + >> > ++#include <glib-object.h> >> > ++ >> > + /** >> > + * FooIndecision: >> > + * @FOO_MAYBE: Something maybe >> > +@@ -13,3 +15,19 @@ typedef enum { >> > + FOO_POSSIBLY, >> > + } FooIndecision; >> > + >> > ++/** >> > ++ * FooObjClass: >> > ++ * >> > ++ * The class >> > ++ */ >> > ++ >> > ++/** >> > ++ * FooObj: >> > ++ * >> > ++ * The instance >> > ++ */ >> > ++ >> > ++#define FOO_TYPE_OBJ foo_obj_get_type() >> > ++G_DECLARE_FINAL_TYPE(FooObj, foo_obj, FOO, OBJ, GObject) >> > ++ >> > ++int foo_do_something(FooObj *self); >> > +diff --git a/test cases/frameworks/10 gtk-doc/meson.build b/test >> > cases/frameworks/10 gtk-doc/meson.build >> > +index 5c22ad0afa4..292980fafa7 100644 >> > +--- a/test cases/frameworks/10 gtk-doc/meson.build >> > ++++ b/test cases/frameworks/10 gtk-doc/meson.build >> > +@@ -24,4 +24,16 @@ if gtkdoc_ver.version_compare('<1.26') >> > + error('MESON_SKIP_TEST gtk-doc test requires gtkdoc >= 1.26.') >> > + endif >> > + >> > ++gobject = dependency('gobject-2.0') >> > ++ >> > ++libfoo = library('foo', 'foo.c', >> > ++ include_directories: inc, >> > ++ dependencies: gobject, >> > ++) >> > ++ >> > ++foo_dep = declare_dependency( >> > ++ link_with: libfoo, >> > ++ include_directories: inc, >> > ++) >> > ++ >> > + subdir('doc') >> > +diff --git a/test cases/frameworks/10 gtk-doc/test.json b/test >> > cases/frameworks/10 gtk-doc/test.json >> > +index c44126cc741..03ad0595817 100644 >> > +--- a/test cases/frameworks/10 gtk-doc/test.json >> > ++++ b/test cases/frameworks/10 gtk-doc/test.json >> > +@@ -4,8 +4,8 @@ >> > + {"type": "file", "file": "usr/share/gtk-doc/html/foobar/BAR.html"}, >> > + {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/foobar.devhelp2"}, >> > + {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/foobar.html"}, >> > +- {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/foobar-foo.html"}, >> > +- {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/foobar-foo-version.html"}, >> > ++ {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/FooObj.html"}, >> > ++ {"type": "file", "file": >> > "usr/share/gtk-doc/html/foobar/foo-version.html"}, >> > + {"type": "file", "file": "usr/share/gtk-doc/html/foobar/home.png"}, >> > + {"type": "file", "file": "usr/share/gtk-doc/html/foobar/index.html"}, >> > + {"type": "file", "file": "usr/share/gtk-doc/html/foobar/left.png"}, >> > diff --git a/meta/recipes-devtools/meson/meson/cross-prop-default.patch >> > b/meta/recipes-devtools/meson/meson/cross-prop-default.patch >> > deleted file mode 100644 >> > index 772395e879..0000000000 >> > --- a/meta/recipes-devtools/meson/meson/cross-prop-default.patch >> > +++ /dev/null >> > @@ -1,23 +0,0 @@ >> > -meson.build files that use cc.run() in native builds can silently >> > fallback to >> > -meson.get_cross_property() in cross builds without an exe-wrapper, but >> > there's >> > -no way to know that this is happening. >> > - >> > -As the defaults may be pessimistic (for example, disabling the support >> > for a >> > -feature that should be enabled) emit a warning when the default is used, >> > so that >> > -the recipe can explicitly set the cross property as relevant. >> > - >> > -Upstream-Status: Submitted [https://github.com/mesonbuild/meson/pull/5071] >> > -Signed-off-by: Ross Burton <ross.bur...@intel.com> >> > - >> > -diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py >> > -index 3c3cfae0..10e741ae 100644 >> > ---- a/mesonbuild/interpreter.py >> > -+++ b/mesonbuild/interpreter.py >> > -@@ -1890,6 +1890,7 @@ class MesonMain(InterpreterObject): >> > - return props[propname] >> > - except Exception: >> > - if len(args) == 2: >> > -+ mlog.warning('Cross property %s is using default value >> > %s' % (propname, args[1])) >> > - return args[1] >> > - raise InterpreterException('Unknown cross property: %s.' % >> > propname) >> > - >> > diff --git a/meta/recipes-devtools/meson/meson_0.57.2.bb >> > b/meta/recipes-devtools/meson/meson_0.58.0.bb >> > similarity index 100% >> > rename from meta/recipes-devtools/meson/meson_0.57.2.bb >> > rename to meta/recipes-devtools/meson/meson_0.58.0.bb >> > diff --git a/meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb >> > b/meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb >> > similarity index 100% >> > rename from meta/recipes-devtools/meson/nativesdk-meson_0.57.2.bb >> > rename to meta/recipes-devtools/meson/nativesdk-meson_0.58.0.bb >> > -- >> > 2.31.1 >> > >> > >> > >> >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#151769): https://lists.openembedded.org/g/openembedded-core/message/151769 Mute This Topic: https://lists.openembedded.org/mt/82809617/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-