Replace soong script with a symlink
bootstrap.bash creates a soong script in the output directory using build/soong/soong.in. This requires a manual rebootstrap any time soong.in changes. Instead, have bootstrap.bash symlink build/soong/soong.bash to soong in the output directory, and create a file called .soong.bootstrap in the output directory that contains the variables that bootstrap.bash sets. Change-Id: I5e6e54c2e8bdde876941e2e082f9ba177c757cbf
This commit is contained in:
30
soong.bash
Executable file
30
soong.bash
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/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
|
||||
|
||||
# The source directory path and operating system will get written to
|
||||
# .soong.bootstrap by the bootstrap script.
|
||||
|
||||
if [ ! -f ${BUILDDIR}/${BOOTSTRAP} ]; then
|
||||
echo "Error: soong script must be located in a directory created by bootstrap.bash"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source ${BUILDDIR}/.soong.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
|
||||
|
||||
# Let Blueprint know that the Ninja we're using performs multiple passes that
|
||||
# can regenerate the build manifest.
|
||||
export BLUEPRINT_NINJA_HAS_MULTIPASS=1
|
||||
|
||||
${SRCDIR}/prebuilts/ninja/${PREBUILTOS}/ninja -C ${BUILDDIR} "$@"
|
Reference in New Issue
Block a user