1#!/usr/bin/env python
2# Copyright 2019 The Chromium Authors. All rights reserved.
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
11
12sys.path.append(
13    os.path.abspath(
14        os.path.join(os.path.dirname(__file__), '..', '..', 'util')))
15
16import generate_wrapper
17
18_WRAPPED_PATH_LIST_RE = re.compile(r'@WrappedPathList\(([^,]+), ([^)]+)\)')
19
20
21def ExpandWrappedPathLists(args):
22  expanded_args = []
23  for arg in args:
24    m = _WRAPPED_PATH_LIST_RE.match(arg)
25    if m:
26      for p in build_utils.ParseGnList(m.group(2)):
27        expanded_args.extend([m.group(1), '@WrappedPath(%s)' % p])
28    else:
29      expanded_args.append(arg)
30  return expanded_args
31
32
33def main(raw_args):
34  parser = generate_wrapper.CreateArgumentParser()
35  expanded_raw_args = build_utils.ExpandFileArgs(raw_args)
36  expanded_raw_args = ExpandWrappedPathLists(expanded_raw_args)
37  args = parser.parse_args(expanded_raw_args)
38  return generate_wrapper.Wrap(args)
39
40
41if __name__ == '__main__':
42  sys.exit(main(sys.argv[1:]))
43