blob: 42710a863beae919c243872b2843787f27e2e17c [file] [log] [blame]
#!/bin/bash
function usage {
echo "usage: $0 [ --help ] [ --android ] [ --arm | --x86] [ --debug ] [--clean] [<Dart directory>]"
echo
echo "Sync up Skia and build"
echo
echo " --android: Build for Android"
echo " --x86 : Build for Intel"
echo " --arm : Cross-compile for ARM (implies --android)"
echo " --debug : Build a debug version"
echo
}
DO_ANDROID=0
TARGET_ARCH=x86
CLEAN=0
BUILD=Release
DART_DIR=../../..
while [ ! -z "$1" ] ; do
case $1 in
"-h"|"-?"|"-help"|"--help")
usage
exit 1
;;
"--android")
DO_ANDROID=1
;;
"--arm")
TARGET_ARCH=arm
DO_ANDROID=1
;;
"--x86")
TARGET_ARCH=x86
;;
"--clean")
CLEAN=1
;;
"--debug")
BUILD=Debug
;;
"--release")
BUILD=Release
;;
*)
if [ ! -d "$1" ]
then
echo "Unrecognized argument: $1"
usage
exit 1
fi
DART_DIR="$1"
;;
esac
shift
done
mkdir -p "${DART_DIR}/third_party/skia"
pushd "${DART_DIR}/third_party/skia"
if [ ${DO_ANDROID} != 0 ] ; then
echo "Building for Android ${TARGET_ARCH}"
curl http://skia.googlecode.com/svn/trunk/platform_tools/android/gclient.config -o .gclient
gclient sync
export ANDROID_SDK_ROOT=`readlink -f ../android_tools/sdk`
export GSUTIL_LOCATION=`readlink -f ../gsutil`
cd trunk
echo "Using SDK ${ANDROID_SDK_ROOT}"
if [ ${CLEAN} != 0 ] ; then
./platform_tools/android/bin/android_make -d $TARGET_ARCH -j clean
else
echo env -i BUILDTYPE=$BUILD ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT}" PATH="${PATH}:${GSUTIL_LOCATION}" ../android/bin/android_make BUILDTYPE=$BUILD -d $TARGET_ARCH -j --debug=j
env -i BUILDTYPE=$BUILD ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT}" PATH="${PATH}:${GSUTIL_LOCATION}" ./platform_tools/android/bin/android_make BUILDTYPE=$BUILD -d $TARGET_ARCH -j --debug=j
fi
else
echo "Building for desktop in `pwd`"
# Desktop build. Requires svn client and Python.
# Note that on Linux these packages should be installed first:
#
# libfreetype6
# libfreetype6-dev
# libpng12-0, libpng12-dev
# libglu1-mesa-dev
# mesa-common-dev
# freeglut3-dev
SKIA_INSTALLDIR=`pwd`
svn checkout http://skia.googlecode.com/svn/trunk
cd trunk
if [ ${CLEAN} != 0 ] ; then
echo 'Cleaning'
make clean
else
# Dart sets BUILDTYPE to DebugX64 which breaks Skia build.
make BUILDTYPE=$BUILD
fi
cd ..
fi
popd
# TODO(gram) We should really propogate the make exit code here.
exit 0