36 lines
1.3 KiB
Bash
Executable File
36 lines
1.3 KiB
Bash
Executable File
#!/bin/bash -eu
|
|
#
|
|
# Compares Android-TARGET.mk files generated by the mixed build
|
|
# against the same file generated by the reference build.
|
|
# This is the wrapper around build/bazel/mkcompare tool
|
|
# Usage:
|
|
# mkmodules_diff [--bazel-mode-staging] <mkcompare_option> ...
|
|
# Android-TARGET.mk files that are compared are for the product
|
|
# defined by the TARGET_PRODUCT and TARGET_BUILD_VARIANT environment
|
|
# variables.
|
|
# Without --bazel-mode-staging option, the mixed build is run with
|
|
# --bazel-mode-dev option.
|
|
# The output can be safely redirected to a file, it does not include
|
|
# the noise from the build.
|
|
|
|
trap 'printf "FAILED: $BASH_COMMAND (rc=%s)\n" $? >&2' ERR
|
|
declare -r builder=build/soong/soong_ui.bash
|
|
[[ -x ${builder} ]] || \
|
|
{ echo "current directory should be the root of the Android source tree"; exit 1; }
|
|
export ANDROID_QUIET_BUILD=yes
|
|
declare -a mkargs
|
|
declare bazel_mode=--bazel-mode-dev
|
|
for a in $@; do
|
|
if [[ "$a" =~ ^--bazel-mode ]]; then
|
|
bazel_mode="$a"
|
|
else
|
|
mkargs+=("$a")
|
|
fi
|
|
done
|
|
declare -r mkmod_file="out/soong/Android-${TARGET_PRODUCT?TARGET_PRODUCT not set}.mk"
|
|
${builder} --make-mode nothing >/dev/null
|
|
mv ${mkmod_file} ${mkmod_file}.ref
|
|
${builder} --make-mode "${bazel_mode}" nothing >/dev/null
|
|
GOWORK=$PWD/build/bazel/mkcompare/go.work \
|
|
go run android/bazel/mkcompare/cmd ${mkargs[@]} ${mkmod_file}.ref ${mkmod_file}
|