#!/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 --unmanaged 'https://skia.googlesource.com/skia' printf ',s/"skia"/"."/\nwq\n' | ed .gclient 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 catifexists() { if [ -f "$1" ]; then cat "$1"; fi; } gyp_hasher() { { echo "$CC" echo "$CXX" echo "$GYP_GENERATORS" echo "$GYP_DEFINES" find gyp -type f -print -exec git hash-object {} \; find bench gm tests -name '*.c*' | LANG= sort } | git hash-object --stdin } : ${SKIA_OUT:=out} GYP_HASH=$(gyp_hasher) HASH_PATH="${SKIA_OUT}/gyp_hash" if [ "$GYP_HASH" != "$(catifexists "$HASH_PATH")" ]; then python ./gyp_skia || exit echo "$GYP_HASH" > "$HASH_PATH" fi