diff --git a/hammer b/hammer index a95774dd39..129c68d57e 100755 --- a/hammer +++ b/hammer @@ -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. + +# 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 -# 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;'` SCONS="${SRC_DIR}/third_party/scons/scons.py" SITE_SCONS="${SRC_DIR}/site_scons"