1#!/usr/bin/env python3
2#
3# Copyright (C) 2019 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17"""Fix prebuilt ELF check errors.
18
19This script fixes prebuilt ELF check errors by updating LOCAL_SHARED_LIBRARIES,
20adding LOCAL_MULTILIB, or adding LOCAL_CHECK_ELF_FILES.
21"""
22
23import argparse
24
25from elfcheck.rewriter import Rewriter
26
27
28def _parse_args():
29    parser = argparse.ArgumentParser()
30    parser.add_argument('android_mk', help='path to Android.mk')
31    parser.add_argument('--var', action='append', default=[],
32                        metavar='KEY=VALUE', help='extra makefile variables')
33    return parser.parse_args()
34
35
36def _parse_arg_var(args_var):
37    variables = {}
38    for var in args_var:
39        if '=' in var:
40            key, value = var.split('=', 1)
41            key = key.strip()
42            value = value.strip()
43            variables[key] = value
44    return variables
45
46
47def main():
48    """Main function"""
49    args = _parse_args()
50    rewriter = Rewriter(args.android_mk, _parse_arg_var(args.var))
51    rewriter.rewrite()
52
53
54if __name__ == '__main__':
55    main()
56