chromium-src-build/gyp_chromium.py

69 строки
1.9 KiB
Python

# 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())