[Cmake-commits] CMake branch, next, updated. v2.8.8-2674-gfc1af7e

Eric Noulard eric.noulard at gmail.com
Mon Apr 23 14:52:45 EDT 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09 (commit)
       via  83729f978f02b36f7d0f1e44439450d7d61a4aa6 (commit)
       via  5b97942cbb915e8eaff0b5b9fee0676296656c93 (commit)
      from  b9fe606aff25f7940082e60bedb0b1cd28176aaa (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09
commit fc1af7e4b79ecd4d76d78d4535fa45fc5be0fd09
Merge: b9fe606 83729f9
Author:     Eric Noulard <eric.noulard at gmail.com>
AuthorDate: Mon Apr 23 14:52:42 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Apr 23 14:52:42 2012 -0400

    Merge topic 'EnhanceBash-completion-part1' into next
    
    83729f9 Install editors helper files
    5b97942 Enhancement of bash completion scripts given by Igor Murzov.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=83729f978f02b36f7d0f1e44439450d7d61a4aa6
commit 83729f978f02b36f7d0f1e44439450d7d61a4aa6
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Mon Apr 23 20:48:17 2012 +0200
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Mon Apr 23 20:49:33 2012 +0200

    Install editors helper files

diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt
index 0848fef..b04b32d 100644
--- a/Docs/CMakeLists.txt
+++ b/Docs/CMakeLists.txt
@@ -1,2 +1,4 @@
 string(REGEX REPLACE "^/(.*)" "\\1" REL_CMAKE_DATA_DIR "${CMAKE_DATA_DIR}")
+install(FILES cmake-help.vim cmake-indent.vim cmake-syntax.vim DESTINATION ${REL_CMAKE_DATA_DIR}/editors/vim)
+install(FILES cmake-mode.el DESTINATION ${REL_CMAKE_DATA_DIR}/editors/emacs)
 ADD_SUBDIRECTORY (bash-completion)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5b97942cbb915e8eaff0b5b9fee0676296656c93
commit 5b97942cbb915e8eaff0b5b9fee0676296656c93
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Sun Apr 22 19:08:29 2012 +0200
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Mon Apr 23 20:46:08 2012 +0200

    Enhancement of bash completion scripts given by Igor Murzov.
    
    The orginal patch has been reworked in order to follow
    CMake source tree layout habit.
    
    Inspired-By: Igor Murzov <e-mail at date.by>

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b1d5930..66f9b2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -620,6 +620,9 @@ INSTALL(
                               WORLD_READ WORLD_EXECUTE
   )
 
+# process docs related install
+ADD_SUBDIRECTORY(Docs)
+
 #-----------------------------------------------------------------------
 # End of the main section of the CMakeLists file
 #-----------------------------------------------------------------------
diff --git a/Docs/CMakeLists.txt b/Docs/CMakeLists.txt
new file mode 100644
index 0000000..0848fef
--- /dev/null
+++ b/Docs/CMakeLists.txt
@@ -0,0 +1,2 @@
+string(REGEX REPLACE "^/(.*)" "\\1" REL_CMAKE_DATA_DIR "${CMAKE_DATA_DIR}")
+ADD_SUBDIRECTORY (bash-completion)
diff --git a/Docs/bash-completion/CMakeLists.txt b/Docs/bash-completion/CMakeLists.txt
new file mode 100644
index 0000000..592b71e
--- /dev/null
+++ b/Docs/bash-completion/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Always install completion file in local dir
+# in order to be sure to always be able to install
+# in a local user directory rooted in a single directory.
+# packager should either patch that out or
+# add symlinks to the files in appropriate places
+#  /etc/bash_completion.d/
+#  DATADIR/completions (may be /usr/share/<package>/completions
+install(FILES cmake cpack ctest DESTINATION ${REL_CMAKE_DATA_DIR}/completions)
diff --git a/Docs/bash-completion/cmake b/Docs/bash-completion/cmake
new file mode 100644
index 0000000..59b565a
--- /dev/null
+++ b/Docs/bash-completion/cmake
@@ -0,0 +1,149 @@
+# bash completion for cmake(1)                             -*- shell-script -*-
+
+_cmake()
+{
+    local cur prev words cword split=false
+    _init_completion -n := || return
+
+    # Workaround for options like -DCMAKE_BUILD_TYPE=Release
+    local prefix=
+    if [[ $cur == -D* ]]; then
+        prev=-D
+        prefix=-D
+        cur="${cur#-D}"
+    elif [[ $cur == -U* ]]; then
+        prev=-U
+        prefix=-U
+        cur="${cur#-U}"
+    fi
+
+    case "$prev" in
+        -D)
+            if [[ $cur == *=* ]]; then
+            # complete values for variables
+                local var type value
+                var="${cur%%[:=]*}"
+                value="${cur#*=}"
+
+                if [[ $cur == CMAKE_BUILD_TYPE* ]]; then # most widely used case
+                    COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
+                        MinSizeRel' -- "$value" ) )
+                    return
+                fi
+
+                if [[ $cur == *:* ]]; then
+                    type="${cur#*:}"
+                    type="${type%%=*}"
+                else # get type from cache if it's not set explicitly
+                    type=$( cmake -LA -N 2>/dev/null | grep "$var:" \
+                        2>/dev/null )
+                    type="${type#*:}"
+                    type="${type%%=*}"
+                fi
+                case "$type" in
+                    FILEPATH)
+                        cur="$value"
+                        _filedir
+                        return
+                        ;;
+                    PATH)
+                        cur="$value"
+                        _filedir -d
+                        return
+                        ;;
+                    BOOL)
+                        COMPREPLY=( $( compgen -W 'ON OFF TRUE FALSE' -- \
+                            "$value" ) )
+                        return
+                        ;;
+                    STRING|INTERNAL)
+                        # no completion available
+                        return
+                        ;;
+                esac
+            elif [[ $cur == *:* ]]; then
+            # complete types
+                local type="${cur#*:}"
+                COMPREPLY=( $( compgen -W 'FILEPATH PATH STRING BOOL INTERNAL'\
+                    -S = -- "$type" ) )
+                compopt -o nospace
+            else
+            # complete variable names
+                COMPREPLY=( $( compgen -W '$( cmake -LA -N | tail -n +2 |
+                    cut -f1 -d: )' -P "$prefix" -- "$cur" ) )
+                compopt -o nospace
+            fi
+            return
+            ;;
+        -U)
+            COMPREPLY=( $( compgen -W '$( cmake -LA -N | tail -n +2 |
+                cut -f1 -d: )' -P "$prefix" -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    _split_longopt && split=true
+
+    case "$prev" in
+        -C|-P|--graphviz|--system-information)
+            _filedir
+            return
+            ;;
+        --build)
+            _filedir -d
+            return
+            ;;
+        -E)
+            COMPREPLY=( $( compgen -W "$( cmake -E help |& sed -n \
+                '/^  /{s|^  \([^ ]\{1,\}\) .*$|\1|;p}' 2>/dev/null )" \
+                -- "$cur" ) )
+            return
+            ;;
+        -G)
+            # FIXME: doesn't work properly
+            local IFS=$'\n'
+            COMPREPLY=( $( compgen -W '$( cmake --help 2>/dev/null | sed -n \
+                "/^.*[^ ].*= Generates/{s|^ *\(.*[^ ]\) *= Generates.*$|\1|;s| |\\\\ |g;p}" \
+                2>/dev/null )' -- "$cur" ) )
+            return
+            ;;
+        --help-command)
+            COMPREPLY=( $( compgen -W '$( cmake --help-command-list 2>/dev/null|
+                tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+        --help-module)
+            COMPREPLY=( $( compgen -W '$( cmake --help-module-list 2>/dev/null|
+                tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+         --help-policy)
+            COMPREPLY=( $( compgen -W '$( cmake --help-policies 2>/dev/null |
+                grep "^  CMP" 2>/dev/null )' -- "$cur" ) )
+            return
+            ;;
+         --help-property)
+            COMPREPLY=( $( compgen -W '$( cmake --help-property-list \
+                2>/dev/null | tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+         --help-variable)
+            COMPREPLY=( $( compgen -W '$( cmake --help-variable-list \
+                2>/dev/null | tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    $split && return
+
+    if [[ "$cur" == -* ]]; then
+        COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
+        [[ $COMPREPLY == *= ]] && compopt -o nospace
+        [[ $COMPREPLY ]] && return
+    fi
+
+    _filedir
+} &&
+complete -F _cmake cmake
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/Docs/bash-completion/cpack b/Docs/bash-completion/cpack
new file mode 100644
index 0000000..84dcfd5
--- /dev/null
+++ b/Docs/bash-completion/cpack
@@ -0,0 +1,61 @@
+# bash completion for cpack(1)                             -*- shell-script -*-
+
+_cpack()
+{
+    local cur prev words cword
+    _init_completion -n = || return
+
+    case "$prev" in
+        -G)
+            COMPREPLY=( $( compgen -W '$( cpack --help 2>/dev/null |
+                grep "^  .*=\ .*" 2> /dev/null | grep -v "^  -" 2>/dev/null |
+                cut -d" " -f 3 )' -- "$cur" ) )
+            return
+            ;;
+        -C)
+            COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
+                MinSizeRel' -- "$cur" ) )
+            return
+            ;;
+        -D)
+            [[ $cur == *=* ]] && return # no completion for values
+            COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
+                2>/dev/null | tail -n +2 )' -S = -- "$cur" ) )
+            compopt -o nospace
+            return
+            ;;
+        -P|-R|--vendor)
+            # argument required but no completions available
+            return
+            ;;
+        -B)
+            _filedir -d
+            return
+            ;;
+        --config)
+            _filedir
+            return
+            ;;
+        --help-command)
+            COMPREPLY=( $( compgen -W '$( cpack --help-command-list 2>/dev/null|
+                tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+        --help-variable)
+            COMPREPLY=( $( compgen -W '$( cpack --help-variable-list \
+                2>/dev/null | tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    if [[ "$cur" == -* ]]; then
+        COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
+        [[ $COMPREPLY == *= ]] && compopt -o nospace
+        [[ $COMPREPLY ]] && return
+    fi
+
+    _filedir
+} &&
+complete -F _cpack cpack
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/Docs/bash-completion/ctest b/Docs/bash-completion/ctest
new file mode 100644
index 0000000..9707f62
--- /dev/null
+++ b/Docs/bash-completion/ctest
@@ -0,0 +1,81 @@
+# bash completion for ctest(1)                             -*- shell-script -*-
+
+_ctest()
+{
+    local cur prev words cword
+    _init_completion -n = || return
+
+    case "$prev" in
+        -C|--build-config)
+            COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
+                MinSizeRel' -- "$cur" ) )
+            return
+            ;;
+        -j|--parallel)
+            COMPREPLY=( $( compgen -W "{1..$(( $(_ncpus)*2 ))}" -- "$cur" ) )
+            return
+            ;;
+        -O|--output-log|-A|--add-notes|--extra-submit)
+            _filedir
+            return
+            ;;
+        -L|--label-regex|-LE|--label-exclude|--track|-I|--tests-information|\
+        --max-width|--timeout|--stop-time)
+            # argument required but no completions available
+            return
+            ;;
+        -R|--tests-regex|-E|--exclude-regex)
+            COMPREPLY=( $( compgen -W '$( ctest -N 2>/dev/null |
+                grep "^  Test" 2>/dev/null | cut -d: -f 2 )' -- "$cur" ) )
+            return
+            ;;
+        -D|--dashboard)
+            if [[ $cur == @(Experimental|Nightly|Continuous)* ]]; then
+                local model action
+                action=${cur#@(Experimental|Nightly|Continuous)}
+                model=${cur%"$action"}
+                COMPREPLY=( $( compgen -W 'Start Update Configure Build Test
+                    Coverage Submit MemCheck' -P "$model" -- "$action" ) )
+            else
+                COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' \
+                -- "$cur" ) )
+                compopt -o nospace
+            fi
+            return
+            ;;
+        -M|--test-model)
+            COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' -- \
+                "$cur" ) )
+            return
+            ;;
+        -T|--test-action)
+            COMPREPLY=( $( compgen -W 'Start Update Configure Build Test
+                Coverage Submit MemCheck' -- "$cur" ) )
+            return
+            ;;
+        -S|--script|-SP|--script-new-process)
+            # FIXME ?
+            return
+            ;;
+        --interactive-debug-mode)
+            COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) )
+            return
+            ;;
+        --help-command)
+            COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null|
+                tail -n +2 )' -- "$cur" ) )
+            return
+            ;;
+    esac
+
+    if [[ "$cur" == -* ]]; then
+        COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
+        [[ $COMPREPLY == *= ]] && compopt -o nospace
+        [[ $COMPREPLY ]] && return
+    fi
+
+    _filedir
+} &&
+complete -F _ctest ctest
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/Docs/cmake-completion b/Docs/cmake-completion
deleted file mode 100644
index d70ac24..0000000
--- a/Docs/cmake-completion
+++ /dev/null
@@ -1,207 +0,0 @@
-#
-# bash-completion file for CMake
-# Provided by Eric NOULARD - eric.noulard at gmail.com
-#
-# see http://bash-completion.alioth.debian.org/
-# and http://www.cmake.org
-#
-# We will try to complete cmake commands options
-# at 2 (or may be 3 levels)
-#  [cmake|cpack|ctest] <level0> <level1> <level2>
-#
-#  level0 is top level cmake/cpack/ctest options
-#  level1 is the first argument of level0 option
-#  level2 is the seconf argument of level1 argument
-#   FIXME: I don't know how to handle level2
-#
-# The file has been proposed for inclusion in the bash-completion package
-# https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=312632&group_id=100114
-# In the meantime,
-#   1) If you want to test bash completion for cmake/cpack/ctest
-#      just source the current file at bash prompt
-#      . ./cmake-completion
-#
-#   2) If you want to install it for good copy this file to
-#      cp cmake-completion /etc/bash_completion.d/cmake
-#
-
-#
-# cmake command
-#
-# have cmake &&
-_cmake()
-{
-    local cur prev opts words cword
-    COMPREPLY=()
-    cur="${COMP_WORDS[COMP_CWORD]}"
-    prev="${COMP_WORDS[COMP_CWORD-1]}"
-    # seems to be only available on bash-completion 1.2
-    #_get_comp_words_by_ref cur prev
-
-    # cmake command line option we want to complete
-    opts=`cmake --help | grep "^  \-.*=\ .*" | cut -d" " -f 3 | cut -d= -f 1 | cut -d[ -f 1`
-
-    #
-    #  Complete the arguments to some of
-    #  the most commonly used commands (Level 1).
-    #
-    case "${prev}" in
-        -E)
-            local running=$(for x in `cmake -E |&  grep "^  " | cut -d" " -f 3`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        # FIXME: don't know how to handle multi words completion
-        # or more precisely word that contains space in them like "Unix Makefiles"
-	# -G)
-        #     local running=$(for x in `cmake --help | grep "^  .*=\ .*" | grep -v "^  -" | cut -d"=" -f 1 | grep -v "^   "`; do echo \"${x}\" ; done )
-        #     COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-        #     return 0
-        #     ;;
-        --help-command)
-            local running=$(for x in `cmake --help-command-list | grep -v "cmake version"`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        --help-module)
-            local running=$(for x in `cmake --help-module-list | grep -v "cmake version"`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-         --help-policy)
-            local running=$(for x in `cmake --help-policies | grep "^  CMP"`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-         --help-property)
-            local running=$(for x in `cmake --help-property-list | grep -v "cmake version"`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-         --help-variable)
-            local running=$(for x in `cmake --help-variable-list | grep -v "cmake version"`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        *)
-            ;;
-    esac
-
-    #
-    #  Complete the arguments to some of
-    #  the most commonly used commands (Level 2).
-    #   ?? How to do that ..
-
-    #
-    # Complete the option (Level 0 - right after cmake)
-    #
-    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
-} &&
-complete -F _cmake -o default cmake
-
-#
-# cpack command
-#
-#have cpack &&
-_cpack()
-{
-    local cur prev opts words cword
-    COMPREPLY=()
-    cur="${COMP_WORDS[COMP_CWORD]}"
-    prev="${COMP_WORDS[COMP_CWORD-1]}"
-    # seems to be only available on bash-completion 1.2
-    #_get_comp_words_by_ref cur prev
-
-    # cpack command line option we want to complete
-    opts=`cpack --help | grep "^  \-.*=\ .*"  | cut -d" " -f 3 | cut -d= -f 1`
-    opts="${opts} --help -V"
-
-    #
-    #  Complete the arguments to some of
-    #  the most commonly used commands (Level 1).
-    #
-    case "${prev}" in
-        -G)
-            local running=$(for x in `cpack --help | grep "^  .*=\ .*" | grep -v "^  -" | cut -d" " -f 3`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        --config)
-            COMPREPLY=( $(compgen -f ${cur}) )
-            return 0
-            ;;
-        --help-variable)
-            local running=$(for x in `cpack --help-variable-list | grep -v "cpack version" `; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        --help-command)
-            local running=$(for x in `cpack --help-command-list | grep -v "cpack version" `; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        *)
-            ;;
-    esac
-
-    #
-    # Complete the option (Level 0 - right after cpack)
-    #
-    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
-} &&
-complete -F _cpack -o default cpack
-
-#
-# ctest command
-#
-# have ctest &&
-_ctest()
-{
-    local cur prev opts words cword
-    COMPREPLY=()
-    cur="${COMP_WORDS[COMP_CWORD]}"
-    prev="${COMP_WORDS[COMP_CWORD-1]}"
-    # seems to be only available on bash-completion 1.2
-    #_get_comp_words_by_ref cur prev
-
-    # cmake command line option we want to complete
-    opts=`ctest --help | grep "\-\-.*" | cut -d" " -f 3 | sed s/,/\\\n/g`
-
-    #
-    #  Complete the arguments to some of
-    #  the most commonly used commands (Level 1).
-    #
-    case "${prev}" in
-        --help-command)
-            local running=$(for x in `ctest --help-command-list | grep -v "ctest version" `; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        -R|-E)
-            local running=$(for x in `ctest -N 2> /dev/null | grep "^  Test" | cut -d: -f 2`; do echo ${x} ; done )
-            COMPREPLY=( $(compgen -W "${running}" -- ${cur}) )
-            return 0
-            ;;
-        *)
-            ;;
-    esac
-
-    #
-    #  Complete the arguments to some of
-    #  the most commonly used commands (Level 2).
-    #   ?? How to do that ..
-
-    #
-    # Complete the option (Level 0 - right after cmake)
-    #
-    COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
-} &&
-complete -F _ctest -o default ctest
-
-# Local variables:
-# mode: shell-script
-# sh-basic-offset: 4
-# sh-indent-comment: t
-# indent-tabs-mode: nil
-# End:
-# ex: ts=4 sw=4 et filetype=sh

-----------------------------------------------------------------------

Summary of changes:
 CMakeLists.txt                      |    3 +
 Docs/CMakeLists.txt                 |    4 +
 Docs/bash-completion/CMakeLists.txt |    8 ++
 Docs/bash-completion/cmake          |  149 +++++++++++++++++++++++++
 Docs/bash-completion/cpack          |   61 ++++++++++
 Docs/bash-completion/ctest          |   81 ++++++++++++++
 Docs/cmake-completion               |  207 -----------------------------------
 7 files changed, 306 insertions(+), 207 deletions(-)
 create mode 100644 Docs/CMakeLists.txt
 create mode 100644 Docs/bash-completion/CMakeLists.txt
 create mode 100644 Docs/bash-completion/cmake
 create mode 100644 Docs/bash-completion/cpack
 create mode 100644 Docs/bash-completion/ctest
 delete mode 100644 Docs/cmake-completion


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list