summaryrefslogtreecommitdiffstats
path: root/Auxiliary
diff options
context:
space:
mode:
authorAlex Turbov <i.zaufi@gmail.com>2024-06-29 02:56:59 (GMT)
committerBrad King <brad.king@kitware.com>2024-07-02 13:29:33 (GMT)
commit549fb86168554fb67770d06ad480dd848e9482b3 (patch)
tree9a8dca0b3514594296bb2993014833d33ad369a3 /Auxiliary
parentb72a5405a6f8ff20c062dbca6b65c00dc1d1186e (diff)
downloadCMake-549fb86168554fb67770d06ad480dd848e9482b3.zip
CMake-549fb86168554fb67770d06ad480dd848e9482b3.tar.gz
CMake-549fb86168554fb67770d06ad480dd848e9482b3.tar.bz2
bash-completion: Handle `cmake --workflow`
Issue: #21000 Issue: #26100
Diffstat (limited to 'Auxiliary')
-rw-r--r--Auxiliary/bash-completion/cmake18
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