build-scripts/checker-buildbot.sh
author Sam Lantinga
Thu, 01 Sep 2016 01:26:56 -0700
changeset 10304 ee83e0b4a36f
parent 10046 4b62fb588d22
child 10649 ddd8049e9d39
permissions -rwxr-xr-x
wayland: Add support for relative mouse mode, by Jonas Ã…dahl <jadahl@gmail.com>

Generate the C protocol files from the protocol XML files installed by
wayland-protocols, and use them to implement support for relative pointer
motions and pointer locking.

Note that at the time, the protocol is unstable and may change in the future.
Any future breaking changes will, however, fail gracefully and result in no
regressions compared to before this patch.
     1 #!/bin/bash
     2 
     3 # This is a script used by some Buildbot buildslaves to push the project
     4 #  through Clang's static analyzer and prepare the output to be uploaded
     5 #  back to the buildmaster. You might find it useful too.
     6 
     7 # Install Clang (you already have it on Mac OS X, apt-get install clang
     8 #  on Ubuntu, etc),
     9 # or download checker at http://clang-analyzer.llvm.org/ and unpack it in
    10 #  /usr/local ... update CHECKERDIR as appropriate.
    11 
    12 FINALDIR="$1"
    13 
    14 CHECKERDIR="/usr/local/checker-276"
    15 if [ ! -d "$CHECKERDIR" ]; then
    16     echo "$CHECKERDIR not found. Trying /usr/share/clang ..." 1>&2
    17     CHECKERDIR="/usr/share/clang/scan-build"
    18 fi
    19 
    20 if [ ! -d "$CHECKERDIR" ]; then
    21     echo "$CHECKERDIR not found. Giving up." 1>&2
    22     exit 1
    23 fi
    24 
    25 if [ -z "$MAKE" ]; then
    26     OSTYPE=`uname -s`
    27     if [ "$OSTYPE" == "Linux" ]; then
    28         NCPU=`cat /proc/cpuinfo |grep vendor_id |wc -l`
    29         let NCPU=$NCPU+1
    30     elif [ "$OSTYPE" = "Darwin" ]; then
    31         NCPU=`sysctl -n hw.ncpu`
    32     elif [ "$OSTYPE" = "SunOS" ]; then
    33         NCPU=`/usr/sbin/psrinfo |wc -l |sed -e 's/^ *//g;s/ *$//g'`
    34     else
    35         NCPU=1
    36     fi
    37 
    38     if [ -z "$NCPU" ]; then
    39         NCPU=1
    40     elif [ "$NCPU" = "0" ]; then
    41         NCPU=1
    42     fi
    43 
    44     MAKE="make -j$NCPU"
    45 fi
    46 
    47 echo "\$MAKE is '$MAKE'"
    48 
    49 set -x
    50 set -e
    51 
    52 cd `dirname "$0"`
    53 cd ..
    54 
    55 rm -rf checker-buildbot analysis
    56 if [ ! -z "$FINALDIR" ]; then
    57     rm -rf "$FINALDIR"
    58 fi
    59 
    60 mkdir checker-buildbot
    61 cd checker-buildbot
    62 
    63 # You might want to do this for CMake-backed builds instead...
    64 PATH="$CHECKERDIR:$PATH" scan-build -o analysis cmake -DCMAKE_BUILD_TYPE=Debug -DASSERTIONS=enabled ..
    65 
    66 # ...or run configure without the scan-build wrapper...
    67 #CC="$CHECKERDIR/libexec/ccc-analyzer" CFLAGS="-O0" ../configure --enable-assertions=enabled
    68 
    69 # ...but this works for our buildbots just fine (EXCEPT ON LATEST MAC OS X).
    70 #CFLAGS="-O0" PATH="$CHECKERDIR:$PATH" scan-build -o analysis ../configure --enable-assertions=enabled
    71 
    72 rm -rf analysis
    73 PATH="$CHECKERDIR:$PATH" scan-build -o analysis $MAKE
    74 mv analysis/* ../analysis
    75 rmdir analysis   # Make sure this is empty.
    76 cd ..
    77 chmod -R a+r analysis
    78 chmod -R go-w analysis
    79 find analysis -type d -exec chmod a+x {} \;
    80 if [ -x /usr/bin/xattr ]; then find analysis -exec /usr/bin/xattr -d com.apple.quarantine {} \; 2>/dev/null ; fi
    81 
    82 if [ ! -z "$FINALDIR" ]; then
    83     mv analysis "$FINALDIR"
    84 else
    85     FINALDIR=analysis
    86 fi
    87 
    88 rm -rf checker-buildbot
    89 
    90 echo "Done. Final output is in '$FINALDIR' ..."
    91 
    92 # end of checker-buildbot.sh ...
    93