1#!/bin/sh 2 3# Copyright 2015 Google Inc. 4# 5# Use of this source code is governed by a BSD-style license that can be 6# found in the LICENSE file. 7 8# This script will update Skia's dependenciess as necessary and run 9# gyp if needed. 10 11# Example usage (assumes Posix-standard shell, git installed): 12# 13# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git 14# export PATH="${PWD}/depot_tools:${PATH}" 15# git clone https://skia.googlesource.com/skia 16# cd skia 17# bin/sync-and-gyp && ninja -C out/Debug 18# out/Debug/dm 19# 20# Once changes are made to DEPS or gyp/ or the source, recompile Skia with: 21# 22# ${skiadir}/bin/sync-and-gyp && ninja -C ${skiadir}/out/Debug 23 24cd "$(dirname "$0")/.." 25 26if ! [ -f .gclient ] ; then 27 gclient config --name . --unmanaged 'https://skia.googlesource.com/skia' 28fi 29 30if ! [ -f DEPS ]; then 31 echo DEPS file missing >&2 32 exit 1 33fi 34 35if [ "$(git hash-object DEPS)" != "$(git config sync-deps.last)" ] ; then 36 gclient sync || exit 37 git config sync-deps.last "$(git hash-object DEPS)" 38fi 39 40function catifexists() { if [ -f "$1" ]; then cat "$1"; fi; } 41 42function gyp_hasher() { 43 { 44 echo "$GYP_GENERATORS" 45 echo "$GYP_DEFINES" 46 find gyp -type f -print -exec git hash-object {} \; 47 } | git hash-object --stdin 48} 49 50: ${SKIA_OUT:=out} 51GYP_HASH=$(gyp_hasher) 52HASH_PATH="${SKIA_OUT}/gyp_hash" 53if [ "$GYP_HASH" != "$(catifexists "$HASH_PATH")" ]; then 54 python ./gyp_skia || exit 55 echo "$GYP_HASH" > "$HASH_PATH" 56fi 57