#!/bin/sh
#
# Copyright (C) 2012 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This shell script is used to copy clang tool "scan-build" and "scan-view"
# for the Android NDK.
#
# include common function and variable definitions
. `dirname $0`/prebuilt-common.sh
PROGRAM_PARAMETERS="<src-dir> <ndk-dir> <toolchain>"
PROGRAM_DESCRIPTION=\
"Copy clang static code analyzer for the Android NDK.
Where <src-dir> is the location of toolchain sources, <ndk-dir> is
the top-level NDK installation path and <toolchain> is the name of
the toolchain to use (e.g. llvm-3.1)."
RELEASE=`date +%Y%m%d`
PACKAGE_DIR=
register_var_option "--package-dir=<path>" PACKAGE_DIR "Create archive tarball in specific directory"
extract_parameters "$@"
set_parameters ()
{
SRC_DIR="$1"
NDK_DIR="$2"
TOOLCHAIN="$3"
# Check source directory
#
if [ -z "$SRC_DIR" ] ; then
echo "ERROR: Missing source directory parameter. See --help for details."
exit 1
fi
SCAN_BUILD_SRC_DIR=$SRC_DIR/$TOOLCHAIN/clang/tools/scan-build
if [ ! -d "$SCAN_BUILD_SRC_DIR" ] ; then
echo "ERROR: Source directory does not contain scan-build: $SCAN_BUILD_SRC_DIR"
exit 1
fi
SCAN_VIEW_SRC_DIR=$SRC_DIR/$TOOLCHAIN/clang/tools/scan-view
if [ ! -d "$SCAN_VIEW_SRC_DIR" ] ; then
echo "ERROR: Source directory does not contain scan-view: $SCAN_VIEW_SRC_DIR"
exit 1
fi
LICENSE_FILE=$SRC_DIR/$TOOLCHAIN/clang/LICENSE.TXT
if [ ! -f "$LICENSE_FILE" ] ; then
echo "ERROR: Source directory does not contain clang license file: $LICENSE_FILE"
exit 1
fi
log "Using source directory: $SRC_DIR"
# Check NDK installation directory
#
if [ -z "$NDK_DIR" ] ; then
echo "ERROR: Missing NDK directory parameter. See --help for details."
exit 1
fi
if [ ! -d "$NDK_DIR" ] ; then
mkdir -p $NDK_DIR
fail_panic "Could not create target NDK installation path: $NDK_DIR"
fi
log "Using NDK directory: $NDK_DIR"
# Check toolchain name
#
if [ -z "$TOOLCHAIN" ] ; then
echo "ERROR: Missing toolchain name parameter. See --help for details."
exit 1
fi
}
set_parameters $PARAMETERS
if [ "$PACKAGE_DIR" ]; then
mkdir -p "$PACKAGE_DIR"
fail_panic "Could not create package directory: $PACKAGE_DIR"
fi
# copy scan_build and scan_view
SCAN_BUILD_SUBDIR="prebuilt/common/scan-build"
run copy_directory "$SCAN_BUILD_SRC_DIR" "$NDK_DIR/$SCAN_BUILD_SUBDIR"
cp -p "$LICENSE_FILE" "$NDK_DIR/$SCAN_BUILD_SUBDIR"
rm -f $NDK_DIR/$SCAN_BUILD_SUBDIR/scan-build.1
SCAN_VIEW_SUBDIR="prebuilt/common/scan-view"
run copy_directory "$SCAN_VIEW_SRC_DIR" "$NDK_DIR/$SCAN_VIEW_SUBDIR"
cp -p "$LICENSE_FILE" "$NDK_DIR/$SCAN_VIEW_SUBDIR"
if [ "$PACKAGE_DIR" ]; then
ARCHIVE="scan-build-view.tar.bz2"
dump "Packaging $ARCHIVE"
pack_archive "$PACKAGE_DIR/$ARCHIVE" "$NDK_DIR" "$SCAN_BUILD_SUBDIR" "$SCAN_VIEW_SUBDIR"
fi
dump "Done."