From 35c4428083ddf80e67af33b959f845c593945dbc Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Tue, 4 Apr 2017 14:25:52 -0400 Subject: [PATCH] meson: Add bash completion support --- data/bash-completion/helpers/meson.build | 9 ++++++ data/meson.build | 5 ++++ libs/gst/helpers/meson.build | 12 +++++++- meson.build | 38 +++++++++++++++++++++++- 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 data/bash-completion/helpers/meson.build create mode 100644 data/meson.build diff --git a/data/bash-completion/helpers/meson.build b/data/bash-completion/helpers/meson.build new file mode 100644 index 0000000000..0a7ed7be67 --- /dev/null +++ b/data/bash-completion/helpers/meson.build @@ -0,0 +1,9 @@ +bash_helper_conf = configuration_data() +bash_helper_conf.set('GST_COMPLETION_HELPER_INSTALLED', + '@0@/@1@/gst-completion-helper'.format(prefix, helpers_install_dir)) +bash_helper_conf.set('GST_API_VERSION', apiversion) + +configure_file(input : 'gst.in', + output : 'gst', + install_dir : bash_helpers_dir, + configuration : bash_helper_conf) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000000..c9130e029c --- /dev/null +++ b/data/meson.build @@ -0,0 +1,5 @@ +if (bashcomp_found) + subdir('bash-completion/helpers') + install_data('bash-completion/completions/gst-launch-1.0', install_dir : bash_completions_dir) + install_data('bash-completion/completions/gst-inspect-1.0', install_dir : bash_completions_dir) +endif diff --git a/libs/gst/helpers/meson.build b/libs/gst/helpers/meson.build index be1a18dce0..fcba5893ff 100644 --- a/libs/gst/helpers/meson.build +++ b/libs/gst/helpers/meson.build @@ -10,5 +10,15 @@ gst_plugin_scanner = executable('gst-plugin-scanner', gst_scanner_dir = meson.current_build_dir() +if bashcomp_found + gst_completion_helper = executable('gst-completion-helper', + 'gst-completion-helper.c', + c_args : gst_c_args, + include_directories : [configinc], + dependencies : [gobject_dep, glib_dep, gst_dep], + install_dir : helpers_install_dir, + install: true, + ) +endif + # FIXME: gst-ptp-helper -# FIXME: gst-completion-helper diff --git a/meson.build b/meson.build index e7d219b8d1..a7567923a3 100644 --- a/meson.build +++ b/meson.build @@ -27,7 +27,7 @@ prefix = get_option('prefix') libtype = get_option('library_format') libexecdir = get_option('libexecdir') -helpers_install_dir = libexecdir + '/gstreamer-1.0/' +helpers_install_dir = join_paths(libexecdir, 'gstreamer-1.0') cc = meson.get_compiler('c') @@ -375,6 +375,41 @@ if not py3.found() py3 = find_program('python') endif +bashcomp_dep = dependency('bash-completion', version : '>= 2.0', required : false) + +bashcomp_found = bashcomp_dep.found() +bash_completions_dir = '' +bash_helpers_dir = '' + +if bashcomp_found + # get_pkgconfig_variable() won't let us set the prefix + pkgconfig = find_program('pkg-config') + + runcmd = run_command(pkgconfig, + '--define-variable=prefix="."', + '--variable=completionsdir', + 'bash-completion') + + if (runcmd.returncode() == 0) + bash_completions_dir = runcmd.stdout().strip() + else + message('Found bash-completion but the .pc file did not set \'completionsdir\'.') + bashcomp_found = false + endif + + runcmd = run_command(pkgconfig, + '--define-variable=prefix="."', + '--variable=helpersdir', + 'bash-completion') + + if (runcmd.returncode() == 0) + bash_helpers_dir = runcmd.stdout().strip() + else + message('Found bash-completion, but the .pc file did not set \'helpersdir\'.') + bashcomp_found = false + endif +endif + subdir('gst') subdir('libs') subdir('plugins') @@ -382,6 +417,7 @@ subdir('tools') subdir('pkgconfig') subdir('tests') subdir('po') +subdir('data') if build_machine.system() == 'windows' message('Disabling gtk-doc while building on Windows')