tools: fake-build the measure touch-pressure/size sources
authorPeter Hutterer <peter.hutterer@who-t.net>
Thu, 21 Jun 2018 04:38:55 +0000 (14:38 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Tue, 26 Jun 2018 01:30:25 +0000 (01:30 +0000)
This way we can make them execute the list-quirks from the builddir. And it
makes it easier to run these tools from the git directory on machines where we
have libinput without the quirks.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
meson.build
tools/libinput-measure-touch-size
tools/libinput-measure-touchpad-pressure

index b43b7e4..e85bf83 100644 (file)
@@ -541,16 +541,34 @@ configure_file(input : 'tools/libinput-measure-touchpad-tap.man',
               install_dir : join_paths(get_option('mandir'), 'man1')
               )
 
+config_builddir = configuration_data()
+config_builddir.set('BUILDDIR', meson.build_root())
+# libinput-measure-touchpad-pressure gets built but we install_data the
+# source instead. The built file is the one that uses the local list-quirks
+# and should be used for debugging.
 install_data('tools/libinput-measure-touchpad-pressure',
             install_dir : libinput_tool_path)
+configure_file(input: 'tools/libinput-measure-touchpad-pressure',
+              output: 'libinput-measure-touchpad-pressure',
+              configuration : config_builddir
+              )
+
 configure_file(input : 'tools/libinput-measure-touchpad-pressure.man',
               output : 'libinput-measure-touchpad-pressure.1',
               configuration : man_config,
               install : true,
               install_dir : join_paths(get_option('mandir'), 'man1')
               )
+# libinput-measure-touch-size gets built but we install_data the source
+# instead. The built file is the one that uses the local list-quirks and
+# should be used for debugging.
 install_data('tools/libinput-measure-touch-size',
             install_dir : libinput_tool_path)
+configure_file(input: 'tools/libinput-measure-touch-size',
+              output: 'libinput-measure-touch-size',
+              configuration : config_builddir
+              )
+
 configure_file(input : 'tools/libinput-measure-touch-size.man',
               output : 'libinput-measure-touch-size.1',
               configuration : man_config,
index 9ff65ea..990a72a 100755 (executable)
@@ -24,6 +24,7 @@
 # DEALINGS IN THE SOFTWARE.
 #
 
+import os
 import sys
 import subprocess
 import argparse
@@ -221,10 +222,15 @@ class Device(object):
         sys.exit(1)
 
     def _init_thresholds_from_quirks(self):
-        # FIXME: this uses the system-installed version
-        # but we should really auto-detect when this is started
-        # from the builddir
-        command = ['libinput', 'list-quirks', self.path]
+        # This is replaced for the version in builddir but left as-is for
+        # the installed version. For the builddir one we need to run the
+        # builddir list-quirks
+        builddir = '@BUILDDIR@'
+        if builddir != '@' + 'BUILDDIR' + '@':
+            command = [os.path.join(builddir, 'libinput-list-quirks')]
+        else:
+            command = ['libinput', 'list-quirks']
+        command.append(self.path)
         cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         if cmd.returncode != 0:
             print("Error querying quirks: {}".format(cmd.stderr.decode('utf-8')), file=sys.stderr)
index 765e799..23ec513 100755 (executable)
@@ -24,6 +24,7 @@
 # DEALINGS IN THE SOFTWARE.
 #
 
+import os
 import sys
 import subprocess
 import argparse
@@ -199,10 +200,15 @@ class Device(object):
         sys.exit(1)
 
     def _init_thresholds_from_quirks(self):
-        # FIXME: this uses the system-installed version
-        # but we should really auto-detect when this is started
-        # from the builddir
-        command = ['libinput', 'list-quirks', self.path]
+        # This is replaced for the version in builddir but left as-is for
+        # the installed version. For the builddir one we need to run the
+        # builddir list-quirks
+        builddir = '@BUILDDIR@'
+        if builddir != '@' + 'BUILDDIR' + '@':
+            command = [os.path.join(builddir, 'libinput-list-quirks')]
+        else:
+            command = ['libinput', 'list-quirks']
+        command.append(self.path)
         cmd = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
         if cmd.returncode != 0:
             print("Error querying quirks: {}".format(cmd.stderr.decode('utf-8')), file=sys.stderr)