From b8ec3d49de0e964ddf0d046f57437c2a26296c74 Mon Sep 17 00:00:00 2001 From: Hsin-Yi Chen Date: Tue, 11 Dec 2018 17:52:51 +0800 Subject: [PATCH] Do not call build/envsetup.sh in create_reference_dumps This commit makes get_build_vars_for_product get variables by soong_ui.bash without envsetup.sh. Bug: 120819347 Test: ./create_reference_dumps.py --llndk -libs libbinder_ndk Change-Id: I66d1245d277d3c5459c6027ccdb88288aaf4d802 --- vndk/tools/header-checker/utils/utils.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/vndk/tools/header-checker/utils/utils.py b/vndk/tools/header-checker/utils/utils.py index 842e99ce4..d8c203a02 100644 --- a/vndk/tools/header-checker/utils/utils.py +++ b/vndk/tools/header-checker/utils/utils.py @@ -210,22 +210,24 @@ def run_abi_diff(old_test_dump_path, new_test_dump_path, arch, lib_name, return 0 -def get_build_vars_for_product(names, product=None): +def get_build_vars_for_product(names, product=None, variant=None): """ Get build system variable for the launched target.""" if product is None and 'ANDROID_PRODUCT_OUT' not in os.environ: return None - cmd = '' - if product is not None: - cmd += 'source build/envsetup.sh > /dev/null && ' - cmd += 'lunch ' + product + ' > /dev/null && ' - cmd += 'build/soong/soong_ui.bash --dumpvars-mode -vars \"' - cmd += ' '.join(names) - cmd += '\"' + env = os.environ.copy() + if product: + env['TARGET_PRODUCT'] = product + if variant: + env['TARGET_BUILD_VARIANT'] = variant + cmd = [ + os.path.join('build', 'soong', 'soong_ui.bash'), + '--dumpvars-mode', '-vars', ' '.join(names), + ] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, - stderr=subprocess.PIPE, cwd=AOSP_DIR, shell=True) + stderr=subprocess.PIPE, cwd=AOSP_DIR, env=env) out, err = proc.communicate() if proc.returncode != 0: