Index: hammer |
=================================================================== |
--- hammer (revision 22665) |
+++ hammer (working copy) |
@@ -1,8 +1,27 @@ |
#!/bin/sh |
+# |
+# Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
-# The first expression catches when we're actually in the /src directory. |
-# The second expressions strips everything after the last /src occurrence. |
-SRC_DIR=`pwd | sed -e '\;/src$;q' -e 's;\(.*/src\)/.*;\1;'` |
+# A script to invoke scons in gyp generated projects. |
+ |
+# Find the 'src' directory by looking for the site_scons directory. |
+# This method allows trees that don't use the name src to use this script. |
+# Explicitly skip site_scons directories that are from the 'software |
+# construction toolkit', since these are not gyp compatible. |
+SRC_DIR=`pwd` |
+while `test ! -d "${SRC_DIR}/site_scons" -o \ |
+ -e "${SRC_DIR}/site_scons/site_tools/component_setup.py"`; do |
+ PARENT_DIR="$(dirname ${SRC_DIR})" |
+ if `test "${SRC_DIR}" == "${PARENT_DIR}"`; then |
+ echo "ERROR: hammer must be run in a directory with site_scons under" >&2 |
+ echo " the root of the project tree." >&2 |
+ exit 1 |
+ fi |
+ SRC_DIR="${PARENT_DIR}" |
+done |
+ |
SCONS="${SRC_DIR}/third_party/scons/scons.py" |
SITE_SCONS="${SRC_DIR}/site_scons" |