Test: utils/create_reference_dumps.py --help shows updated messages. Change-Id: Ibc4bf08725469a3d7dd60a77a745b7642621267d
66 lines
2.5 KiB
Python
Executable File
66 lines
2.5 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
import argparse
|
|
|
|
from utils import make_library
|
|
from utils import find_lib_lsdump
|
|
from utils import get_build_var
|
|
from utils import AOSP_DIR
|
|
from utils import read_output_content
|
|
from utils import copy_reference_dump
|
|
|
|
class Target(object):
|
|
def __init__(self, has_2nd):
|
|
extra = '_2ND' if has_2nd else ''
|
|
self.arch = get_build_var('TARGET{}_ARCH'.format(extra))
|
|
self.arch_variant = get_build_var('TARGET{}_ARCH_VARIANT'.format(extra))
|
|
self.cpu_variant = \
|
|
get_build_var('TARGET{}_CPU_VARIANT'.format(extra))
|
|
|
|
def get_vndk_libs(vndk_list_path):
|
|
with open(vndk_list_path, 'r') as f:
|
|
return f.read().splitlines()
|
|
|
|
def create_source_abi_reference_dumps(soong_dir, vndk_libs, args):
|
|
ref_dump_dir_stem = os.path.join(args.ref_dump_dir, args.version)
|
|
ref_dump_dir_insertion = 'source-based'
|
|
num_libs_copied = 0
|
|
for vndk_lib in vndk_libs:
|
|
if args.make_libs:
|
|
make_library(vndk_lib)
|
|
for target in [Target(True), Target(False)]:
|
|
arch_lsdump_path = find_lib_lsdump(vndk_lib, target.arch,
|
|
target.arch_variant,
|
|
target.cpu_variant)
|
|
# Copy the contents of the lsdump into it's corresponding
|
|
# reference directory.
|
|
num_libs_copied += copy_reference_dump(arch_lsdump_path,
|
|
ref_dump_dir_stem,
|
|
ref_dump_dir_insertion,
|
|
target.arch)
|
|
return num_libs_copied
|
|
|
|
|
|
def main():
|
|
# Parse command line options.
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('--version', help='VNDK version')
|
|
parser.add_argument('--vndk-list', help='file containing list of vndk \
|
|
libraries')
|
|
parser.add_argument('-ref-dump-dir', help='directory to copy reference abi \
|
|
dumps into')
|
|
parser.add_argument('-make-libs', action ="store_true", default = False,
|
|
help='make libraries before copying dumps')
|
|
args = parser.parse_args()
|
|
num_processed = 0
|
|
soong_dir = os.path.join(AOSP_DIR, 'out', 'soong', '.intermediates')
|
|
num_processed += create_source_abi_reference_dumps(soong_dir,\
|
|
get_vndk_libs(args.vndk_list), args)
|
|
print()
|
|
print('msg: Processed', num_processed, 'libraries')
|
|
if __name__ == '__main__':
|
|
main()
|