aboutsummaryrefslogtreecommitdiffstats
path: root/soong.bash
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-03-25 14:09:02 -0700
committerColin Cross <ccross@android.com>2015-03-25 14:09:02 -0700
commitf7531f1a21aaa56ef53cb1714e954e487528109f (patch)
tree600dc39036442c0952a4446f6ebf7ea932e3c14b /soong.bash
parent82df943c5ae6214206875dd38af77ac54e780cfb (diff)
downloadbuild_soong-f7531f1a21aaa56ef53cb1714e954e487528109f.tar.gz
build_soong-f7531f1a21aaa56ef53cb1714e954e487528109f.tar.bz2
build_soong-f7531f1a21aaa56ef53cb1714e954e487528109f.zip
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
Diffstat (limited to 'soong.bash')
-rwxr-xr-xsoong.bash30
1 files changed, 30 insertions, 0 deletions
diff --git a/soong.bash b/soong.bash
new file mode 100755
index 00000000..fc330d0b
--- /dev/null
+++ b/soong.bash
@@ -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} "$@"