From 0575131e579641e76798e58a8bb6786f9eebd5f2 Mon Sep 17 00:00:00 2001 From: halcanary Date: Tue, 3 Nov 2015 10:30:05 -0800 Subject: bin/deps-and-gyp: gclient-free solution Review URL: https://codereview.chromium.org/1426103004 --- bin/deps-and-gyp | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 bin/deps-and-gyp (limited to 'bin') diff --git a/bin/deps-and-gyp b/bin/deps-and-gyp new file mode 100644 index 0000000000..f39fc69135 --- /dev/null +++ b/bin/deps-and-gyp @@ -0,0 +1,61 @@ +#!/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. + +# Depends on: Posix-compliant shell, Python, and Git. +# +# Example usage: +# +# git clone https://skia.googlesource.com/skia +# cd skia +# bin/deps-and-gyp +# ninja -C out/Debug && out/Debug/dm +# +# Once changes are made to DEPS or gyp/ or the source, call: +# +# bin/deps-and-gyp + +if [ "$SKIA_OUT" ]; then + mkdir -p "$SKIA_OUT" || exit + # get non-relative path of $SKIA_OUT before changing directory. + SKIA_OUT="$(cd "$SKIA_OUT"; pwd)" +fi + +cd "$(dirname "$0")/.." + +if ! [ -f DEPS ]; then + echo DEPS file missing >&2 + exit 1 +fi + +if [ "$(git hash-object DEPS)" != "$(git config sync-deps.last)" ] ; then + GIT_SYNC_DEPS_QUIET=1 python tools/git-sync-deps || 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 -- cgit v1.2.3