aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjpakkane <jpakkane@gmail.com>2015-06-07 23:58:19 +0300
committerjpakkane <jpakkane@gmail.com>2015-06-07 23:58:19 +0300
commit414c5f8c497bacaf2d70ec1b992c7e828b775eaf (patch)
treebabcafc1d3c4a6fc3613ca7a2c826b941dd59e69
parent379a0bed137e6ac1b25d64033116f83817842aca (diff)
parentfb401ed8d0fd9b4b6b09515ea815be7bd10b34e4 (diff)
downloadmeson-414c5f8c497bacaf2d70ec1b992c7e828b775eaf.zip
meson-414c5f8c497bacaf2d70ec1b992c7e828b775eaf.tar.gz
meson-414c5f8c497bacaf2d70ec1b992c7e828b775eaf.tar.bz2
Merge pull request #140 from MathieuDuponchelle/fix_library_introspection
Fix library introspection
-rw-r--r--dependencies.py16
-rw-r--r--modules/gnome.py20
2 files changed, 35 insertions, 1 deletions
diff --git a/dependencies.py b/dependencies.py
index c4c046a..3767d63 100644
--- a/dependencies.py
+++ b/dependencies.py
@@ -90,6 +90,8 @@ class PkgConfigDependency(Dependency):
else:
pkgbin = 'pkg-config'
type_string = 'Native'
+
+ self.pkgbin = pkgbin
p = subprocess.Popen([pkgbin, '--modversion', name], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
out = p.communicate()[0]
@@ -142,6 +144,20 @@ class PkgConfigDependency(Dependency):
self.libs.append(lib)
+ def get_variable(self, variable_name):
+ p = subprocess.Popen([self.pkgbin, '--variable=%s' %
+ variable_name, self.name], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ out = p.communicate()[0]
+ if p.returncode != 0:
+ if required:
+ raise DependencyException('%s dependency %s not found.' %
+ (type_string, self.name))
+ else:
+ variable = out.decode().strip()
+ mlog.debug ("return of subprocess : ", variable)
+
+ return variable
+
def get_modversion(self):
return self.modversion
diff --git a/modules/gnome.py b/modules/gnome.py
index fdcf827..51bd941 100644
--- a/modules/gnome.py
+++ b/modules/gnome.py
@@ -95,6 +95,17 @@ class GnomeModule:
scan_command += ['--pkg-export=%s' % pkg for pkg in pkgs]
else:
raise MesonException('Gir export packages must be str or list')
+
+ deps = None
+ if 'dependencies' in kwargs:
+ deps = kwargs.pop('dependencies')
+ if not isinstance (deps, list):
+ deps = [deps]
+ for dep in deps:
+ girdir = dep.held_object.get_variable ("girdir")
+ if girdir:
+ scan_command += ["--add-include-path=%s" % girdir]
+
inc_dirs = None
if kwargs.get('include_directories'):
inc_dirs = kwargs.pop('include_directories')
@@ -121,7 +132,14 @@ class GnomeModule:
typelib_output = '%s-%s.typelib' % (ns, nsversion)
typelib_cmd = ['g-ir-compiler', scan_target, '--output', '@OUTPUT@']
if inc_dirs:
- typelib_cmd += ['--includedir=%s' % inc for inc in inc_dirs.held_object.get_incdirs()]
+ typelib_cmd += ['--includedir=%s' % inc for inc in
+ inc_dirs.held_object.get_incdirs()]
+ if deps:
+ for dep in deps:
+ girdir = dep.held_object.get_variable ("girdir")
+ if girdir:
+ typelib_cmd += ["--includedir=%s" % girdir]
+
kwargs['output'] = typelib_output
kwargs['command'] = typelib_cmd
# Note that this can't be libdir, because e.g. on Debian it points to