16e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#!/usr/bin/python
26e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
36e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
46e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)# found in the LICENSE file.
56e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
66e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)import argparse
76e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)import os
86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)import sys
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
126e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)import processor
136e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
146e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
156e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)def GetInputs(args):
166e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  parser = argparse.ArgumentParser()
176e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  parser.add_argument("sources", nargs=argparse.ONE_OR_MORE)
186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  parser.add_argument("-d", "--depends", nargs=argparse.ZERO_OR_MORE,
196e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                      default=[])
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  parser.add_argument("-e", "--externs", nargs=argparse.ZERO_OR_MORE,
216e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)                      default=[])
226e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  opts = parser.parse_args(args)
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
246e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  files = set()
256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  for file in opts.sources + opts.depends + opts.externs:
266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    files.add(file)
276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)    files.update(processor.Processor(file).included_files)
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
296e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  return files
306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
326e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)if __name__ == "__main__":
336e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  print "\n".join(GetInputs(sys.argv[1:]))
34