| Index: trunk/src/build/gyp_chromium
|
| ===================================================================
|
| --- trunk/src/build/gyp_chromium (revision 238457)
|
| +++ trunk/src/build/gyp_chromium (working copy)
|
| @@ -21,9 +21,6 @@
|
| sys.path.insert(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
|
| import gyp
|
|
|
| -# Assume this file is in a one-level-deep subdirectory of the source root.
|
| -SRC_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
| -
|
| # Add paths so that pymod_do_main(...) can import files.
|
| sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
|
| sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
|
| @@ -54,49 +51,10 @@
|
| else:
|
| psyco = None
|
|
|
| -
|
| -def GetSupplementalFiles():
|
| - """Returns a list of the supplemental files that are included in all GYP
|
| - sources."""
|
| - return glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi'))
|
| -
|
| -
|
| -def GetVarsStringForGN(supplemental_files):
|
| - vars_dict = {}
|
| -
|
| - for supplement in supplemental_files:
|
| - with open(supplement, 'r') as f:
|
| - try:
|
| - file_data = eval(f.read(), {'__builtins__': None}, None)
|
| - except SyntaxError, e:
|
| - e.filename = os.path.abspath(supplement)
|
| - raise
|
| - variables = file_data.get('variables')
|
| - for v in variables:
|
| - vars_dict[v] = '"' + variables[v] + '"'
|
| -
|
| - env_string = os.environ.get('GYP_DEFINES', [])
|
| - items = shlex.split(env_string)
|
| - for item in items:
|
| - tokens = item.split('=', 1)
|
| - if len(tokens) == 2:
|
| - # Escape $ characters which have special meaning to GN.
|
| - vars_dict[tokens[0]] = '"' + tokens[1].replace("$", "\\$") + '"'
|
| - else:
|
| - # No value supplied, treat it as a boolean and set it.
|
| - vars_dict[tokens[0]] = 'true'
|
| -
|
| - vars_string = ''
|
| - for v in vars_dict:
|
| - vars_string = vars_string + v + '=' + vars_dict[v] + ' '
|
| - return vars_string.strip() # Remove trailing space.
|
| -
|
| -
|
| -def additional_include_files(supplemental_files, args=[]):
|
| +def additional_include_files(args=[]):
|
| """
|
| - Returns a list of additional (.gypi) files to include, without duplicating
|
| - ones that are already specified on the command line. The list of supplemental
|
| - include files is passed in as an argument.
|
| + Returns a list of additional (.gypi) files to include, without
|
| + duplicating ones that are already specified on the command line.
|
| """
|
| # Determine the include files specified on the command line.
|
| # This doesn't cover all the different option formats you can use,
|
| @@ -116,46 +74,12 @@
|
| AddInclude(os.path.join(script_dir, 'common.gypi'))
|
|
|
| # Optionally add supplemental .gypi files if present.
|
| - for supplement in supplemental_files:
|
| + supplements = glob.glob(os.path.join(chrome_src, '*', 'supplement.gypi'))
|
| + for supplement in supplements:
|
| AddInclude(supplement)
|
|
|
| return result
|
|
|
| -
|
| -def RunGN(supplemental_includes):
|
| - """Runs GN, returning True if it succeeded, printing an error and returning
|
| - false if not."""
|
| -
|
| - # The binaries in platform-specific subdirectories in src/tools/gn/bin.
|
| - gnpath = SRC_DIR + '/tools/gn/bin/'
|
| - if sys.platform == 'win32':
|
| - gnpath += 'win/gn.exe'
|
| - elif sys.platform.startswith('linux'):
|
| - # On Linux we have 32-bit and 64-bit versions. Checking /sbin/init avoids
|
| - # uname's confusion when running a 32-bit userland on a 64-bit kernel.
|
| - if subprocess.check_output(["file", "/sbin/init"]).find("ELF 64-bit") >= 0:
|
| - gnpath += 'linux/gn'
|
| - else:
|
| - gnpath += 'linux/gn32'
|
| - elif sys.platform == 'darwin':
|
| - gnpath += 'mac/gn'
|
| - else:
|
| - print 'Unknown platform for GN: ', sys.platform
|
| - return False
|
| -
|
| - print 'Generating gyp files from GN...'
|
| - gyp_vars = GetVarsStringForGN(supplemental_includes)
|
| -
|
| - # Need to pass both the source root (the bots don't run this command from
|
| - # within the source tree) as well as set the is_gyp value so the BUILD files
|
| - # to know they're being run under GYP.
|
| - args = [gnpath, 'gyp', '-q',
|
| - '--root=' + chrome_src,
|
| - '--args=is_gyp=true',
|
| - '--gyp_vars=' + gyp_vars + '']
|
| - return subprocess.call(args) == 0
|
| -
|
| -
|
| if __name__ == '__main__':
|
| args = sys.argv[1:]
|
|
|
| @@ -202,14 +126,8 @@
|
| else:
|
| args.append(os.path.join(script_dir, 'all.gyp'))
|
|
|
| - supplemental_includes = GetSupplementalFiles()
|
| + args.extend(['-I' + i for i in additional_include_files(args)])
|
|
|
| - if not RunGN(supplemental_includes):
|
| - sys.exit(1)
|
| -
|
| - args.extend(
|
| - ['-I' + i for i in additional_include_files(supplemental_includes, args)])
|
| -
|
| # There shouldn't be a circular dependency relationship between .gyp files,
|
| # but in Chromium's .gyp files, on non-Mac platforms, circular relationships
|
| # currently exist. The check for circular dependencies is currently
|
|
|