From e9b2084592aaab84dc08a917e85aee9827027f08 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Tue, 22 Nov 2016 16:32:51 +0100 Subject: dependencies: allow overriding pkg-config with PKG_CONFIG in check_pkgconfig Signed-off-by: Marc-Antoine Perennou --- mesonbuild/dependencies.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py index a092732..5f0c261 100644 --- a/mesonbuild/dependencies.py +++ b/mesonbuild/dependencies.py @@ -229,12 +229,17 @@ class PkgConfigDependency(Dependency): def check_pkgconfig(self): try: - p = subprocess.Popen(['pkg-config', '--version'], stdout=subprocess.PIPE, + evar = 'PKG_CONFIG' + if evar in os.environ: + pkgbin = os.environ[evar].strip() + else: + pkgbin = 'pkg-config' + p = subprocess.Popen([pkgbin, '--version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = p.communicate()[0] if p.returncode == 0: if not self.silent: - mlog.log('Found pkg-config:', mlog.bold(shutil.which('pkg-config')), + mlog.log('Found pkg-config:', mlog.bold(shutil.which(pkgbin)), '(%s)' % out.decode().strip()) PkgConfigDependency.pkgconfig_found = True return -- cgit v1.1 From 6d1b6de6b01f9fa06ef2c374aacb69b38cf2bd1b Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Tue, 22 Nov 2016 16:35:36 +0100 Subject: dependencies: allow overriding pkg-config with PKG_CONFIG when setting pkgbin Signed-off-by: Marc-Antoine Perennou --- mesonbuild/dependencies.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py index 5f0c261..b76c3cb 100644 --- a/mesonbuild/dependencies.py +++ b/mesonbuild/dependencies.py @@ -123,7 +123,11 @@ class PkgConfigDependency(Dependency): pkgbin = environment.cross_info.config["binaries"]['pkgconfig'] self.type_string = 'Cross' else: - pkgbin = 'pkg-config' + evar = 'PKG_CONFIG' + if evar in os.environ: + pkgbin = os.environ[evar].strip() + else: + pkgbin = 'pkg-config' self.type_string = 'Native' mlog.debug('Determining dependency %s with pkg-config executable %s.' % (name, pkgbin)) -- cgit v1.1 From bb3b45a0ececcb81e7049a09f041506f8de121fa Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Tue, 22 Nov 2016 16:49:02 +0100 Subject: gnome: use PkgConfigDependency to find gobject-introspection cflags Signed-off-by: Marc-Antoine Perennou --- mesonbuild/modules/gnome.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py index 241a531..4b61de1 100644 --- a/mesonbuild/modules/gnome.py +++ b/mesonbuild/modules/gnome.py @@ -371,14 +371,15 @@ can not be used with the current version of glib-compiled-resources, due to if not isinstance(girtarget, (build.Executable, build.SharedLibrary)): raise MesonException('Gir target must be an executable or shared library') try: - pkgstr = subprocess.check_output(['pkg-config', '--cflags', 'gobject-introspection-1.0']) + gir_dep = dependencies.PkgConfigDependency( + 'gobject-introspection-1.0', state.environment, {'native': True}) + pkgargs = gir_dep.get_compile_args() except Exception: global girwarning_printed if not girwarning_printed: mlog.warning('gobject-introspection dependency was not found, disabling gir generation.') girwarning_printed = True return [] - pkgargs = pkgstr.decode().strip().split() ns = kwargs.pop('namespace') nsversion = kwargs.pop('nsversion') libsources = kwargs.pop('sources') -- cgit v1.1 From 4d3cce1532ccd6cbd5cdb6a3d12b076effedd6bd Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Tue, 22 Nov 2016 16:54:42 +0100 Subject: allow overriding readelf with READELF Signed-off-by: Marc-Antoine Perennou --- mesonbuild/scripts/symbolextractor.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mesonbuild/scripts/symbolextractor.py b/mesonbuild/scripts/symbolextractor.py index c117301..2d1a428 100755 --- a/mesonbuild/scripts/symbolextractor.py +++ b/mesonbuild/scripts/symbolextractor.py @@ -22,7 +22,7 @@ # This file is basically a reimplementation of # http://cgit.freedesktop.org/libreoffice/core/commit/?id=3213cd54b76bc80a6f0516aac75a48ff3b2ad67c -import sys, subprocess +import os, sys, subprocess from mesonbuild import mesonlib import argparse @@ -49,7 +49,12 @@ def write_if_changed(text, outfilename): f.write(text) def linux_syms(libfilename, outfilename): - pe = subprocess.Popen(['readelf', '-d', libfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + evar = 'READELF' + if evar in os.environ: + readelfbin = os.environ[evar].strip() + else: + readelfbin = 'readelf' + pe = subprocess.Popen([readelfbin, '-d', libfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = pe.communicate()[0].decode() if pe.returncode != 0: raise RuntimeError('Readelf does not work') -- cgit v1.1 From a70f39f815a66885cabc118d077634095b2b0878 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Tue, 22 Nov 2016 17:08:01 +0100 Subject: allow overriding nm with NM Signed-off-by: Marc-Antoine Perennou --- mesonbuild/scripts/symbolextractor.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mesonbuild/scripts/symbolextractor.py b/mesonbuild/scripts/symbolextractor.py index 2d1a428..9d28028 100755 --- a/mesonbuild/scripts/symbolextractor.py +++ b/mesonbuild/scripts/symbolextractor.py @@ -54,13 +54,18 @@ def linux_syms(libfilename, outfilename): readelfbin = os.environ[evar].strip() else: readelfbin = 'readelf' + evar = 'NM' + if evar in os.environ: + nmbin = os.environ[evar].strip() + else: + nmbin = 'nm' pe = subprocess.Popen([readelfbin, '-d', libfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = pe.communicate()[0].decode() if pe.returncode != 0: raise RuntimeError('Readelf does not work') result = [x for x in output.split('\n') if 'SONAME' in x] assert(len(result) <= 1) - pnm = subprocess.Popen(['nm', '--dynamic', '--extern-only', '--defined-only', '--format=posix', libfilename], + pnm = subprocess.Popen([nmbin, '--dynamic', '--extern-only', '--defined-only', '--format=posix', libfilename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) output = pnm.communicate()[0].decode() if pnm.returncode != 0: -- cgit v1.1 From e43dda13633c86411f38383a2261ea40195eef33 Mon Sep 17 00:00:00 2001 From: Marc-Antoine Perennou Date: Sun, 4 Dec 2016 12:18:03 +0100 Subject: add myself to authors.txt Signed-off-by: Marc-Antoine Perennou --- authors.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/authors.txt b/authors.txt index 03e8478..12e944e 100644 --- a/authors.txt +++ b/authors.txt @@ -57,3 +57,4 @@ Mark Schulte Paulo Antonio Alvarez Olexa Bilaniuk Daniel Stone +Marc-Antoine Perennou -- cgit v1.1