diff --git a/completion/meson.build b/completion/meson.build index e6b4ad5..e6bdff4 100644 --- a/completion/meson.build +++ b/completion/meson.build @@ -1,28 +1,28 @@ generate_completions_program = find_program('generate_completions.py') -if bash_completion_dep.found() - bashcompletionsdir = bash_completion_dep.get_variable(pkgconfig: 'completionsdir') -else - bashcompletionsdir = get_option('datadir') / 'bash-completion' / 'completions' - message('bash-completion not found: using', get_option('prefix') / bashcompletionsdir, 'as a falback install directory') -endif - -if fish_dep.found() - fishcompletionsdir = fish_dep.get_variable(pkgconfig: 'completionsdir') -else - fishcompletionsdir = get_option('datadir') / 'fish' / 'completions' - message('fish not found: using', get_option('prefix') / fishcompletionsdir, 'as a fallback install directory') -endif - -custom_target( - 'bash-completion', - capture: true, - command: [generate_completions_program, meson.global_source_root() / 'src', 'bash'], - depends: [toolbox_go], - install: true, - install_dir: bashcompletionsdir, - output: 'toolbox', +if bashcompletionsdir != '' + custom_target( + 'bash-completion', + capture: true, + command: [generate_completions_program, meson.global_source_root() / 'src', 'bash'], + depends: [toolbox_go], + install: true, + install_dir: bashcompletionsdir, + output: 'toolbox', ) +endif + +if fishcompletionsdir != '' + custom_target( + 'fish-completion', + capture: true, + command: [generate_completions_program, meson.global_source_root() / 'src', 'fish'], + depends: [toolbox_go], + install: true, + install_dir: fishcompletionsdir, + output: 'toolbox.fish', +) +endif custom_target( 'zsh-completion', @@ -30,16 +30,6 @@ custom_target( command: [generate_completions_program, meson.global_source_root() / 'src', 'zsh'], depends: [toolbox_go], install: true, - install_dir: get_option('datadir') / 'zsh' / 'site-functions', + install_dir: zshcompletionsdir, output: '_toolbox', ) - -custom_target( - 'fish-completion', - capture: true, - command: [generate_completions_program, meson.global_source_root() / 'src', 'fish'], - depends: [toolbox_go], - install: true, - install_dir: fishcompletionsdir, - output: 'toolbox.fish', -) diff --git a/meson.build b/meson.build index ffa2934..2ecf0a0 100644 --- a/meson.build +++ b/meson.build @@ -18,8 +18,26 @@ go_md2man = find_program('go-md2man') shellcheck = find_program('shellcheck', required: false) skopeo = find_program('skopeo', required: false) -bash_completion_dep = dependency('bash-completion', required: false) -fish_dep = dependency('fish', required: false) +bashcompletionsdir = get_option('bash_completions_dir') +if bashcompletionsdir == '' + bash_completion_dep = dependency('bash-completion', required: false) + if bash_completion_dep.found() + bashcompletionsdir = bash_completion_dep.get_variable(pkgconfig: 'completionsdir') + endif +endif + +fishcompletionsdir = get_option('fish_completions_dir') +if fishcompletionsdir == '' + fish_completion_dep = dependency('fish', required: false) + if fish_completion_dep.found() + fishcompletionsdir = fish_completion_dep.get_variable(pkgconfig: 'completionsdir') + endif +endif + +zshcompletionsdir = get_option('zsh_completions_dir') +if zshcompletionsdir == '' + zshcompletionsdir = get_option('datadir') / 'zsh' / 'site-functions' +endif migration_path_for_coreos_toolbox = get_option('migration_path_for_coreos_toolbox') profiledir = get_option('profile_dir') @@ -70,8 +88,6 @@ subdir('data') subdir('doc') subdir('profile.d') subdir('src') -if get_option('install_completions') - subdir('completion') -endif +subdir('completion') meson.add_install_script('meson_post_install.py') diff --git a/meson_options.txt b/meson_options.txt index 6be8202..3f07652 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,21 @@ +option( + 'bash_completions_dir', + description: 'Directory for Bash completion scripts', + type: 'string', +) + +option( + 'fish_completions_dir', + description: 'Directory for fish completion scripts', + type: 'string', +) + +option( + 'zsh_completions_dir', + description: 'Directory for Z shell completion scripts (default=$datadir/zsh/site-functions)', + type: 'string', +) + option( 'migration_path_for_coreos_toolbox', description: 'Offer a migration path to users of github.com/coreos/toolbox', @@ -17,10 +35,3 @@ option( description: 'Directory for system-wide tmpfiles.d(5) files', type: 'string', ) - -option( - 'install_completions', - description: 'Install bash, zsh and fish command completions', - type: 'boolean', - value: true, -)