From 0e68f70ab772528203cebc690d826f5d3e42319d Mon Sep 17 00:00:00 2001 From: Joe Onorato Date: Fri, 24 May 2024 14:19:21 -0700 Subject: [PATCH] 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 --- envsetup.sh | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/envsetup.sh b/envsetup.sh index 01bc7002e8..f22739a0a0 100644 --- a/envsetup.sh +++ b/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 "=" 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