Prefer MESONINTROSPECT env var to find mesonintrospect if set
authorTim-Philipp Müller <tim@centricular.com>
Sun, 9 Apr 2017 23:35:18 +0000 (00:35 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Mon, 10 Apr 2017 00:07:38 +0000 (01:07 +0100)
This is new in meson 0.40. Makes sure we find and use the
mesonintrospect from the same location as our meson, and
not some other meson version that just happens to be in the
path. We might be using meson directly from a checkout, for
example.

https://bugzilla.gnome.org/show_bug.cgi?id=781110

common.py

index 8c8b55d..d795bf3 100644 (file)
--- a/common.py
+++ b/common.py
@@ -60,5 +60,18 @@ def get_meson():
         mesonintrospect = os.path.join(ROOTDIR, 'meson', 'mesonintrospect.py')
         return meson, mesonconf, mesonintrospect
 
-    return accept_command(["meson.py", "meson"]), accept_command(["mesonconf.py", "mesonconf"]), \
-        accept_command(["mesonintrospect.py", "mesonintrospect"])
+    mesonintrospect = os.environ.get('MESONINTROSPECT', None)
+    if mesonintrospect and os.path.exists(mesonintrospect):
+      mesondir = os.path.dirname(mesonintrospect)
+      if mesonintrospect.endswith('.py'):
+        meson = os.path.join(mesondir, 'meson.py')
+        mesonconf = os.path.join(mesondir, 'mesonconf.py')
+      else:
+        meson = os.path.join(mesondir, 'meson')
+        mesonconf = os.path.join(mesondir, 'mesonconf')
+    else:
+      meson = accept_command(["meson.py", "meson"])
+      mesonconf = accept_command(["mesonconf.py", "mesonconf"])
+      mesonintrospect = accept_command(["mesonintrospect.py", "mesonintrospect"])
+
+    return meson, mesonconf, mesonintrospect