diff options
author | Colin Cross <ccross@android.com> | 2015-03-25 14:09:02 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-03-25 14:09:02 -0700 |
commit | f7531f1a21aaa56ef53cb1714e954e487528109f (patch) | |
tree | 600dc39036442c0952a4446f6ebf7ea932e3c14b | |
parent | 82df943c5ae6214206875dd38af77ac54e780cfb (diff) | |
download | build_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
-rwxr-xr-x | bootstrap.bash | 4 | ||||
-rwxr-xr-x[-rw-r--r--] | soong.bash (renamed from soong.in) | 16 | ||||
-rw-r--r-- | soong.bootstrap.in | 2 |
3 files changed, 15 insertions, 7 deletions
diff --git a/bootstrap.bash b/bootstrap.bash index 0aa073cc..ca0c0625 100755 --- a/bootstrap.bash +++ b/bootstrap.bash @@ -27,8 +27,8 @@ fi if [[ $# -eq 0 ]]; then sed -e "s|@@SrcDir@@|${SRCDIR}|" \ -e "s|@@PrebuiltOS@@|${PREBUILTOS}|" \ - ${SRCDIR}/build/soong/soong.in > soong - chmod 0770 soong + ${SRCDIR}/build/soong/soong.bootstrap.in > .soong.bootstrap + ln -sf ${SRCDIR}/build/soong/soong.bash soong fi ${SRCDIR}/build/blueprint/bootstrap.bash "$@" diff --git a/soong.in b/soong.bash index 51882db9..fc330d0b 100644..100755 --- a/soong.in +++ b/soong.bash @@ -3,10 +3,18 @@ # 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 -# The source directory path and operating system will get substituted in by -# the bootstrap script. -SRCDIR_IN=@@SrcDir@@ if [[ ${SRCDIR_IN:0:1} == '/' ]]; then # SRCDIR_IN is an absolute path SRCDIR=${SRCDIR_IN} @@ -15,8 +23,6 @@ else SRCDIR=${BUILDDIR}/${SRCDIR_IN} fi -PREBUILTOS=@@PrebuiltOS@@ - # Let Blueprint know that the Ninja we're using performs multiple passes that # can regenerate the build manifest. export BLUEPRINT_NINJA_HAS_MULTIPASS=1 diff --git a/soong.bootstrap.in b/soong.bootstrap.in new file mode 100644 index 00000000..5d74567a --- /dev/null +++ b/soong.bootstrap.in @@ -0,0 +1,2 @@ +SRCDIR_IN=@@SrcDir@@ +PREBUILTOS=@@PrebuiltOS@@ |