generate_android_wrapper.py (1154B)
1 #!/usr/bin/env python3 2 # Copyright 2019 The Chromium Authors 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 import os 7 import re 8 import sys 9 10 from util import build_utils 11 import action_helpers # build_utils adds //build to sys.path. 12 13 sys.path.append( 14 os.path.abspath( 15 os.path.join(os.path.dirname(__file__), '..', '..', 'util'))) 16 17 import generate_wrapper 18 19 _WRAPPED_PATH_LIST_RE = re.compile(r'@WrappedPathList\(([^,]+), ([^)]+)\)') 20 21 22 def ExpandWrappedPathLists(args): 23 expanded_args = [] 24 for arg in args: 25 m = _WRAPPED_PATH_LIST_RE.match(arg) 26 if m: 27 for p in action_helpers.parse_gn_list(m.group(2)): 28 expanded_args.extend([m.group(1), '@WrappedPath(%s)' % p]) 29 else: 30 expanded_args.append(arg) 31 return expanded_args 32 33 34 def main(raw_args): 35 parser = generate_wrapper.CreateArgumentParser() 36 expanded_raw_args = build_utils.ExpandFileArgs(raw_args) 37 expanded_raw_args = ExpandWrappedPathLists(expanded_raw_args) 38 args = parser.parse_args(expanded_raw_args) 39 return generate_wrapper.Wrap(args) 40 41 42 if __name__ == '__main__': 43 sys.exit(main(sys.argv[1:]))