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 6import os 7import re 8import sys 9 10from util import build_utils 11import action_helpers # build_utils adds //build to sys.path. 12 13sys.path.append( 14 os.path.abspath( 15 os.path.join(os.path.dirname(__file__), '..', '..', 'util'))) 16 17import generate_wrapper 18 19_WRAPPED_PATH_LIST_RE = re.compile(r'@WrappedPathList\(([^,]+), ([^)]+)\)') 20 21 22def 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 34def 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 42if __name__ == '__main__': 43 sys.exit(main(sys.argv[1:])) 44