| Index: bin/sync-and-gyp
|
| diff --git a/bin/sync-and-gyp b/bin/sync-and-gyp
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..a2ba34358c86025349d15f1eb66f6f5c2e28757a
|
| --- /dev/null
|
| +++ b/bin/sync-and-gyp
|
| @@ -0,0 +1,56 @@
|
| +#!/bin/sh
|
| +
|
| +# Copyright 2015 Google Inc.
|
| +#
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# This script will update Skia's dependenciess as necessary and run
|
| +# gyp if needed.
|
| +
|
| +# Example usage (assumes Posix-standard shell, git installed):
|
| +#
|
| +# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
| +# export PATH="${PWD}/depot_tools:${PATH}"
|
| +# git clone https://skia.googlesource.com/skia
|
| +# cd skia
|
| +# bin/sync-and-gyp && ninja -C out/Debug
|
| +# out/Debug/dm
|
| +#
|
| +# Once changes are made to DEPS or gyp/ or the source, recompile Skia with:
|
| +#
|
| +# ${skiadir}/bin/sync-and-gyp && ninja -C ${skiadir}/out/Debug
|
| +
|
| +cd "$(dirname "$0")/.."
|
| +
|
| +if ! [ -f .gclient ] ; then
|
| + gclient config --name . --unmanaged 'https://skia.googlesource.com/skia'
|
| +fi
|
| +
|
| +if ! [ -f DEPS ]; then
|
| + echo DEPS file missing >&2
|
| + exit 1
|
| +fi
|
| +
|
| +if [ "$(git hash-object DEPS)" != "$(git config sync-deps.last)" ] ; then
|
| + gclient sync || exit
|
| + git config sync-deps.last "$(git hash-object DEPS)"
|
| +fi
|
| +
|
| +function catifexists() { if [ -f "$1" ]; then cat "$1"; fi; }
|
| +
|
| +function gyp_hasher() {
|
| + {
|
| + echo "$GYP_GENERATORS"
|
| + echo "$GYP_DEFINES"
|
| + find gyp -type f -print -exec git hash-object {} \;
|
| + } | git hash-object --stdin
|
| +}
|
| +
|
| +: ${SKIA_OUT:=out}
|
| +GYP_HASH=$(gyp_hasher)
|
| +HASH_PATH="${SKIA_OUT}/gyp_hash"
|
| +if [ "$GYP_HASH" != "$(catifexists "$HASH_PATH")" ]; then
|
| + ./gyp_skia || exit
|
| + echo "$GYP_HASH" > "$HASH_PATH"
|
| +fi
|
|
|