| Index: tools/android/envsetup.sh
|
| diff --git a/tools/android/envsetup.sh b/tools/android/envsetup.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..431c3feddbbec8f1d6ce4325bf465c7e0c649d64
|
| --- /dev/null
|
| +++ b/tools/android/envsetup.sh
|
| @@ -0,0 +1,168 @@
|
| +
|
| + #!/bin/bash
|
| +
|
| +# Copyright (c) 2012 The Dart Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# Sets up environment for building Dart on Android. Only Android NDK,
|
| +# Revision 8b on Linux or Mac is offically supported.
|
| +#
|
| +# To run this script, the system environment ANDROID_NDK_ROOT must be set
|
| +# to Android NDK's root path.
|
| +#
|
| +# If current path isn't Dart's root directory, DART_ROOT must be set
|
| +# to Dart's root directory.
|
| +
|
| +if [ ! -d "${ANDROID_NDK_ROOT}" ]; then
|
| + echo "ANDROID_NDK_ROOT must be set to the path of Android NDK, Revision 6b." \
|
| + >& 2
|
| + echo "which could be installed by" >& 2
|
| + echo "<chromium_tree>/src/build/install-build-deps-android-sdk.sh" >& 2
|
| + return 1
|
| +fi
|
| +
|
| +if [ ! -d "${ANDROID_SDK_ROOT}" ]; then
|
| + echo "ANDROID_SDK_ROOT must be set to the path of Android SDK, Android 3.2." \
|
| + >& 2
|
| + echo "which could be installed by" >& 2
|
| + echo "<chromium_tree>/src/build/install-build-deps-android-sdk.sh" >& 2
|
| + return 1
|
| +fi
|
| +
|
| +host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')
|
| +
|
| +case "${host_os}" in
|
| + "linux")
|
| + toolchain_dir="linux-x86"
|
| + ;;
|
| + "mac")
|
| + toolchain_dir="darwin-x86"
|
| + ;;
|
| + *)
|
| + echo "Host platform ${host_os} is not supported" >& 2
|
| + return 1
|
| +esac
|
| +
|
| +TARGET_PRODUCT="x86"
|
| +
|
| +# The following defines will affect ARM code generation of both C/C++ compiler
|
| +# and V8 mksnapshot.
|
| +case "${TARGET_PRODUCT-full}" in
|
| + "full")
|
| + DEFINES=" target_arch=arm"
|
| + DEFINES+=" arm_neon=0 armv7=1 arm_thumb=1 arm_fpu=vfpv3-d16"
|
| + toolchain_arch="arm-linux-androideabi-4.4.3"
|
| + ;;
|
| + *x86*)
|
| + DEFINES=" target_arch=ia32 use_libffmpeg=0"
|
| + toolchain_arch="x86-4.4.3"
|
| + ;;
|
| + *)
|
| + echo "TARGET_PRODUCT: ${TARGET_PRODUCT} is not supported." >& 2
|
| + return 1
|
| +esac
|
| +
|
| +# If we are building NDK/SDK, and in the upstream (open source) tree,
|
| +# define a special variable for bringup purposes.
|
| +case "${ANDROID_BUILD_TOP-undefined}" in
|
| + "undefined")
|
| + DEFINES+=" android_upstream_bringup=1"
|
| + ;;
|
| +esac
|
| +
|
| +toolchain_path="${ANDROID_NDK_ROOT}/toolchains/${toolchain_arch}/prebuilt/"
|
| +export ANDROID_TOOLCHAIN="${toolchain_path}/${toolchain_dir}/bin/"
|
| +
|
| +if [ ! -d "${ANDROID_TOOLCHAIN}" ]; then
|
| + echo "Can not find Android toolchain in ${ANDROID_TOOLCHAIN}." >& 2
|
| + echo "The NDK version might be wrong." >& 2
|
| + return 1
|
| +fi
|
| +
|
| +export ANDROID_SDK_VERSION="9"
|
| +
|
| +# Needed by android antfiles when creating apks.
|
| +export ANDROID_SDK_HOME=${ANDROID_SDK_ROOT}
|
| +
|
| +# Add Android SDK/NDK tools to system path.
|
| +export PATH=$PATH:${ANDROID_NDK_ROOT}
|
| +export PATH=$PATH:${ANDROID_SDK_ROOT}/tools
|
| +export PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools
|
| +# Must have tools like arm-linux-androideabi-gcc on the path for ninja
|
| +export PATH=$PATH:${ANDROID_TOOLCHAIN}
|
| +
|
| +CURRENT_DIR="$(readlink -f ${PWD})"
|
| +if [ -z "${DART_ROOT}" ]; then
|
| + # If $DART_ROOT was not set, assume current directory is DART_ROOT.
|
| + export DART_ROOT="${CURRENT_DIR}"
|
| +fi
|
| +
|
| +if [ "${CURRENT_DIR/"${DART_ROOT}"/}" == "${CURRENT_DIR}" ]; then
|
| + # If current directory is not in $DART_ROOT, it might be set for other
|
| + # source tree. If $DART_ROOT was set correctly and we are in the correct
|
| + # directory, "${CURRENT_DIR/"${DART_ROOT}"/}" will be "".
|
| + # Otherwise, it will equal to "${CURRENT_DIR}"
|
| + echo "Warning: Current directory is out of DART_ROOT, it may not be \
|
| +the one you want."
|
| + echo "${DART_ROOT}"
|
| +fi
|
| +
|
| +if [ ! -d "${DART_ROOT}" ]; then
|
| + echo "DART_ROOT must be set to the path of Chrome source code." >& 2
|
| + return 1
|
| +fi
|
| +
|
| +# Add Dart Android development scripts to system path.
|
| +# Must be after DART_ROOT is set.
|
| +export PATH=$PATH:${DART_ROOT}/tools/android
|
| +
|
| +ANDROID_GOMA_WRAPPER=""
|
| +if [[ -d $GOMA_DIR ]]; then
|
| + ANDROID_GOMA_WRAPPER="$GOMA_DIR/gomacc"
|
| +fi
|
| +export ANDROID_GOMA_WRAPPER
|
| +
|
| +export CC_target=$(basename ${ANDROID_TOOLCHAIN}/*-gcc)
|
| +export CXX_target=$(basename ${ANDROID_TOOLCHAIN}/*-g++)
|
| +export LINK_target=$(basename ${ANDROID_TOOLCHAIN}/*-gcc)
|
| +export AR_target=$(basename ${ANDROID_TOOLCHAIN}/*-ar)
|
| +
|
| +# Performs a gyp_chromium run to convert gyp->Makefile for android code.
|
| +# android_gyp() {
|
| +# echo "GYP_GENERATORS set to '$GYP_GENERATORS'"
|
| +# "${DART_ROOT}/tools/generate_projects.py" "$@"
|
| +# }
|
| +
|
| +export OBJCOPY=$(echo ${ANDROID_TOOLCHAIN}/*-objcopy)
|
| +export STRIP=$(echo ${ANDROID_TOOLCHAIN}/*-strip)
|
| +
|
| +# The set of GYP_DEFINES to pass to gyp. Use 'readlink -e' on directories
|
| +# to canonicalize them (remove double '/', remove trailing '/', etc).
|
| +DEFINES+=" OS=android"
|
| +DEFINES+=" android_build_type=0"
|
| +DEFINES+=" host_os=${host_os}"
|
| +DEFINES+=" linux_fpic=1"
|
| +DEFINES+=" release_optimize=s"
|
| +DEFINES+=" linux_use_tcmalloc=0"
|
| +DEFINES+=" disable_nacl=1"
|
| +DEFINES+=" remoting=0"
|
| +DEFINES+=" p2p_apis=0"
|
| +DEFINES+=" enable_touch_events=1"
|
| +DEFINES+=" build_ffmpegsumo=0"
|
| +DEFINES+=" gtest_target_type=shared_library"
|
| +DEFINES+=" branding=Chromium"
|
| +DEFINES+=\
|
| +" android_sdk=${ANDROID_SDK_ROOT}/platforms/android-${ANDROID_SDK_VERSION}"
|
| +DEFINES+=" android_sdk_tools=${ANDROID_SDK_ROOT}/platform-tools"
|
| +
|
| +export GYP_DEFINES="${DEFINES}"
|
| +
|
| +# Use the "android" flavor of the Makefile generator for both Linux and OS X.
|
| +export GYP_GENERATORS="make-android"
|
| +
|
| +# Use our All target as the default
|
| +export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} default_target=All"
|
| +
|
| +# We want to use our version of "all" targets.
|
| +# export CHROMIUM_GYP_FILE="${DART_ROOT}/build/all_android.gyp"
|
|
|