summaryrefslogtreecommitdiff
path: root/net:foret/completion/_sdk-targets
blob: a0138818f4028b0e5b188a97e80d1c437e44f726 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#compdef sdk-factory.sh sdk-patch.sh sdk-test.sh sdk-qa.sh set-target-build-env.sh

_sdk-targets() {

    _platforms () {
        local _targets_file

        # New-style
        _targets_file=tools/builder/target.sh
        if [ -e $_targets_file ]
        then
            source $_targets_file
            echo ${=AVAILABLE_TARGETS}
        fi

        # Old-style
        _targets_file=tools/sdk-targets.txt
        if [ -f $_targets_file ]
        then
            awk '/^  [-_a-zA-Z0-9]+$/ { print $1 }' $_targets_file
            return
        fi
    }

    _current_target () {
        local _targets_file=tools/builder/target.sh
        [ ! -z "$TARGET" ] || return

        echo $TARGET":Standard SDK"

        if [ -e $_targets_file ]
        then
            source $_targets_file
            for i in ${=AVAILABLE_FLAVOUR}
                echo ${TARGET}-$i:$i
            for i in ${=AVAILABLE_OPTIONS}
                echo ${TARGET}-$i:$i
        fi
    }

    _other_targets () {
        for target in $( _platforms ) ;
        do
            [ "$target" = "$TARGET" ] && continue;
            echo $target
        done
    }

    case "$service" in
    sdk-factory.sh)
        _arguments \
            {-a,--enable-all-protocols}'[Enable all protocols]'\
            {-c+,--config=}'[Selects config FILE to use]:file:_files'\
            {-d,--debug-make}'[Add debugging verbosity to make]'\
            {-g,--enable-debug-info}'[Enable debug info in binaries]'\
            {-h,--enable-host}'[Enable host binaries building]'\
            {-i,--disable-security}'[Disable licence checking]'\
            {-n,--nomake}'[No make done]'\
            {-s,--enable-specific-protocols}'[Enable specific protocols]'\
            {-v,--verbose}'[Enable verbose compilation]'\
            ':current target:(( $(_current_target) ))' \
        - framework \
            {-f,--framework-only}'[Generates only the framework libraries]'\
        - protobundle \
            {-p,--protocols-only}'[Generates only the protocols bundle libraries]'
        _alternative ':other targets:(( $( _other_targets ) ))'
        ;;
    set-target-build-env.sh)
        _arguments ':platforms:(( $(_platforms) ))'
        ;;
    sdk-*)
        _arguments ':current target:(( $( _current_target) ))'
        _alternative ':other targets:(( $( _other_targets ) ))'
        ;;
    esac

}