aboutsummaryrefslogtreecommitdiffstats
path: root/soong.bash
diff options
context:
space:
mode:
Diffstat (limited to 'soong.bash')
-rwxr-xr-xsoong.bash17
1 files changed, 17 insertions, 0 deletions
diff --git a/soong.bash b/soong.bash
index fc330d0b..fab15de5 100755
--- a/soong.bash
+++ b/soong.bash
@@ -27,4 +27,21 @@ fi
# can regenerate the build manifest.
export BLUEPRINT_NINJA_HAS_MULTIPASS=1
+# Ninja can't depend on environment variables, so do a manual comparison
+# of the relevant environment variables from the last build using the
+# soong_env tool and trigger a build manifest regeneration if necessary
+ENVFILE=${BUILDDIR}/.soong.environment
+ENVTOOL=${BUILDDIR}/.bootstrap/bin/soong_env
+if [ -f ${ENVFILE} ]; then
+ if [ -x ${ENVTOOL} ]; then
+ if ! ${ENVTOOL} ${ENVFILE}; then
+ echo "forcing build manifest regeneration"
+ rm -f ${ENVFILE}
+ fi
+ else
+ echo "Missing soong_env tool, forcing build manifest regeneration"
+ rm -f ${ENVFILE}
+ fi
+fi
+
${SRCDIR}/prebuilts/ninja/${PREBUILTOS}/ninja -C ${BUILDDIR} "$@"