| Index: chromecast/build/chromecast_build_env.sh
|
| diff --git a/chromecast/build/chromecast_build_env.sh b/chromecast/build/chromecast_build_env.sh
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..47618e543e5c900f4b41d7045ee5200684d912d5
|
| --- /dev/null
|
| +++ b/chromecast/build/chromecast_build_env.sh
|
| @@ -0,0 +1,179 @@
|
| +# Copyright (c) 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +function update_gyp() {
|
| + download_from_google_storage --no_resume --platform=linux* --no_auth \
|
| + --bucket chromium-gn -s ${CHROME_SRCROOT}/tools/gn/bin/linux/gn.sha1
|
| + ${CHROME_SRCROOT}/build/gyp_chromium $@
|
| +}
|
| +
|
| +# This function adds a path (first argument) to the PATH if it is not already
|
| +# in the PATH.
|
| +function add_to_path_if_necessary() {
|
| + # Note that this variable is declared on a different line than its assignment
|
| + # so that $? from realpath is not clobbered.
|
| + local path_to_add=$1
|
| + local desired_path
|
| + desired_path=$(realpath "${path_to_add}")
|
| + local success=$?
|
| + if [ $success != 0 ]; then
|
| + return;
|
| + fi
|
| +
|
| + for i in $(echo ${PATH} | tr ':' '\n'); do
|
| + if [[ "$i" == "$desired_path" ]] ; then
|
| + return
|
| + fi
|
| + done
|
| + export PATH="${desired_path}:${PATH}"
|
| +}
|
| +
|
| +function setup_goma_or_ccache() {
|
| + local cc="$1"
|
| + local cxx="$2"
|
| +
|
| + if [ -d "${GOMA_DIR}" ]; then
|
| + add_to_path_if_necessary "${GOMA_DIR}"
|
| + else
|
| + # Goma is not compatible with ccache.
|
| + if [[ "${USE_CCACHE}" = "1" ]]; then
|
| + # Only add ccache if it hasn't been added.
|
| + if [[ "${cc}" != ccache* ]]; then
|
| + export CC="ccache ${cc}"
|
| + fi
|
| + if [[ "${cxx}" != ccache* ]]; then
|
| + export CXX="ccache ${cxx}"
|
| + fi
|
| + export CC_host="gcc"
|
| + export CXX_host="g++"
|
| + fi
|
| + fi
|
| +}
|
| +
|
| +function setup_build_toolchain() {
|
| + local base=""
|
| + if [ $# -eq 1 ]; then
|
| + base="${1%-}-"
|
| + elif [ $# -ne 0 ]; then
|
| + echo "setup_build_toolchain [build_base] "
|
| + echo "where build_base is the prefix of toolchain or could be empty"
|
| + echo "If build_base is empty, default toolchain(gcc and g++) will be used."
|
| + return
|
| + fi
|
| +
|
| + export AR_target="${base}ar"
|
| + export CC_target="${base}gcc"
|
| + export CXX_target="${base}g++"
|
| + export LD_target="${base}g++"
|
| + export OBJCOPY_target="${base}objcopy"
|
| + export STRIP_target="${base}strip"
|
| +
|
| + if [ ! -n "$CC" ]; then
|
| + export CC=gcc
|
| + fi
|
| + if [ ! -n "$CXX" ]; then
|
| + export CXX=g++
|
| + fi
|
| + export CC_host="gcc"
|
| + export CXX_host="g++"
|
| +
|
| + setup_goma_or_ccache "${CC}" "${CXX}" "${CC_target}" "${CXX_target}"
|
| +}
|
| +
|
| +function setup_chromium_env_common() {
|
| + if [ $# -lt 3 ]; then
|
| + echo "setup_env.sh out srcroot build_type "
|
| + echo "where out is the out directory to place the output of the build"
|
| + echo "where build_type can be Debug or Release"
|
| + echo "srcroot is the path of your source root"
|
| + return
|
| + fi
|
| +
|
| + export CHROME_SRCROOT="$2"
|
| + local out="$1"
|
| + local type="$3"
|
| + if [[ "$3" == "Eng" ]]; then
|
| + export GYP_DEFINES="${GYP_DEFINES} dcheck_always_on=1"
|
| + local type="Release"
|
| + fi
|
| +
|
| + if [ ! -d "${CHROME_SRCROOT}" ]; then
|
| + echo "CHROME_SRCROOT is not defined or not pointing to a directory : ${CHROME_SRCROOT}"
|
| + return
|
| + fi
|
| +
|
| + if [[ "${type}" != "Release" &&
|
| + "${type}" != "Debug" ]]; then
|
| + echo "Incorrect BUILDTYPE ${type}"
|
| + return
|
| + fi
|
| +
|
| + # force the use of ninja.
|
| + export GYP_GENERATORS="ninja"
|
| + export UPDATE_GYP=update_gyp
|
| + export BUILD_OUT="out_${out}"
|
| + export GYP_GENERATOR_FLAGS="output_dir=${BUILD_OUT}"
|
| +
|
| + export BUILDTYPE="${type}"
|
| +
|
| + # This is normally run by gclient. It will end up running:
|
| + # "git log -1 --grep=git-svn-id --format=%b"
|
| + # to extract the svn change id in order to create the LASTCHANGE file.
|
| + python ${CHROME_SRCROOT}/build/util/lastchange.py -o \
|
| + ${CHROME_SRCROOT}/build/util/LASTCHANGE
|
| + python ${CHROME_SRCROOT}/build/util/lastchange.py \
|
| + -s ${CHROME_SRCROOT}/third_party/WebKit \
|
| + -o ${CHROME_SRCROOT}/build/util/LASTCHANGE.blink
|
| +}
|
| +
|
| +function mymake() {
|
| + local type=${BUILDTYPE:-Debug}
|
| + ninja -C "${BUILD_OUT}/${type}" $@
|
| +}
|
| +
|
| +function maketests() {
|
| + mymake base_unittests cacheinvalidation_unittests cast_receiver_unittests \
|
| + content_unittests crypto_unittests cast_service_unittests \
|
| + gpu_unittests ipc_tests jingle_unittests media_unittests net_unittests \
|
| + sandbox_linux_unittests sql_unittests sync_unit_tests ui_unittests \
|
| + url_unittests $@
|
| +}
|
| +
|
| +# This function must be called last. It modifies GYP_DEFINES and CHROMIUM_BUILD
|
| +# so that the target is branded as an official Chrome build.
|
| +function brand_as_chrome() {
|
| + # - branding=Chrome : forces to use the Chrome assets instead of the Chromium
|
| + # assets. Important for strings that say 'Google Chrome is frozen' or the like
|
| + # - linux_dump_symbols=1 : forces the use of the dump symbol functionality,
|
| + # used for crash dumps.
|
| + local defines="\
|
| +branding=Chrome \
|
| +linux_dump_symbols=1 \
|
| +"
|
| + export GYP_DEFINES="${GYP_DEFINES} ${defines}"
|
| +
|
| + # Force the build to be google-chrome. This actually only controls one thing
|
| + # as far as I can tell, when packaging the tar ball of the resulting build.
|
| + # All other parts to decide Chromium/Chrome come from the GYP defines. I
|
| + # did not find out why there are two variables that control the same thing.
|
| + export CHROMIUM_BUILD=_google_chrome
|
| +}
|
| +
|
| +# Guard against someone running this script directly.
|
| +# It must be sourced (. gtv_tools/chrome_build_env.sh)
|
| +# instead, as it needs to set environment variables.
|
| +if [[ $(basename -- "$0") = chrome_build_env.sh ]]; then
|
| + echo ERROR: Must source this file, not execute it.
|
| + exit 1
|
| +fi
|
| +
|
| +# Load all the target-specific build environments.
|
| +# We use ${BASH_SOURCE[0]} instead of $0, here, because
|
| +# this file is sourced instead of executed.
|
| +# Make sure to only source files with .sh extension, otherwise we end sourcing
|
| +# backing files, or other undesirable files.
|
| +SCRIPT_DIR=$(dirname -- "${BASH_SOURCE[0]}")
|
| +for source_file in "${SCRIPT_DIR}"/build_env_*.sh; do
|
| + source "$source_file"
|
| +done
|
|
|