Use SRCDIR as a working directory
The existing behavior of using the build directory as the working directory is useful if you want to move/copy the output directory around and SRCDIR still refers the the source. But, it's more useful to have the source directory be the working directory. Tools like cpp(__FILE__) and other debug prints embed relative paths from the working directory. We also have tools that expect the working directory to be $TOP. Change-Id: Ia0f1d3c6b7df72d61cf5628efa2baa98bd19775b
This commit is contained in:
21
soong.bash
21
soong.bash
@@ -1,13 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Determine the build directory location based on the location of this script.
|
||||
BPBUILD="${BASH_SOURCE[0]}"
|
||||
BUILDDIR=`dirname "${BASH_SOURCE[0]}"`
|
||||
BOOTSTRAP="${BUILDDIR}/.soong.bootstrap"
|
||||
set -e
|
||||
|
||||
# Switch to the build directory
|
||||
cd $(dirname "${BASH_SOURCE[0]}")
|
||||
|
||||
# The source directory path and operating system will get written to
|
||||
# .soong.bootstrap by the bootstrap script.
|
||||
|
||||
BOOTSTRAP=".soong.bootstrap"
|
||||
if [ ! -f "${BOOTSTRAP}" ]; then
|
||||
echo "Error: soong script must be located in a directory created by bootstrap.bash"
|
||||
exit 1
|
||||
@@ -15,13 +16,9 @@ fi
|
||||
|
||||
source "${BOOTSTRAP}"
|
||||
|
||||
if [[ ${SRCDIR_IN:0:1} == '/' ]]; then
|
||||
# SRCDIR_IN is an absolute path
|
||||
SRCDIR="${SRCDIR_IN}"
|
||||
else
|
||||
# SRCDIR_IN is a relative path
|
||||
SRCDIR="${BUILDDIR}/${SRCDIR_IN}"
|
||||
fi
|
||||
# Now switch to the source directory so that all the relative paths from
|
||||
# $BOOTSTRAP are correct
|
||||
cd ${SRCDIR_FROM_BUILDDIR}
|
||||
|
||||
# Let Blueprint know that the Ninja we're using performs multiple passes that
|
||||
# can regenerate the build manifest.
|
||||
@@ -44,4 +41,4 @@ if [ -f "${ENVFILE}" ]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
"${SRCDIR}/prebuilts/ninja/${PREBUILTOS}/ninja" -C "${BUILDDIR}" "$@"
|
||||
"prebuilts/ninja/${PREBUILTOS}/ninja" -f "${BUILDDIR}/build.ninja" "$@"
|
||||
|
Reference in New Issue
Block a user