| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """This script is now only used by the closure_compilation builders.""" |
| |
| import argparse |
| import glob |
| import gyp_environment |
| import os |
| import shlex |
| import sys |
| |
| script_dir = os.path.dirname(os.path.realpath(__file__)) |
| chrome_src = os.path.abspath(os.path.join(script_dir, os.pardir)) |
| |
| sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib')) |
| import gyp |
| |
| |
| def ProcessGypDefinesItems(items): |
| """Converts a list of strings to a list of key-value pairs.""" |
| result = [] |
| for item in items: |
| tokens = item.split('=', 1) |
| # Some GYP variables have hyphens, which we don't support. |
| if len(tokens) == 2: |
| result += [(tokens[0], tokens[1])] |
| else: |
| # No value supplied, treat it as a boolean and set it. Note that we |
| # use the string '1' here so we have a consistent definition whether |
| # you do 'foo=1' or 'foo'. |
| result += [(tokens[0], '1')] |
| return result |
| |
| |
| def GetSupplementalFiles(): |
| return [] |
| |
| |
| def GetGypVars(_): |
| """Returns a dictionary of all GYP vars.""" |
| # GYP defines from the environment. |
| env_items = ProcessGypDefinesItems( |
| shlex.split(os.environ.get('GYP_DEFINES', ''))) |
| |
| # GYP defines from the command line. |
| parser = argparse.ArgumentParser() |
| parser.add_argument('-D', dest='defines', action='append', default=[]) |
| cmdline_input_items = parser.parse_known_args()[0].defines |
| cmdline_items = ProcessGypDefinesItems(cmdline_input_items) |
| |
| return dict(env_items + cmdline_items) |
| |
| |
| def main(): |
| gyp_environment.SetEnvironment() |
| |
| print 'Updating projects from gyp files...' |
| sys.stdout.flush() |
| sys.exit(gyp.main(sys.argv[1:] + [ |
| '--check', |
| '--no-circular-check', |
| '-I', os.path.join(script_dir, 'common.gypi'), |
| '-D', 'gyp_output_dir=out'])) |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |