From b049d6696d0357a124b5ba4bc3c5948128c8fdec Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 21 Jun 2018 14:38:55 +1000 Subject: [PATCH] tools: fake-build the measure touch-pressure/size sources 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 --- meson.build | 18 ++++++++++++++++++ tools/libinput-measure-touch-size | 14 ++++++++++---- tools/libinput-measure-touchpad-pressure | 14 ++++++++++---- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/meson.build b/meson.build index b43b7e49..e85bf833 100644 --- a/meson.build +++ b/meson.build @@ -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, diff --git a/tools/libinput-measure-touch-size b/tools/libinput-measure-touch-size index 9ff65eaa..990a72a7 100755 --- a/tools/libinput-measure-touch-size +++ b/tools/libinput-measure-touch-size @@ -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) diff --git a/tools/libinput-measure-touchpad-pressure b/tools/libinput-measure-touchpad-pressure index 765e7997..23ec513b 100755 --- a/tools/libinput-measure-touchpad-pressure +++ b/tools/libinput-measure-touchpad-pressure @@ -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) -- 2.34.1