diff options
author | Brad King <brad.king@kitware.com> | 2024-07-04 14:08:42 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-07-04 14:08:49 (GMT) |
commit | ddcba76547a0a2fce7422e2cccce40c51708a600 (patch) | |
tree | 6d80831b188d55f1fc2b3d4e7b48dd2a3b4af63f | |
parent | 3282ad4aee7b945deb6f2a0bd077b348b1f1ce55 (diff) | |
parent | 549fb86168554fb67770d06ad480dd848e9482b3 (diff) | |
download | CMake-ddcba76547a0a2fce7422e2cccce40c51708a600.zip CMake-ddcba76547a0a2fce7422e2cccce40c51708a600.tar.gz CMake-ddcba76547a0a2fce7422e2cccce40c51708a600.tar.bz2 |
Merge topic 'bash-completion-cmake-workflow'
549fb86168 bash-completion: Handle `cmake --workflow`
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9633
-rw-r--r-- | Auxiliary/bash-completion/cmake | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/Auxiliary/bash-completion/cmake b/Auxiliary/bash-completion/cmake index 803e09e..13b59e0 100644 --- a/Auxiliary/bash-completion/cmake +++ b/Auxiliary/bash-completion/cmake @@ -173,7 +173,9 @@ _cmake() printf -v quoted %q "$cur" if [[ ! "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then - COMPREPLY=( $( compgen -W "configure${IFS}build${IFS}test${IFS}all" -- "$quoted" ) ) + COMPREPLY=( + $( compgen -W "configure${IFS}build${IFS}package${IFS}test${IFS}workflow${IFS}all" -- "$quoted" ) + ) fi return ;; @@ -182,12 +184,16 @@ _cmake() local quoted printf -v quoted %q "$cur" - local build_or_configure="configure" - if [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then - build_or_configure="build" + local preset_type + if [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--workflow${IFS}" ]]; then + preset_type="workflow" + elif [[ "${IFS}${COMP_WORDS[*]}${IFS}" =~ "${IFS}--build${IFS}" ]]; then + preset_type="build" + else + preset_type="configure" fi - local presets=$( cmake --list-presets="$build_or_configure" 2>/dev/null | + local presets=$( cmake --list-presets="$preset_type" 2>/dev/null | grep -o "^ \".*\"" | sed \ -e "s/^ //g" \ -e "s/\"//g" \ @@ -204,6 +210,8 @@ _cmake() fi if [[ "$cur" == -* ]]; then + # FIXME(#26100): `cmake --help` is missing some options and does not + # have any mode-specific options like `cmake --build`'s `--config`. COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) ) [[ $COMPREPLY == *= ]] && compopt -o nospace [[ $COMPREPLY ]] && return |