| #!/usr/bin/env python3 |
| |
| import tempfile |
| import os |
| import subprocess |
| |
| SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) |
| AOSP_DIR = os.path.abspath(os.path.join(SCRIPT_DIR, *['..'] * 5)) |
| |
| BUILTIN_HEADERS_DIR = ( |
| os.path.join(AOSP_DIR, 'bionic', 'libc', 'include'), |
| os.path.join(AOSP_DIR, 'external', 'libcxx', 'include'), |
| os.path.join(AOSP_DIR, 'prebuilts', 'sdk', 'renderscript', 'clang-include'), |
| ) |
| |
| EXPORTED_HEADERS_DIR = ( |
| os.path.join(AOSP_DIR, 'development', 'vndk', 'tools', 'header-checker', |
| 'tests'), |
| ) |
| |
| def run_header_checker(input_path, cflags=[]): |
| with tempfile.TemporaryDirectory() as tmp: |
| output_name = os.path.join(tmp, os.path.basename(input_path)) + '.dump' |
| cmd = ['header-abi-dumper', '-o', output_name, input_path,] |
| for d in EXPORTED_HEADERS_DIR: |
| cmd += ['-I', d] |
| cmd+= ['--'] |
| for d in BUILTIN_HEADERS_DIR: |
| cmd += ['-isystem', d] |
| cmd += cflags |
| subprocess.check_call(cmd) |
| with open(output_name, 'r') as f: |
| return f.read().replace(SCRIPT_DIR, '.') |