meson: Add bash completion support

This commit is contained in:
Nicolas Dufresne 2017-04-04 14:25:52 -04:00
parent bae1fe254a
commit 35c4428083
4 changed files with 62 additions and 2 deletions

View file

@ -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)

5
data/meson.build Normal file
View file

@ -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

View file

@ -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

View file

@ -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')