Make get_build_var and get_abs_build_var into scripts.
Inside envsetup.sh there's an optimization to batch their calls. That's now done by _get_build_var_cached and _get_abs_build_var_cached. Bug: 340648588 Test: lunch Change-Id: I63e39c7dc7705b0e6e7052cb8d9f9840ae398e6b
This commit is contained in:
46
envsetup.sh
46
envsetup.sh
@@ -53,8 +53,8 @@ function build_build_var_cache()
|
||||
{
|
||||
local T=$(gettop)
|
||||
# Grep out the variable names from the script.
|
||||
cached_vars=(`cat $T/build/envsetup.sh | tr '()' ' ' | awk '{for(i=1;i<=NF;i++) if($i~/get_build_var/) print $(i+1)}' | sort -u | tr '\n' ' '`)
|
||||
cached_abs_vars=(`cat $T/build/envsetup.sh | tr '()' ' ' | awk '{for(i=1;i<=NF;i++) if($i~/get_abs_build_var/) print $(i+1)}' | sort -u | tr '\n' ' '`)
|
||||
cached_vars=(`cat $T/build/envsetup.sh | tr '()' ' ' | awk '{for(i=1;i<=NF;i++) if($i~/_get_build_var_cached/) print $(i+1)}' | sort -u | tr '\n' ' '`)
|
||||
cached_abs_vars=(`cat $T/build/envsetup.sh | tr '()' ' ' | awk '{for(i=1;i<=NF;i++) if($i~/_get_abs_build_var_cached/) print $(i+1)}' | sort -u | tr '\n' ' '`)
|
||||
# Call the build system to dump the "<val>=<value>" pairs as a shell script.
|
||||
build_dicts_script=`\builtin cd $T; build/soong/soong_ui.bash --dumpvars-mode \
|
||||
--vars="${cached_vars[*]}" \
|
||||
@@ -95,7 +95,7 @@ function destroy_build_var_cache()
|
||||
}
|
||||
|
||||
# Get the value of a build variable as an absolute path.
|
||||
function get_abs_build_var()
|
||||
function _get_abs_build_var_cached()
|
||||
{
|
||||
if [ "$BUILD_VAR_CACHE_READY" = "true" ]
|
||||
then
|
||||
@@ -112,7 +112,7 @@ function get_abs_build_var()
|
||||
}
|
||||
|
||||
# Get the exact value of a build variable.
|
||||
function get_build_var()
|
||||
function _get_build_var_cached()
|
||||
{
|
||||
if [ "$BUILD_VAR_CACHE_READY" = "true" ]
|
||||
then
|
||||
@@ -184,25 +184,25 @@ function set_lunch_paths()
|
||||
fi
|
||||
|
||||
# And in with the new...
|
||||
ANDROID_LUNCH_BUILD_PATHS=$(get_abs_build_var SOONG_HOST_OUT_EXECUTABLES)
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$(get_abs_build_var HOST_OUT_EXECUTABLES)
|
||||
ANDROID_LUNCH_BUILD_PATHS=$(_get_abs_build_var_cached SOONG_HOST_OUT_EXECUTABLES)
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$(_get_abs_build_var_cached HOST_OUT_EXECUTABLES)
|
||||
|
||||
# Append llvm binutils prebuilts path to ANDROID_LUNCH_BUILD_PATHS.
|
||||
local ANDROID_LLVM_BINUTILS=$(get_abs_build_var ANDROID_CLANG_PREBUILTS)/llvm-binutils-stable
|
||||
local ANDROID_LLVM_BINUTILS=$(_get_abs_build_var_cached ANDROID_CLANG_PREBUILTS)/llvm-binutils-stable
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$ANDROID_LLVM_BINUTILS
|
||||
|
||||
# Set up ASAN_SYMBOLIZER_PATH for SANITIZE_HOST=address builds.
|
||||
export ASAN_SYMBOLIZER_PATH=$ANDROID_LLVM_BINUTILS/llvm-symbolizer
|
||||
|
||||
# Append asuite prebuilts path to ANDROID_LUNCH_BUILD_PATHS.
|
||||
local os_arch=$(get_build_var HOST_PREBUILT_TAG)
|
||||
local os_arch=$(_get_build_var_cached HOST_PREBUILT_TAG)
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$T/prebuilts/asuite/acloud/$os_arch
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$T/prebuilts/asuite/aidegen/$os_arch
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$T/prebuilts/asuite/atest/$os_arch
|
||||
|
||||
export ANDROID_JAVA_HOME=$(get_abs_build_var ANDROID_JAVA_HOME)
|
||||
export ANDROID_JAVA_HOME=$(_get_abs_build_var_cached ANDROID_JAVA_HOME)
|
||||
export JAVA_HOME=$ANDROID_JAVA_HOME
|
||||
export ANDROID_JAVA_TOOLCHAIN=$(get_abs_build_var ANDROID_JAVA_TOOLCHAIN)
|
||||
export ANDROID_JAVA_TOOLCHAIN=$(_get_abs_build_var_cached ANDROID_JAVA_TOOLCHAIN)
|
||||
ANDROID_LUNCH_BUILD_PATHS+=:$ANDROID_JAVA_TOOLCHAIN
|
||||
|
||||
# Fix up PYTHONPATH
|
||||
@@ -231,20 +231,20 @@ function set_lunch_paths()
|
||||
export PYTHONPATH=$ANDROID_PYTHONPATH$PYTHONPATH
|
||||
|
||||
unset ANDROID_PRODUCT_OUT
|
||||
export ANDROID_PRODUCT_OUT=$(get_abs_build_var PRODUCT_OUT)
|
||||
export ANDROID_PRODUCT_OUT=$(_get_abs_build_var_cached PRODUCT_OUT)
|
||||
export OUT=$ANDROID_PRODUCT_OUT
|
||||
|
||||
unset ANDROID_HOST_OUT
|
||||
export ANDROID_HOST_OUT=$(get_abs_build_var HOST_OUT)
|
||||
export ANDROID_HOST_OUT=$(_get_abs_build_var_cached HOST_OUT)
|
||||
|
||||
unset ANDROID_SOONG_HOST_OUT
|
||||
export ANDROID_SOONG_HOST_OUT=$(get_abs_build_var SOONG_HOST_OUT)
|
||||
export ANDROID_SOONG_HOST_OUT=$(_get_abs_build_var_cached SOONG_HOST_OUT)
|
||||
|
||||
unset ANDROID_HOST_OUT_TESTCASES
|
||||
export ANDROID_HOST_OUT_TESTCASES=$(get_abs_build_var HOST_OUT_TESTCASES)
|
||||
export ANDROID_HOST_OUT_TESTCASES=$(_get_abs_build_var_cached HOST_OUT_TESTCASES)
|
||||
|
||||
unset ANDROID_TARGET_OUT_TESTCASES
|
||||
export ANDROID_TARGET_OUT_TESTCASES=$(get_abs_build_var TARGET_OUT_TESTCASES)
|
||||
export ANDROID_TARGET_OUT_TESTCASES=$(_get_abs_build_var_cached TARGET_OUT_TESTCASES)
|
||||
|
||||
# Finally, set PATH
|
||||
export PATH=$ANDROID_LUNCH_BUILD_PATHS:$PATH
|
||||
@@ -317,7 +317,7 @@ function printconfig()
|
||||
echo "Couldn't locate the top of the tree. Try setting TOP." >&2
|
||||
return
|
||||
fi
|
||||
get_build_var report_config
|
||||
_get_build_var_cached report_config
|
||||
}
|
||||
|
||||
function set_stuff_for_environment()
|
||||
@@ -407,7 +407,7 @@ function print_lunch_menu()
|
||||
{
|
||||
local uname=$(uname)
|
||||
local choices
|
||||
choices=$(TARGET_BUILD_APPS= TARGET_PRODUCT= TARGET_RELEASE= TARGET_BUILD_VARIANT= get_build_var COMMON_LUNCH_CHOICES 2>/dev/null)
|
||||
choices=$(TARGET_BUILD_APPS= TARGET_PRODUCT= TARGET_RELEASE= TARGET_BUILD_VARIANT= _get_build_var_cached COMMON_LUNCH_CHOICES 2>/dev/null)
|
||||
local ret=$?
|
||||
|
||||
echo
|
||||
@@ -466,7 +466,7 @@ function lunch()
|
||||
selection=aosp_cf_x86_64_phone-trunk_staging-eng
|
||||
elif (echo -n $answer | grep -q -e "^[0-9][0-9]*$")
|
||||
then
|
||||
local choices=($(TARGET_BUILD_APPS= TARGET_PRODUCT= TARGET_RELEASE= TARGET_BUILD_VARIANT= get_build_var COMMON_LUNCH_CHOICES 2>/dev/null))
|
||||
local choices=($(TARGET_BUILD_APPS= TARGET_PRODUCT= TARGET_RELEASE= TARGET_BUILD_VARIANT= _get_build_var_cached COMMON_LUNCH_CHOICES 2>/dev/null))
|
||||
if [ $answer -le ${#choices[@]} ]
|
||||
then
|
||||
# array in zsh starts from 1 instead of 0.
|
||||
@@ -508,8 +508,8 @@ function lunch()
|
||||
fi
|
||||
return 1
|
||||
fi
|
||||
export TARGET_PRODUCT=$(get_build_var TARGET_PRODUCT)
|
||||
export TARGET_BUILD_VARIANT=$(get_build_var TARGET_BUILD_VARIANT)
|
||||
export TARGET_PRODUCT=$(_get_build_var_cached TARGET_PRODUCT)
|
||||
export TARGET_BUILD_VARIANT=$(_get_build_var_cached TARGET_BUILD_VARIANT)
|
||||
export TARGET_RELEASE=$release
|
||||
# Note this is the string "release", not the value of the variable.
|
||||
export TARGET_BUILD_TYPE=release
|
||||
@@ -546,7 +546,7 @@ function _lunch()
|
||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||
|
||||
if [ -z "$COMMON_LUNCH_CHOICES_CACHE" ]; then
|
||||
COMMON_LUNCH_CHOICES_CACHE=$(TARGET_BUILD_APPS= get_build_var COMMON_LUNCH_CHOICES)
|
||||
COMMON_LUNCH_CHOICES_CACHE=$(TARGET_BUILD_APPS= _get_build_var_cached COMMON_LUNCH_CHOICES)
|
||||
fi
|
||||
|
||||
COMPREPLY=( $(compgen -W "${COMMON_LUNCH_CHOICES_CACHE}" -- ${cur}) )
|
||||
@@ -1061,7 +1061,7 @@ function showcommands() {
|
||||
return
|
||||
;;
|
||||
esac
|
||||
OUT_DIR="$(get_abs_build_var OUT_DIR)"
|
||||
OUT_DIR="$(_get_abs_build_var_cached OUT_DIR)"
|
||||
if [[ "$1" == "--regenerate" ]]; then
|
||||
shift 1
|
||||
NINJA_ARGS="-t commands $@" m
|
||||
@@ -1083,6 +1083,8 @@ unset core
|
||||
unset coredump_enable
|
||||
unset coredump_setup
|
||||
unset dirmods
|
||||
unset get_build_var
|
||||
unset get_abs_build_var
|
||||
unset getlastscreenshot
|
||||
unset getprebuilt
|
||||
unset getscreenshotpath
|
||||
|
Reference in New Issue
Block a user