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:
@@ -27,8 +27,8 @@ fi
|
|||||||
if [[ $# -eq 0 ]]; then
|
if [[ $# -eq 0 ]]; then
|
||||||
sed -e "s|@@SrcDir@@|${SRCDIR}|" \
|
sed -e "s|@@SrcDir@@|${SRCDIR}|" \
|
||||||
-e "s|@@PrebuiltOS@@|${PREBUILTOS}|" \
|
-e "s|@@PrebuiltOS@@|${PREBUILTOS}|" \
|
||||||
${SRCDIR}/build/soong/soong.in > soong
|
${SRCDIR}/build/soong/soong.bootstrap.in > .soong.bootstrap
|
||||||
chmod 0770 soong
|
ln -sf ${SRCDIR}/build/soong/soong.bash soong
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${SRCDIR}/build/blueprint/bootstrap.bash "$@"
|
${SRCDIR}/build/blueprint/bootstrap.bash "$@"
|
||||||
|
16
soong.in → soong.bash
Normal file → Executable file
16
soong.in → soong.bash
Normal file → Executable file
@@ -3,10 +3,18 @@
|
|||||||
# Determine the build directory location based on the location of this script.
|
# Determine the build directory location based on the location of this script.
|
||||||
BPBUILD="${BASH_SOURCE[0]}"
|
BPBUILD="${BASH_SOURCE[0]}"
|
||||||
BUILDDIR=`dirname "${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
|
||||||
|
|
||||||
# The source directory path and operating system will get substituted in by
|
|
||||||
# the bootstrap script.
|
|
||||||
SRCDIR_IN=@@SrcDir@@
|
|
||||||
if [[ ${SRCDIR_IN:0:1} == '/' ]]; then
|
if [[ ${SRCDIR_IN:0:1} == '/' ]]; then
|
||||||
# SRCDIR_IN is an absolute path
|
# SRCDIR_IN is an absolute path
|
||||||
SRCDIR=${SRCDIR_IN}
|
SRCDIR=${SRCDIR_IN}
|
||||||
@@ -15,8 +23,6 @@ else
|
|||||||
SRCDIR=${BUILDDIR}/${SRCDIR_IN}
|
SRCDIR=${BUILDDIR}/${SRCDIR_IN}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PREBUILTOS=@@PrebuiltOS@@
|
|
||||||
|
|
||||||
# Let Blueprint know that the Ninja we're using performs multiple passes that
|
# Let Blueprint know that the Ninja we're using performs multiple passes that
|
||||||
# can regenerate the build manifest.
|
# can regenerate the build manifest.
|
||||||
export BLUEPRINT_NINJA_HAS_MULTIPASS=1
|
export BLUEPRINT_NINJA_HAS_MULTIPASS=1
|
2
soong.bootstrap.in
Normal file
2
soong.bootstrap.in
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
SRCDIR_IN=@@SrcDir@@
|
||||||
|
PREBUILTOS=@@PrebuiltOS@@
|
Reference in New Issue
Block a user