diff options
author | halcanary <halcanary@google.com> | 2015-03-27 12:11:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-27 12:11:49 -0700 |
commit | 135b7ecaa81018aa497da6ef8a8493263df456ef (patch) | |
tree | 55f25f9751ec71d5d675017f58ee53366a1bf19e | |
parent | 75a0ebb0d0bd852e3b068bf14370c6689242a89c (diff) |
tools: add sync-and-gyp script
NOTRY=true
Review URL: https://codereview.chromium.org/1035003004
-rwxr-xr-x | bin/sync-and-gyp | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/bin/sync-and-gyp b/bin/sync-and-gyp new file mode 100755 index 0000000000..a2ba34358c --- /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 |