Files
android_development/vndk/tools/header-checker/utils/create_reference_dumps.py
Jayant Chowdhary 88d7c1f30f Update create_reference_dumps.py --help messages.
Test: utils/create_reference_dumps.py --help shows updated messages.

Change-Id: Ibc4bf08725469a3d7dd60a77a745b7642621267d
2017-08-28 11:59:38 -07:00

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()