Merge "Create a cli option to build only the specified target rather than the whole package." am: 59b0ddfffd
Original change: https://android-review.googlesource.com/c/platform/development/+/2136832 Change-Id: I3db3e75ee1620e5cbf539966b0cddef35c7838cd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash -ex
|
#!/bin/bash -e
|
||||||
|
|
||||||
# Copyright 2019 Google Inc. All rights reserved.
|
# Copyright 2019 Google Inc. All rights reserved.
|
||||||
#
|
#
|
||||||
@@ -14,15 +14,41 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
echo "Usage: $(basename "$0") [build_target]..."
|
||||||
|
echo " Build all targets if build_target is not specified."
|
||||||
|
echo " Supported build targets for macOS: ${MACOS_SOONG_BINARIES[*]}"
|
||||||
|
echo " Supported build targets for Linux: ${LINUX_SOONG_BINARIES[*]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
valid_build_target () {
|
||||||
|
for i in "${VALID_SOONG_BINARIES[@]}"; do
|
||||||
|
if [ "$i" = "$1" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
SOONG_BINARIES=()
|
||||||
|
|
||||||
|
while [ $# -gt 0 ]; do
|
||||||
|
case $1 in
|
||||||
|
-*) # Display help.
|
||||||
|
usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*) # Add specified build targets into SOONG_BINARIES
|
||||||
|
SOONG_BINARIES+=("$1")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
source "$(dirname "$0")/envsetup.sh"
|
source "$(dirname "$0")/envsetup.sh"
|
||||||
|
|
||||||
if [ -z "${OUT_DIR}" ]; then
|
|
||||||
echo "error: Must set OUT_DIR"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
TOP=$(pwd)
|
|
||||||
|
|
||||||
UNAME="$(uname)"
|
UNAME="$(uname)"
|
||||||
case "${UNAME}" in
|
case "${UNAME}" in
|
||||||
Linux)
|
Linux)
|
||||||
@@ -37,6 +63,49 @@ Darwin)
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
LINUX_SOONG_BINARIES=(
|
||||||
|
"bindgen"
|
||||||
|
"cxx_extractor"
|
||||||
|
"header-abi-linker"
|
||||||
|
"header-abi-dumper"
|
||||||
|
"header-abi-diff"
|
||||||
|
"proto_metadata_plugin"
|
||||||
|
"protoc_extractor"
|
||||||
|
"versioner"
|
||||||
|
)
|
||||||
|
|
||||||
|
MACOS_SOONG_BINARIES=(
|
||||||
|
"versioner"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Targets to be built
|
||||||
|
if [ "${OS}" = "darwin" ]; then
|
||||||
|
VALID_SOONG_BINARIES=("${MACOS_SOONG_BINARIES[@]}")
|
||||||
|
else
|
||||||
|
VALID_SOONG_BINARIES=("${LINUX_SOONG_BINARIES[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "${#SOONG_BINARIES[@]}" -eq 0 ]; then
|
||||||
|
# SOONG_BINARIES is empty, so there must be no commandline argument, thus we
|
||||||
|
# build everything.
|
||||||
|
SOONG_BINARIES=("${VALID_SOONG_BINARIES[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if all specified targets are valid
|
||||||
|
for name in "${SOONG_BINARIES[@]}"; do
|
||||||
|
if ! valid_build_target "${name}"; then
|
||||||
|
echo "build_target ${name} is not one of the supported targets: ${VALID_SOONG_BINARIES[*]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "${OUT_DIR}" ]; then
|
||||||
|
echo "error: Must set OUT_DIR"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
TOP=$(pwd)
|
||||||
|
|
||||||
# Setup Soong configuration
|
# Setup Soong configuration
|
||||||
SOONG_OUT="${OUT_DIR}/soong"
|
SOONG_OUT="${OUT_DIR}/soong"
|
||||||
SOONG_HOST_OUT="${OUT_DIR}/soong/host/${OS}-x86"
|
SOONG_HOST_OUT="${OUT_DIR}/soong/host/${OS}-x86"
|
||||||
@@ -49,24 +118,6 @@ cat > "${SOONG_OUT}/soong.variables" << __EOF__
|
|||||||
}
|
}
|
||||||
__EOF__
|
__EOF__
|
||||||
|
|
||||||
# Targets to be built
|
|
||||||
if [ "${OS}" = "darwin" ]; then
|
|
||||||
SOONG_BINARIES=(
|
|
||||||
"versioner"
|
|
||||||
)
|
|
||||||
else
|
|
||||||
SOONG_BINARIES=(
|
|
||||||
"bindgen"
|
|
||||||
"cxx_extractor"
|
|
||||||
"header-abi-linker"
|
|
||||||
"header-abi-dumper"
|
|
||||||
"header-abi-diff"
|
|
||||||
"proto_metadata_plugin"
|
|
||||||
"protoc_extractor"
|
|
||||||
"versioner"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
binaries=()
|
binaries=()
|
||||||
for name in "${SOONG_BINARIES[@]}"; do
|
for name in "${SOONG_BINARIES[@]}"; do
|
||||||
binaries+=("${SOONG_HOST_OUT}/bin/${name}")
|
binaries+=("${SOONG_HOST_OUT}/bin/${name}")
|
||||||
|
|||||||
Reference in New Issue
Block a user