1e441b9df9a68595d0dd7b8ed184aecb27c86054bColin Cross#!/bin/bash 2e441b9df9a68595d0dd7b8ed184aecb27c86054bColin Cross 387b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsenset -e 487b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsen 587b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsen# Switch to the build directory 687b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsencd $(dirname "${BASH_SOURCE[0]}") 7f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross 8f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross# The source directory path and operating system will get written to 9f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross# .soong.bootstrap by the bootstrap script. 10f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross 1187b17d1ff46ab86ab897c50435c423f28be4895fDan WillemsenBOOTSTRAP=".soong.bootstrap" 1224679676cad44947ea8752d1d193b0541d942a16Colin Crossif [ ! -f "${BOOTSTRAP}" ]; then 13f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross echo "Error: soong script must be located in a directory created by bootstrap.bash" 14f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross exit 1 15f7531f1a21aaa56ef53cb1714e954e487528109fColin Crossfi 16f7531f1a21aaa56ef53cb1714e954e487528109fColin Cross 1724679676cad44947ea8752d1d193b0541d942a16Colin Crosssource "${BOOTSTRAP}" 18e441b9df9a68595d0dd7b8ed184aecb27c86054bColin Cross 1987b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsen# Now switch to the source directory so that all the relative paths from 2087b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsen# $BOOTSTRAP are correct 2187b17d1ff46ab86ab897c50435c423f28be4895fDan Willemsencd ${SRCDIR_FROM_BUILDDIR} 22e441b9df9a68595d0dd7b8ed184aecb27c86054bColin Cross 239301d8dfa1541887e1f35afde0b2cf4baa84ab25Dan Willemsen# Run the blueprint wrapper 249301d8dfa1541887e1f35afde0b2cf4baa84ab25Dan WillemsenBUILDDIR="${BUILDDIR}" SKIP_NINJA=true build/blueprint/blueprint.bash 25e441b9df9a68595d0dd7b8ed184aecb27c86054bColin Cross 2668f55102dadc880e2b57c669415771395ac0c3b0Colin Cross# Ninja can't depend on environment variables, so do a manual comparison 2768f55102dadc880e2b57c669415771395ac0c3b0Colin Cross# of the relevant environment variables from the last build using the 2868f55102dadc880e2b57c669415771395ac0c3b0Colin Cross# soong_env tool and trigger a build manifest regeneration if necessary 2924679676cad44947ea8752d1d193b0541d942a16Colin CrossENVFILE="${BUILDDIR}/.soong.environment" 3024679676cad44947ea8752d1d193b0541d942a16Colin CrossENVTOOL="${BUILDDIR}/.bootstrap/bin/soong_env" 3124679676cad44947ea8752d1d193b0541d942a16Colin Crossif [ -f "${ENVFILE}" ]; then 3224679676cad44947ea8752d1d193b0541d942a16Colin Cross if [ -x "${ENVTOOL}" ]; then 3324679676cad44947ea8752d1d193b0541d942a16Colin Cross if ! "${ENVTOOL}" "${ENVFILE}"; then 3468f55102dadc880e2b57c669415771395ac0c3b0Colin Cross echo "forcing build manifest regeneration" 3524679676cad44947ea8752d1d193b0541d942a16Colin Cross rm -f "${ENVFILE}" 3668f55102dadc880e2b57c669415771395ac0c3b0Colin Cross fi 3768f55102dadc880e2b57c669415771395ac0c3b0Colin Cross else 3868f55102dadc880e2b57c669415771395ac0c3b0Colin Cross echo "Missing soong_env tool, forcing build manifest regeneration" 3924679676cad44947ea8752d1d193b0541d942a16Colin Cross rm -f "${ENVFILE}" 4068f55102dadc880e2b57c669415771395ac0c3b0Colin Cross fi 4168f55102dadc880e2b57c669415771395ac0c3b0Colin Crossfi 4268f55102dadc880e2b57c669415771395ac0c3b0Colin Cross 43e4d7adeff50f75fbf9262760c5c23680e113adabDan Willemsen"prebuilts/ninja/${PREBUILTOS}/ninja" -f "${BUILDDIR}/build.ninja" -w dupbuild=err "$@" 44