Remove a bunch of cruft from //build.
R=jamesr@chromium.org
Review URL: https://codereview.chromium.org/1432403002 .
diff --git a/build/README.chromium b/build/README.chromium
deleted file mode 100644
index 012df35..0000000
--- a/build/README.chromium
+++ /dev/null
@@ -1,15 +0,0 @@
-List of property sheets to be included by projects:
- common.vsprops
- Not used anymore. No-op. Kept for compatibility with current projects.
-
- debug.vsprops
- Enables debug settings. Must be included directly in Debug configuration. Includes internal\essential.vsprops.
-
- external_code.vsprops
- Contains settings made to simplify usage of external (non-Google) code. It relaxes the warning levels. Should be included after debug.vsprops or release.vsprops to override their settings.
-
- output_dll_copy.rules
- Run to enable automatic copy of DLL when they are as an input file in a vcproj project.
-
- release.vsprops
- Enables release settings. Must be included directly in Release configuration. Includes internal\essential.vsprops. Also includes "internal\release_impl$(CHROME_BUILD_TYPE).vsprops". So the behavior is dependant on the CHROME_BUILD_TYPE environment variable.
diff --git a/build/apply_locales.py b/build/apply_locales.py
deleted file mode 100755
index 6af7280..0000000
--- a/build/apply_locales.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# Copyright (c) 2009 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.
-
-# TODO: remove this script when GYP has for loops
-
-import sys
-import optparse
-
-def main(argv):
-
- parser = optparse.OptionParser()
- usage = 'usage: %s [options ...] format_string locale_list'
- parser.set_usage(usage.replace('%s', '%prog'))
- parser.add_option('-d', dest='dash_to_underscore', action="store_true",
- default=False,
- help='map "en-US" to "en" and "-" to "_" in locales')
-
- (options, arglist) = parser.parse_args(argv)
-
- if len(arglist) < 3:
- print 'ERROR: need string and list of locales'
- return 1
-
- str_template = arglist[1]
- locales = arglist[2:]
-
- results = []
- for locale in locales:
- # For Cocoa to find the locale at runtime, it needs to use '_' instead
- # of '-' (http://crbug.com/20441). Also, 'en-US' should be represented
- # simply as 'en' (http://crbug.com/19165, http://crbug.com/25578).
- if options.dash_to_underscore:
- if locale == 'en-US':
- locale = 'en'
- locale = locale.replace('-', '_')
- results.append(str_template.replace('ZZLOCALE', locale))
-
- # Quote each element so filename spaces don't mess up GYP's attempt to parse
- # it into a list.
- print ' '.join(["'%s'" % x for x in results])
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
diff --git a/build/branding_value.sh b/build/branding_value.sh
deleted file mode 100755
index 9fcb550..0000000
--- a/build/branding_value.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-# Copyright (c) 2008 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 is a wrapper for fetching values from the BRANDING files. Pass the
-# value of GYP's branding variable followed by the key you want and the right
-# file is checked.
-#
-# branding_value.sh Chromium COPYRIGHT
-# branding_value.sh Chromium PRODUCT_FULLNAME
-#
-
-set -e
-
-if [ $# -ne 2 ] ; then
- echo "error: expect two arguments, branding and key" >&2
- exit 1
-fi
-
-BUILD_BRANDING=$1
-THE_KEY=$2
-
-pushd $(dirname "${0}") > /dev/null
-BUILD_DIR=$(pwd)
-popd > /dev/null
-
-TOP="${BUILD_DIR}/.."
-
-case ${BUILD_BRANDING} in
- Chromium)
- BRANDING_FILE="${TOP}/chrome/app/theme/chromium/BRANDING"
- ;;
- Chrome)
- BRANDING_FILE="${TOP}/chrome/app/theme/google_chrome/BRANDING"
- ;;
- *)
- echo "error: unknown branding: ${BUILD_BRANDING}" >&2
- exit 1
- ;;
-esac
-
-BRANDING_VALUE=$(sed -n -e "s/^${THE_KEY}=\(.*\)\$/\1/p" "${BRANDING_FILE}")
-
-if [ -z "${BRANDING_VALUE}" ] ; then
- echo "error: failed to find key '${THE_KEY}'" >&2
- exit 1
-fi
-
-echo "${BRANDING_VALUE}"
diff --git a/build/check_return_value.py b/build/check_return_value.py
deleted file mode 100755
index c659d1e..0000000
--- a/build/check_return_value.py
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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 program wraps an arbitrary command and prints "1" if the command ran
-successfully."""
-
-import os
-import subprocess
-import sys
-
-devnull = open(os.devnull, 'wb')
-if not subprocess.call(sys.argv[1:], stdout=devnull, stderr=devnull):
- print 1
-else:
- print 0
diff --git a/build/common.croc b/build/common.croc
deleted file mode 100644
index fde7a8b..0000000
--- a/build/common.croc
+++ /dev/null
@@ -1,127 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium - settings common to all platforms
-#
-# This should be speicified before the platform-specific config, for example:
-# croc -c chrome_common.croc -c linux/chrome_linux.croc
-
-{
- # List of root directories, applied in order
- 'roots' : [
- # Sub-paths we specifically care about and want to call out
- {
- 'root' : '_/src',
- 'altname' : 'CHROMIUM',
- },
- ],
-
- # List of rules, applied in order
- # Note that any 'include':0 rules here will be overridden by the 'include':1
- # rules in the platform-specific configs.
- 'rules' : [
- # Don't scan for executable lines in uninstrumented C++ header files
- {
- 'regexp' : '.*\\.(h|hpp)$',
- 'add_if_missing' : 0,
- },
-
- # Groups
- {
- 'regexp' : '',
- 'group' : 'source',
- },
- {
- 'regexp' : '.*_(test|unittest|uitest|browsertest)\\.',
- 'group' : 'test',
- },
-
- # Languages
- {
- 'regexp' : '.*\\.(c|h)$',
- 'language' : 'C',
- },
- {
- 'regexp' : '.*\\.(cc|cpp|hpp)$',
- 'language' : 'C++',
- },
-
- # Files/paths to include. Specify these before the excludes, since rules
- # are in order.
- {
- 'regexp' : '^CHROMIUM/(base|media|net|printing|remoting|chrome|content|webkit/glue|native_client)/',
- 'include' : 1,
- },
- # Don't include subversion or mercurial SCM dirs
- {
- 'regexp' : '.*/(\\.svn|\\.hg)/',
- 'include' : 0,
- },
- # Don't include output dirs
- {
- 'regexp' : '.*/(Debug|Release|out|xcodebuild)/',
- 'include' : 0,
- },
- # Don't include third-party source
- {
- 'regexp' : '.*/third_party/',
- 'include' : 0,
- },
- # We don't run the V8 test suite, so we don't care about V8 coverage.
- {
- 'regexp' : '.*/v8/',
- 'include' : 0,
- },
- ],
-
- # Paths to add source from
- 'add_files' : [
- 'CHROMIUM'
- ],
-
- # Statistics to print
- 'print_stats' : [
- {
- 'stat' : 'files_executable',
- 'format' : '*RESULT FilesKnown: files_executable= %d files',
- },
- {
- 'stat' : 'files_instrumented',
- 'format' : '*RESULT FilesInstrumented: files_instrumented= %d files',
- },
- {
- 'stat' : '100.0 * files_instrumented / files_executable',
- 'format' : '*RESULT FilesInstrumentedPercent: files_instrumented_percent= %g percent',
- },
- {
- 'stat' : 'lines_executable',
- 'format' : '*RESULT LinesKnown: lines_known= %d lines',
- },
- {
- 'stat' : 'lines_instrumented',
- 'format' : '*RESULT LinesInstrumented: lines_instrumented= %d lines',
- },
- {
- 'stat' : 'lines_covered',
- 'format' : '*RESULT LinesCoveredSource: lines_covered_source= %d lines',
- 'group' : 'source',
- },
- {
- 'stat' : 'lines_covered',
- 'format' : '*RESULT LinesCoveredTest: lines_covered_test= %d lines',
- 'group' : 'test',
- },
- {
- 'stat' : '100.0 * lines_covered / lines_executable',
- 'format' : '*RESULT PercentCovered: percent_covered= %g percent',
- },
- {
- 'stat' : '100.0 * lines_covered / lines_executable',
- 'format' : '*RESULT PercentCoveredSource: percent_covered_source= %g percent',
- 'group' : 'source',
- },
- {
- 'stat' : '100.0 * lines_covered / lines_executable',
- 'format' : '*RESULT PercentCoveredTest: percent_covered_test= %g percent',
- 'group' : 'test',
- },
- ],
-}
diff --git a/build/cp.py b/build/cp.py
deleted file mode 100755
index 0f32536..0000000
--- a/build/cp.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env 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.
-
-"""Copy a file.
-
-This module works much like the cp posix command - it takes 2 arguments:
-(src, dst) and copies the file with path |src| to |dst|.
-"""
-
-import os
-import shutil
-import sys
-
-
-def Main(src, dst):
- # Use copy instead of copyfile to ensure the executable bit is copied.
- return shutil.copy(src, os.path.normpath(dst))
-
-
-if __name__ == '__main__':
- sys.exit(Main(sys.argv[1], sys.argv[2]))
diff --git a/build/env_dump.py b/build/env_dump.py
deleted file mode 100755
index 21edfe6..0000000
--- a/build/env_dump.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/python
-# Copyright 2013 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 can either source a file and dump the enironment changes done by
-# it, or just simply dump the current environment as JSON into a file.
-
-import json
-import optparse
-import os
-import pipes
-import subprocess
-import sys
-
-
-def main():
- parser = optparse.OptionParser()
- parser.add_option('-f', '--output-json',
- help='File to dump the environment as JSON into.')
- parser.add_option(
- '-d', '--dump-mode', action='store_true',
- help='Dump the environment to sys.stdout and exit immediately.')
-
- parser.disable_interspersed_args()
- options, args = parser.parse_args()
- if options.dump_mode:
- if args or options.output_json:
- parser.error('Cannot specify args or --output-json with --dump-mode.')
- json.dump(dict(os.environ), sys.stdout)
- else:
- if not options.output_json:
- parser.error('Requires --output-json option.')
-
- envsetup_cmd = ' '.join(map(pipes.quote, args))
- full_cmd = [
- 'bash', '-c',
- '. %s > /dev/null; %s -d' % (envsetup_cmd, os.path.abspath(__file__))
- ]
- try:
- output = subprocess.check_output(full_cmd)
- except Exception as e:
- sys.exit('Error running %s and dumping environment.' % envsetup_cmd)
-
- env_diff = {}
- new_env = json.loads(output)
- for k, val in new_env.items():
- if k == '_' or (k in os.environ and os.environ[k] == val):
- continue
- env_diff[k] = val
- with open(options.output_json, 'w') as f:
- json.dump(env_diff, f)
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/build/extract_from_cab.py b/build/extract_from_cab.py
deleted file mode 100755
index 080370c..0000000
--- a/build/extract_from_cab.py
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env 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.
-
-"""Extracts a single file from a CAB archive."""
-
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-
-def run_quiet(*args):
- """Run 'expand' suppressing noisy output. Returns returncode from process."""
- popen = subprocess.Popen(args, stdout=subprocess.PIPE)
- out, _ = popen.communicate()
- if popen.returncode:
- # expand emits errors to stdout, so if we fail, then print that out.
- print out
- return popen.returncode
-
-def main():
- if len(sys.argv) != 4:
- print 'Usage: extract_from_cab.py cab_path archived_file output_dir'
- return 1
-
- [cab_path, archived_file, output_dir] = sys.argv[1:]
-
- # Expand.exe does its work in a fixed-named temporary directory created within
- # the given output directory. This is a problem for concurrent extractions, so
- # create a unique temp dir within the desired output directory to work around
- # this limitation.
- temp_dir = tempfile.mkdtemp(dir=output_dir)
-
- try:
- # Invoke the Windows expand utility to extract the file.
- level = run_quiet('expand', cab_path, '-F:' + archived_file, temp_dir)
- if level == 0:
- # Move the output file into place, preserving expand.exe's behavior of
- # paving over any preexisting file.
- output_file = os.path.join(output_dir, archived_file)
- try:
- os.remove(output_file)
- except OSError:
- pass
- os.rename(os.path.join(temp_dir, archived_file), output_file)
- finally:
- shutil.rmtree(temp_dir, True)
-
- if level != 0:
- return level
-
- # The expand utility preserves the modification date and time of the archived
- # file. Touch the extracted file. This helps build systems that compare the
- # modification times of input and output files to determine whether to do an
- # action.
- os.utime(os.path.join(output_dir, archived_file), None)
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/build/find_isolated_tests.py b/build/find_isolated_tests.py
deleted file mode 100755
index c5b3ab7..0000000
--- a/build/find_isolated_tests.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""Scans build output directory for .isolated files, calculates their SHA1
-hashes, stores final list in JSON document and then removes *.isolated files
-found (to ensure no stale *.isolated stay around on the next build).
-
-Used to figure out what tests were build in isolated mode to trigger these
-tests to run on swarming.
-
-For more info see:
-https://sites.google.com/a/chromium.org/dev/developers/testing/isolated-testing
-"""
-
-import glob
-import hashlib
-import json
-import optparse
-import os
-import re
-import sys
-
-
-def hash_file(filepath):
- """Calculates the hash of a file without reading it all in memory at once."""
- digest = hashlib.sha1()
- with open(filepath, 'rb') as f:
- while True:
- chunk = f.read(1024*1024)
- if not chunk:
- break
- digest.update(chunk)
- return digest.hexdigest()
-
-
-def main():
- parser = optparse.OptionParser(
- usage='%prog --build-dir <path> --output-json <path>',
- description=sys.modules[__name__].__doc__)
- parser.add_option(
- '--build-dir',
- help='Path to a directory to search for *.isolated files.')
- parser.add_option(
- '--output-json',
- help='File to dump JSON results into.')
-
- options, _ = parser.parse_args()
- if not options.build_dir:
- parser.error('--build-dir option is required')
- if not options.output_json:
- parser.error('--output-json option is required')
-
- result = {}
-
- # Get the file hash values and output the pair.
- pattern = os.path.join(options.build_dir, '*.isolated')
- for filepath in sorted(glob.glob(pattern)):
- test_name = os.path.splitext(os.path.basename(filepath))[0]
- if re.match(r'^.+?\.\d$', test_name):
- # It's a split .isolated file, e.g. foo.0.isolated. Ignore these.
- continue
-
- # TODO(csharp): Remove deletion once the isolate tracked dependencies are
- # inputs for the isolated files.
- sha1_hash = hash_file(filepath)
- os.remove(filepath)
- result[test_name] = sha1_hash
-
- with open(options.output_json, 'wb') as f:
- json.dump(result, f)
-
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/build/get_syzygy_binaries.py b/build/get_syzygy_binaries.py
deleted file mode 100755
index 2577c7c..0000000
--- a/build/get_syzygy_binaries.py
+++ /dev/null
@@ -1,451 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""A utility script for downloading versioned Syzygy binaries."""
-
-import cStringIO
-import hashlib
-import errno
-import json
-import logging
-import optparse
-import os
-import re
-import shutil
-import stat
-import sys
-import subprocess
-import urllib2
-import zipfile
-
-
-_LOGGER = logging.getLogger(os.path.basename(__file__))
-
-# The URL where official builds are archived.
-_SYZYGY_ARCHIVE_URL = ('https://syzygy-archive.commondatastorage.googleapis.com'
- '/builds/official/%(revision)s')
-
-# A JSON file containing the state of the download directory. If this file and
-# directory state do not agree, then the binaries will be downloaded and
-# installed again.
-_STATE = '.state'
-
-# This matches an integer (an SVN revision number) or a SHA1 value (a GIT hash).
-# The archive exclusively uses lowercase GIT hashes.
-_REVISION_RE = re.compile('^(?:\d+|[a-f0-9]{40})$')
-
-# This matches an MD5 hash.
-_MD5_RE = re.compile('^[a-f0-9]{32}$')
-
-# List of reources to be downloaded and installed. These are tuples with the
-# following format:
-# (basename, logging name, relative installation path, extraction filter)
-_RESOURCES = [
- ('benchmark.zip', 'benchmark', '', None),
- ('binaries.zip', 'binaries', 'exe', None),
- ('symbols.zip', 'symbols', 'exe',
- lambda x: x.filename.endswith('.dll.pdb'))]
-
-
-def _Shell(*cmd, **kw):
- """Runs |cmd|, returns the results from Popen(cmd).communicate()."""
- _LOGGER.debug('Executing %s.', cmd)
- prog = subprocess.Popen(cmd, shell=True, **kw)
-
- stdout, stderr = prog.communicate()
- if prog.returncode != 0:
- raise RuntimeError('Command "%s" returned %d.' % (cmd, prog.returncode))
- return (stdout, stderr)
-
-
-def _LoadState(output_dir):
- """Loads the contents of the state file for a given |output_dir|, returning
- None if it doesn't exist.
- """
- path = os.path.join(output_dir, _STATE)
- if not os.path.exists(path):
- _LOGGER.debug('No state file found.')
- return None
- with open(path, 'rb') as f:
- _LOGGER.debug('Reading state file: %s', path)
- try:
- return json.load(f)
- except ValueError:
- _LOGGER.debug('Invalid state file.')
- return None
-
-
-def _SaveState(output_dir, state, dry_run=False):
- """Saves the |state| dictionary to the given |output_dir| as a JSON file."""
- path = os.path.join(output_dir, _STATE)
- _LOGGER.debug('Writing state file: %s', path)
- if dry_run:
- return
- with open(path, 'wb') as f:
- f.write(json.dumps(state, sort_keys=True, indent=2))
-
-
-def _Md5(path):
- """Returns the MD5 hash of the file at |path|, which must exist."""
- return hashlib.md5(open(path, 'rb').read()).hexdigest()
-
-
-def _StateIsValid(state):
- """Returns true if the given state structure is valid."""
- if not isinstance(state, dict):
- _LOGGER.debug('State must be a dict.')
- return False
- r = state.get('revision', None)
- if not isinstance(r, basestring) or not _REVISION_RE.match(r):
- _LOGGER.debug('State contains an invalid revision.')
- return False
- c = state.get('contents', None)
- if not isinstance(c, dict):
- _LOGGER.debug('State must contain a contents dict.')
- return False
- for (relpath, md5) in c.iteritems():
- if not isinstance(relpath, basestring) or len(relpath) == 0:
- _LOGGER.debug('State contents dict contains an invalid path.')
- return False
- if not isinstance(md5, basestring) or not _MD5_RE.match(md5):
- _LOGGER.debug('State contents dict contains an invalid MD5 digest.')
- return False
- return True
-
-
-def _BuildActualState(stored, revision, output_dir):
- """Builds the actual state using the provided |stored| state as a template.
- Only examines files listed in the stored state, causing the script to ignore
- files that have been added to the directories locally. |stored| must be a
- valid state dictionary.
- """
- contents = {}
- state = { 'revision': revision, 'contents': contents }
- for relpath, md5 in stored['contents'].iteritems():
- abspath = os.path.abspath(os.path.join(output_dir, relpath))
- if os.path.isfile(abspath):
- m = _Md5(abspath)
- contents[relpath] = m
-
- return state
-
-
-def _StatesAreConsistent(stored, actual):
- """Validates whether two state dictionaries are consistent. Both must be valid
- state dictionaries. Additional entries in |actual| are ignored.
- """
- if stored['revision'] != actual['revision']:
- _LOGGER.debug('Mismatched revision number.')
- return False
- cont_stored = stored['contents']
- cont_actual = actual['contents']
- for relpath, md5 in cont_stored.iteritems():
- if relpath not in cont_actual:
- _LOGGER.debug('Missing content: %s', relpath)
- return False
- if md5 != cont_actual[relpath]:
- _LOGGER.debug('Modified content: %s', relpath)
- return False
- return True
-
-
-def _GetCurrentState(revision, output_dir):
- """Loads the current state and checks to see if it is consistent. Returns
- a tuple (state, bool). The returned state will always be valid, even if an
- invalid state is present on disk.
- """
- stored = _LoadState(output_dir)
- if not _StateIsValid(stored):
- _LOGGER.debug('State is invalid.')
- # Return a valid but empty state.
- return ({'revision': '0', 'contents': {}}, False)
- actual = _BuildActualState(stored, revision, output_dir)
- # If the script has been modified consider the state invalid.
- path = os.path.join(output_dir, _STATE)
- if os.path.getmtime(__file__) > os.path.getmtime(path):
- return (stored, False)
- # Otherwise, explicitly validate the state.
- if not _StatesAreConsistent(stored, actual):
- return (stored, False)
- return (stored, True)
-
-
-def _DirIsEmpty(path):
- """Returns true if the given directory is empty, false otherwise."""
- for root, dirs, files in os.walk(path):
- return not dirs and not files
-
-
-def _RmTreeHandleReadOnly(func, path, exc):
- """An error handling function for use with shutil.rmtree. This will
- detect failures to remove read-only files, and will change their properties
- prior to removing them. This is necessary on Windows as os.remove will return
- an access error for read-only files, and git repos contain read-only
- pack/index files.
- """
- excvalue = exc[1]
- if func in (os.rmdir, os.remove) and excvalue.errno == errno.EACCES:
- _LOGGER.debug('Removing read-only path: %s', path)
- os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
- func(path)
- else:
- raise
-
-
-def _RmTree(path):
- """A wrapper of shutil.rmtree that handles read-only files."""
- shutil.rmtree(path, ignore_errors=False, onerror=_RmTreeHandleReadOnly)
-
-
-def _CleanState(output_dir, state, dry_run=False):
- """Cleans up files/directories in |output_dir| that are referenced by
- the given |state|. Raises an error if there are local changes. Returns a
- dictionary of files that were deleted.
- """
- _LOGGER.debug('Deleting files from previous installation.')
- deleted = {}
-
- # Generate a list of files to delete, relative to |output_dir|.
- contents = state['contents']
- files = sorted(contents.keys())
-
- # Try to delete the files. Keep track of directories to delete as well.
- dirs = {}
- for relpath in files:
- fullpath = os.path.join(output_dir, relpath)
- fulldir = os.path.dirname(fullpath)
- dirs[fulldir] = True
- if os.path.exists(fullpath):
- # If somehow the file has become a directory complain about it.
- if os.path.isdir(fullpath):
- raise Exception('Directory exists where file expected: %s' % fullpath)
-
- # Double check that the file doesn't have local changes. If it does
- # then refuse to delete it.
- if relpath in contents:
- stored_md5 = contents[relpath]
- actual_md5 = _Md5(fullpath)
- if actual_md5 != stored_md5:
- raise Exception('File has local changes: %s' % fullpath)
-
- # The file is unchanged so it can safely be deleted.
- _LOGGER.debug('Deleting file "%s".', fullpath)
- deleted[relpath] = True
- if not dry_run:
- os.unlink(fullpath)
-
- # Sort directories from longest name to shortest. This lets us remove empty
- # directories from the most nested paths first.
- dirs = sorted(dirs.keys(), key=lambda x: len(x), reverse=True)
- for p in dirs:
- if os.path.exists(p) and _DirIsEmpty(p):
- _LOGGER.debug('Deleting empty directory "%s".', p)
- if not dry_run:
- _RmTree(p)
-
- return deleted
-
-
-def _Download(url):
- """Downloads the given URL and returns the contents as a string."""
- response = urllib2.urlopen(url)
- if response.code != 200:
- raise RuntimeError('Failed to download "%s".' % url)
- return response.read()
-
-
-def _InstallBinaries(options, deleted={}):
- """Installs Syzygy binaries. This assumes that the output directory has
- already been cleaned, as it will refuse to overwrite existing files."""
- contents = {}
- state = { 'revision': options.revision, 'contents': contents }
- archive_url = _SYZYGY_ARCHIVE_URL % { 'revision': options.revision }
- if options.resources:
- resources = [(resource, resource, '', None)
- for resource in options.resources]
- else:
- resources = _RESOURCES
- for (base, name, subdir, filt) in resources:
- # Create the output directory if it doesn't exist.
- fulldir = os.path.join(options.output_dir, subdir)
- if os.path.isfile(fulldir):
- raise Exception('File exists where a directory needs to be created: %s' %
- fulldir)
- if not os.path.exists(fulldir):
- _LOGGER.debug('Creating directory: %s', fulldir)
- if not options.dry_run:
- os.makedirs(fulldir)
-
- # Download the archive.
- url = archive_url + '/' + base
- _LOGGER.debug('Retrieving %s archive at "%s".', name, url)
- data = _Download(url)
-
- _LOGGER.debug('Unzipping %s archive.', name)
- archive = zipfile.ZipFile(cStringIO.StringIO(data))
- for entry in archive.infolist():
- if not filt or filt(entry):
- fullpath = os.path.normpath(os.path.join(fulldir, entry.filename))
- relpath = os.path.relpath(fullpath, options.output_dir)
- if os.path.exists(fullpath):
- # If in a dry-run take into account the fact that the file *would*
- # have been deleted.
- if options.dry_run and relpath in deleted:
- pass
- else:
- raise Exception('Path already exists: %s' % fullpath)
-
- # Extract the file and update the state dictionary.
- _LOGGER.debug('Extracting "%s".', fullpath)
- if not options.dry_run:
- archive.extract(entry.filename, fulldir)
- md5 = _Md5(fullpath)
- contents[relpath] = md5
- if sys.platform == 'cygwin':
- os.chmod(fullpath, os.stat(fullpath).st_mode | stat.S_IXUSR)
-
- return state
-
-
-def _ParseCommandLine():
- """Parses the command-line and returns an options structure."""
- option_parser = optparse.OptionParser()
- option_parser.add_option('--dry-run', action='store_true', default=False,
- help='If true then will simply list actions that would be performed.')
- option_parser.add_option('--force', action='store_true', default=False,
- help='Force an installation even if the binaries are up to date.')
- option_parser.add_option('--output-dir', type='string',
- help='The path where the binaries will be replaced. Existing binaries '
- 'will only be overwritten if not up to date.')
- option_parser.add_option('--overwrite', action='store_true', default=False,
- help='If specified then the installation will happily delete and rewrite '
- 'the entire output directory, blasting any local changes.')
- option_parser.add_option('--revision', type='string',
- help='The SVN revision or GIT hash associated with the required version.')
- option_parser.add_option('--revision-file', type='string',
- help='A text file containing an SVN revision or GIT hash.')
- option_parser.add_option('--resource', type='string', action='append',
- dest='resources', help='A resource to be downloaded.')
- option_parser.add_option('--verbose', dest='log_level', action='store_const',
- default=logging.INFO, const=logging.DEBUG,
- help='Enables verbose logging.')
- option_parser.add_option('--quiet', dest='log_level', action='store_const',
- default=logging.INFO, const=logging.ERROR,
- help='Disables all output except for errors.')
- options, args = option_parser.parse_args()
- if args:
- option_parser.error('Unexpected arguments: %s' % args)
- if not options.output_dir:
- option_parser.error('Must specify --output-dir.')
- if not options.revision and not options.revision_file:
- option_parser.error('Must specify one of --revision or --revision-file.')
- if options.revision and options.revision_file:
- option_parser.error('Must not specify both --revision and --revision-file.')
-
- # Configure logging.
- logging.basicConfig(level=options.log_level)
-
- # If a revision file has been specified then read it.
- if options.revision_file:
- options.revision = open(options.revision_file, 'rb').read().strip()
- _LOGGER.debug('Parsed revision "%s" from file "%s".',
- options.revision, options.revision_file)
-
- # Ensure that the specified SVN revision or GIT hash is valid.
- if not _REVISION_RE.match(options.revision):
- option_parser.error('Must specify a valid SVN or GIT revision.')
-
- # This just makes output prettier to read.
- options.output_dir = os.path.normpath(options.output_dir)
-
- return options
-
-
-def _RemoveOrphanedFiles(options):
- """This is run on non-Windows systems to remove orphaned files that may have
- been downloaded by a previous version of this script.
- """
- # Reconfigure logging to output info messages. This will allow inspection of
- # cleanup status on non-Windows buildbots.
- _LOGGER.setLevel(logging.INFO)
-
- output_dir = os.path.abspath(options.output_dir)
-
- # We only want to clean up the folder in 'src/third_party/syzygy', and we
- # expect to be called with that as an output directory. This is an attempt to
- # not start deleting random things if the script is run from an alternate
- # location, or not called from the gclient hooks.
- expected_syzygy_dir = os.path.abspath(os.path.join(
- os.path.dirname(__file__), '..', 'third_party', 'syzygy'))
- expected_output_dir = os.path.join(expected_syzygy_dir, 'binaries')
- if expected_output_dir != output_dir:
- _LOGGER.info('Unexpected output directory, skipping cleanup.')
- return
-
- if not os.path.isdir(expected_syzygy_dir):
- _LOGGER.info('Output directory does not exist, skipping cleanup.')
- return
-
- def OnError(function, path, excinfo):
- """Logs error encountered by shutil.rmtree."""
- _LOGGER.error('Error when running %s(%s)', function, path, exc_info=excinfo)
-
- _LOGGER.info('Removing orphaned files from %s', expected_syzygy_dir)
- if not options.dry_run:
- shutil.rmtree(expected_syzygy_dir, True, OnError)
-
-
-def main():
- options = _ParseCommandLine()
-
- if options.dry_run:
- _LOGGER.debug('Performing a dry-run.')
-
- # We only care about Windows platforms, as the Syzygy binaries aren't used
- # elsewhere. However, there was a short period of time where this script
- # wasn't gated on OS types, and those OSes downloaded and installed binaries.
- # This will cleanup orphaned files on those operating systems.
- if sys.platform not in ('win32', 'cygwin'):
- return _RemoveOrphanedFiles(options)
-
- # Load the current installation state, and validate it against the
- # requested installation.
- state, is_consistent = _GetCurrentState(options.revision, options.output_dir)
-
- # Decide whether or not an install is necessary.
- if options.force:
- _LOGGER.debug('Forcing reinstall of binaries.')
- elif is_consistent:
- # Avoid doing any work if the contents of the directory are consistent.
- _LOGGER.debug('State unchanged, no reinstall necessary.')
- return
-
- # Under normal logging this is the only only message that will be reported.
- _LOGGER.info('Installing revision %s Syzygy binaries.',
- options.revision[0:12])
-
- # Clean up the old state to begin with.
- deleted = []
- if options.overwrite:
- if os.path.exists(options.output_dir):
- # If overwrite was specified then take a heavy-handed approach.
- _LOGGER.debug('Deleting entire installation directory.')
- if not options.dry_run:
- _RmTree(options.output_dir)
- else:
- # Otherwise only delete things that the previous installation put in place,
- # and take care to preserve any local changes.
- deleted = _CleanState(options.output_dir, state, options.dry_run)
-
- # Install the new binaries. In a dry-run this will actually download the
- # archives, but it won't write anything to disk.
- state = _InstallBinaries(options, deleted)
-
- # Build and save the state for the directory.
- _SaveState(options.output_dir, state, options.dry_run)
-
-
-if __name__ == '__main__':
- main()
diff --git a/build/gyp_chromium b/build/gyp_chromium
deleted file mode 100755
index 9dac871..0000000
--- a/build/gyp_chromium
+++ /dev/null
@@ -1,333 +0,0 @@
-#!/usr/bin/env 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 wrapper for Chromium that adds some support for how GYP
-# is invoked by Chromium beyond what can be done in the gclient hooks.
-
-import argparse
-import glob
-import gyp_environment
-import os
-import re
-import shlex
-import subprocess
-import string
-import sys
-import vs_toolchain
-
-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
-
-# 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, 'android_webview', 'tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'build', 'android', 'gyp'))
-sys.path.insert(1, os.path.join(chrome_src, 'chrome', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'chromecast', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'ios', 'chrome', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'native_client', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'native_client_sdk', 'src',
- 'build_tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'remoting', 'tools', 'build'))
-sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'liblouis'))
-sys.path.insert(1, os.path.join(chrome_src, 'third_party', 'WebKit',
- 'Source', 'build', 'scripts'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools', 'generate_shim_headers'))
-sys.path.insert(1, os.path.join(chrome_src, 'tools', 'grit'))
-
-# On Windows, Psyco shortens warm runs of build/gyp_chromium by about
-# 20 seconds on a z600 machine with 12 GB of RAM, from 90 down to 70
-# seconds. Conversely, memory usage of build/gyp_chromium with Psyco
-# maxes out at about 158 MB vs. 132 MB without it.
-#
-# Psyco uses native libraries, so we need to load a different
-# installation depending on which OS we are running under. It has not
-# been tested whether using Psyco on our Mac and Linux builds is worth
-# it (the GYP running time is a lot shorter, so the JIT startup cost
-# may not be worth it).
-if sys.platform == 'win32':
- try:
- sys.path.insert(0, os.path.join(chrome_src, 'third_party', 'psyco_win32'))
- import psyco
- except:
- psyco = None
-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 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 GetGypVars(supplemental_files):
- """Returns a dictionary of all GYP vars."""
- # Find the .gyp directory in the user's home directory.
- home_dot_gyp = os.environ.get('GYP_CONFIG_DIR', None)
- if home_dot_gyp:
- home_dot_gyp = os.path.expanduser(home_dot_gyp)
- if not home_dot_gyp:
- home_vars = ['HOME']
- if sys.platform in ('cygwin', 'win32'):
- home_vars.append('USERPROFILE')
- for home_var in home_vars:
- home = os.getenv(home_var)
- if home != None:
- home_dot_gyp = os.path.join(home, '.gyp')
- if not os.path.exists(home_dot_gyp):
- home_dot_gyp = None
- else:
- break
-
- if home_dot_gyp:
- include_gypi = os.path.join(home_dot_gyp, "include.gypi")
- if os.path.exists(include_gypi):
- supplemental_files += [include_gypi]
-
- # GYP defines from the supplemental.gypi files.
- supp_items = []
- 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:
- supp_items += [(v, str(variables[v]))]
-
- # 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)
-
- vars_dict = dict(supp_items + env_items + cmdline_items)
- return vars_dict
-
-
-def GetOutputDirectory():
- """Returns the output directory that GYP will use."""
-
- # Handle command line generator flags.
- parser = argparse.ArgumentParser()
- parser.add_argument('-G', dest='genflags', default=[], action='append')
- genflags = parser.parse_known_args()[0].genflags
-
- # Handle generator flags from the environment.
- genflags += shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', ''))
-
- needle = 'output_dir='
- for item in genflags:
- if item.startswith(needle):
- return item[len(needle):]
-
- return 'out'
-
-
-def additional_include_files(supplemental_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.
- """
- # Determine the include files specified on the command line.
- # This doesn't cover all the different option formats you can use,
- # but it's mainly intended to avoid duplicating flags on the automatic
- # makefile regeneration which only uses this format.
- specified_includes = set()
- for arg in args:
- if arg.startswith('-I') and len(arg) > 2:
- specified_includes.add(os.path.realpath(arg[2:]))
-
- result = []
- def AddInclude(path):
- if os.path.realpath(path) not in specified_includes:
- result.append(path)
-
- if os.environ.get('GYP_INCLUDE_FIRST') != None:
- AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_FIRST')))
-
- # Always include common.gypi.
- AddInclude(os.path.join(script_dir, 'common.gypi'))
-
- # Optionally add supplemental .gypi files if present.
- for supplement in supplemental_files:
- AddInclude(supplement)
-
- if os.environ.get('GYP_INCLUDE_LAST') != None:
- AddInclude(os.path.join(chrome_src, os.environ.get('GYP_INCLUDE_LAST')))
-
- return result
-
-
-if __name__ == '__main__':
- # Disabling garbage collection saves about 1 second out of 16 on a Linux
- # z620 workstation. Since this is a short-lived process it's not a problem to
- # leak a few cyclyc references in order to spare the CPU cycles for
- # scanning the heap.
- import gc
- gc.disable()
-
- args = sys.argv[1:]
-
- use_analyzer = len(args) and args[0] == '--analyzer'
- if use_analyzer:
- args.pop(0)
- os.environ['GYP_GENERATORS'] = 'analyzer'
- args.append('-Gconfig_path=' + args.pop(0))
- args.append('-Ganalyzer_output_path=' + args.pop(0))
-
- if int(os.environ.get('GYP_CHROMIUM_NO_ACTION', 0)):
- print 'Skipping gyp_chromium due to GYP_CHROMIUM_NO_ACTION env var.'
- sys.exit(0)
-
- # Use the Psyco JIT if available.
- if psyco:
- psyco.profile()
- print "Enabled Psyco JIT."
-
- # Fall back on hermetic python if we happen to get run under cygwin.
- # TODO(bradnelson): take this out once this issue is fixed:
- # http://code.google.com/p/gyp/issues/detail?id=177
- if sys.platform == 'cygwin':
- import find_depot_tools
- depot_tools_path = find_depot_tools.add_depot_tools_to_path()
- python_dir = sorted(glob.glob(os.path.join(depot_tools_path,
- 'python2*_bin')))[-1]
- env = os.environ.copy()
- env['PATH'] = python_dir + os.pathsep + env.get('PATH', '')
- cmd = [os.path.join(python_dir, 'python.exe')] + sys.argv
- sys.exit(subprocess.call(cmd, env=env))
-
- # This could give false positives since it doesn't actually do real option
- # parsing. Oh well.
- gyp_file_specified = any(arg.endswith('.gyp') for arg in args)
-
- gyp_environment.SetEnvironment()
-
- # If we didn't get a file, check an env var, and then fall back to
- # assuming 'all.gyp' from the same directory as the script.
- if not gyp_file_specified:
- gyp_file = os.environ.get('CHROMIUM_GYP_FILE')
- if gyp_file:
- # Note that CHROMIUM_GYP_FILE values can't have backslashes as
- # path separators even on Windows due to the use of shlex.split().
- args.extend(shlex.split(gyp_file))
- else:
- args.append(os.path.join(script_dir, 'all.gyp'))
-
- supplemental_includes = GetSupplementalFiles()
- gyp_vars_dict = GetGypVars(supplemental_includes)
- # 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
- # bypassed on other platforms, but is left enabled on iOS, where a violation
- # of the rule causes Xcode to misbehave badly.
- # TODO(mark): Find and kill remaining circular dependencies, and remove this
- # option. http://crbug.com/35878.
- # TODO(tc): Fix circular dependencies in ChromiumOS then add linux2 to the
- # list.
- if gyp_vars_dict.get('OS') != 'ios':
- args.append('--no-circular-check')
-
- # libtool on Mac warns about duplicate basenames in static libraries, so
- # they're disallowed in general by gyp. We are lax on this point, so disable
- # this check other than on Mac. GN does not use static libraries as heavily,
- # so over time this restriction will mostly go away anyway, even on Mac.
- # https://code.google.com/p/gyp/issues/detail?id=384
- if sys.platform != 'darwin':
- args.append('--no-duplicate-basename-check')
-
- # We explicitly don't support the make gyp generator (crbug.com/348686). Be
- # nice and fail here, rather than choking in gyp.
- if re.search(r'(^|,|\s)make($|,|\s)', os.environ.get('GYP_GENERATORS', '')):
- print 'Error: make gyp generator not supported (check GYP_GENERATORS).'
- sys.exit(1)
-
- # We explicitly don't support the native msvs gyp generator. Be nice and
- # fail here, rather than generating broken projects.
- if re.search(r'(^|,|\s)msvs($|,|\s)', os.environ.get('GYP_GENERATORS', '')):
- print 'Error: msvs gyp generator not supported (check GYP_GENERATORS).'
- print 'Did you mean to use the `msvs-ninja` generator?'
- sys.exit(1)
-
- # If CHROMIUM_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check
- # to enfore syntax checking.
- syntax_check = os.environ.get('CHROMIUM_GYP_SYNTAX_CHECK')
- if syntax_check and int(syntax_check):
- args.append('--check')
-
- # TODO(dmikurube): Remove these checks and messages after a while.
- if ('linux_use_tcmalloc' in gyp_vars_dict or
- 'android_use_tcmalloc' in gyp_vars_dict):
- print '*****************************************************************'
- print '"linux_use_tcmalloc" and "android_use_tcmalloc" are deprecated!'
- print '-----------------------------------------------------------------'
- print 'You specify "linux_use_tcmalloc" or "android_use_tcmalloc" in'
- print 'your GYP_DEFINES. Please switch them into "use_allocator" now.'
- print 'See http://crbug.com/345554 for the details.'
- print '*****************************************************************'
-
- # Automatically turn on crosscompile support for platforms that need it.
- # (The Chrome OS build sets CC_host / CC_target which implicitly enables
- # this mode.)
- if all(('ninja' in os.environ.get('GYP_GENERATORS', ''),
- gyp_vars_dict.get('OS') in ['android', 'ios'],
- 'GYP_CROSSCOMPILE' not in os.environ)):
- os.environ['GYP_CROSSCOMPILE'] = '1'
- if gyp_vars_dict.get('OS') == 'android':
- args.append('--check')
-
- args.extend(
- ['-I' + i for i in additional_include_files(supplemental_includes, args)])
-
- args.extend(['-D', 'gyp_output_dir=' + GetOutputDirectory()])
-
- if not use_analyzer:
- print 'Updating projects from gyp files...'
- sys.stdout.flush()
-
- # Off we go...
- gyp_rc = gyp.main(args)
-
- if not use_analyzer:
- vs2013_runtime_dll_dirs = vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
- if vs2013_runtime_dll_dirs:
- x64_runtime, x86_runtime = vs2013_runtime_dll_dirs
- vs_toolchain.CopyVsRuntimeDlls(
- os.path.join(chrome_src, GetOutputDirectory()),
- (x86_runtime, x64_runtime))
-
- sys.exit(gyp_rc)
diff --git a/build/gyp_chromium.py b/build/gyp_chromium.py
deleted file mode 100644
index f9e8ac8..0000000
--- a/build/gyp_chromium.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 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 file is (possibly, depending on python version) imported by
-# gyp_chromium when GYP_PARALLEL=1 and it creates sub-processes
-# through the multiprocessing library.
-
-# Importing in Python 2.6 (fixed in 2.7) on Windows doesn't search for
-# imports that don't end in .py (and aren't directories with an
-# __init__.py). This wrapper makes "import gyp_chromium" work with
-# those old versions and makes it possible to execute gyp_chromium.py
-# directly on Windows where the extension is useful.
-
-import os
-
-path = os.path.abspath(os.path.split(__file__)[0])
-execfile(os.path.join(path, 'gyp_chromium'))
diff --git a/build/gyp_chromium_test.py.remove b/build/gyp_chromium_test.py.remove
deleted file mode 100755
index 0c0e479..0000000
--- a/build/gyp_chromium_test.py.remove
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2015 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.
-
-import os
-import sys
-import unittest
-
-SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__))
-SRC_DIR = os.path.dirname(SCRIPT_DIR)
-
-sys.path.append(os.path.join(SRC_DIR, 'third_party', 'pymock'))
-
-import mock
-
-# TODO(sbc): Make gyp_chromium more testable by putting the code in
-# a .py file.
-gyp_chromium = __import__('gyp_chromium')
-
-
-class TestGetOutputDirectory(unittest.TestCase):
- @mock.patch('os.environ', {})
- @mock.patch('sys.argv', [__file__])
- def testDefaultValue(self):
- self.assertEqual(gyp_chromium.GetOutputDirectory(), 'out')
-
- @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
- @mock.patch('sys.argv', [__file__])
- def testEnvironment(self):
- self.assertEqual(gyp_chromium.GetOutputDirectory(), 'envfoo')
-
- @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'})
- @mock.patch('sys.argv', [__file__, '-Goutput_dir=cmdfoo'])
- def testGFlagOverridesEnv(self):
- self.assertEqual(gyp_chromium.GetOutputDirectory(), 'cmdfoo')
-
- @mock.patch('os.environ', {})
- @mock.patch('sys.argv', [__file__, '-G', 'output_dir=foo'])
- def testGFlagWithSpace(self):
- self.assertEqual(gyp_chromium.GetOutputDirectory(), 'foo')
-
-
-class TestGetGypVars(unittest.TestCase):
- @mock.patch('os.environ', {})
- def testDefault(self):
- self.assertEqual(gyp_chromium.GetGypVars([]), {})
-
- @mock.patch('os.environ', {})
- @mock.patch('sys.argv', [__file__, '-D', 'foo=bar'])
- def testDFlags(self):
- self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar'})
-
- @mock.patch('os.environ', {})
- @mock.patch('sys.argv', [__file__, '-D', 'foo'])
- def testDFlagsNoValue(self):
- self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': '1'})
-
- @mock.patch('os.environ', {})
- @mock.patch('sys.argv', [__file__, '-D', 'foo=bar', '-Dbaz'])
- def testDFlagMulti(self):
- self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar', 'baz': '1'})
-
-
-if __name__ == '__main__':
- unittest.main()
diff --git a/build/gyp_environment.py b/build/gyp_environment.py
deleted file mode 100644
index fb50645..0000000
--- a/build/gyp_environment.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright 2014 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.
-
-"""
-Sets up various automatic gyp environment variables. These are used by
-gyp_chromium and landmines.py which run at different stages of runhooks. To
-make sure settings are consistent between them, all setup should happen here.
-"""
-
-import gyp_helper
-import os
-import sys
-import vs_toolchain
-
-def SetEnvironment():
- """Sets defaults for GYP_* variables."""
- gyp_helper.apply_chromium_gyp_env()
-
- # Default to ninja on linux and windows, but only if no generator has
- # explicitly been set.
- # Also default to ninja on mac, but only when not building chrome/ios.
- # . -f / --format has precedence over the env var, no need to check for it
- # . set the env var only if it hasn't been set yet
- # . chromium.gyp_env has been applied to os.environ at this point already
- if sys.platform.startswith(('linux', 'win', 'freebsd')) and \
- not os.environ.get('GYP_GENERATORS'):
- os.environ['GYP_GENERATORS'] = 'ninja'
- elif sys.platform == 'darwin' and not os.environ.get('GYP_GENERATORS') and \
- not 'OS=ios' in os.environ.get('GYP_DEFINES', []):
- os.environ['GYP_GENERATORS'] = 'ninja'
-
- vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
diff --git a/build/gyp_helper.py b/build/gyp_helper.py
deleted file mode 100644
index c840f2d..0000000
--- a/build/gyp_helper.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# 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 file helps gyp_chromium and landmines correctly set up the gyp
-# environment from chromium.gyp_env on disk
-
-import os
-
-SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
-CHROME_SRC = os.path.dirname(SCRIPT_DIR)
-
-
-def apply_gyp_environment_from_file(file_path):
- """Reads in a *.gyp_env file and applies the valid keys to os.environ."""
- if not os.path.exists(file_path):
- return
- with open(file_path, 'rU') as f:
- file_contents = f.read()
- try:
- file_data = eval(file_contents, {'__builtins__': None}, None)
- except SyntaxError, e:
- e.filename = os.path.abspath(file_path)
- raise
- supported_vars = (
- 'CC',
- 'CC_wrapper',
- 'CC.host_wrapper',
- 'CHROMIUM_GYP_FILE',
- 'CHROMIUM_GYP_SYNTAX_CHECK',
- 'CXX',
- 'CXX_wrapper',
- 'CXX.host_wrapper',
- 'GYP_DEFINES',
- 'GYP_GENERATOR_FLAGS',
- 'GYP_CROSSCOMPILE',
- 'GYP_GENERATOR_OUTPUT',
- 'GYP_GENERATORS',
- 'GYP_INCLUDE_FIRST',
- 'GYP_INCLUDE_LAST',
- 'GYP_MSVS_VERSION',
- )
- for var in supported_vars:
- file_val = file_data.get(var)
- if file_val:
- if var in os.environ:
- behavior = 'replaces'
- if var == 'GYP_DEFINES':
- result = file_val + ' ' + os.environ[var]
- behavior = 'merges with, and individual components override,'
- else:
- result = os.environ[var]
- print 'INFO: Environment value for "%s" %s value in %s' % (
- var, behavior, os.path.abspath(file_path)
- )
- string_padding = max(len(var), len(file_path), len('result'))
- print ' %s: %s' % (var.rjust(string_padding), os.environ[var])
- print ' %s: %s' % (file_path.rjust(string_padding), file_val)
- os.environ[var] = result
- else:
- os.environ[var] = file_val
-
-
-def apply_chromium_gyp_env():
- if 'SKIP_CHROMIUM_GYP_ENV' not in os.environ:
- # Update the environment based on chromium.gyp_env
- path = os.path.join(os.path.dirname(CHROME_SRC), 'chromium.gyp_env')
- apply_gyp_environment_from_file(path)
diff --git a/build/internal/README.chromium b/build/internal/README.chromium
deleted file mode 100644
index 4624830..0000000
--- a/build/internal/README.chromium
+++ /dev/null
@@ -1,24 +0,0 @@
-Internal property sheets:
- essential.vsprops
- Contains the common settings used throughout the projects. Is included by either ..\debug.vsprops or ..\release.vsprops, so in general, it is not included directly.
-
- release_defaults.vsprops
- Included by ..\release.vsprops. Its settings are overriden by release_impl$(CHROME_BUILD_TYPE).vsprops. Uses the default VS setting which is "Maximize Speed". Results in relatively fast build with reasonable optimization level but without whole program optimization to reduce build time.
-
- release_impl.vsprops
- Included by ..\release.vsprops by default when CHROME_BUILD_TYPE is undefined. Includes release_defaults.vsprops.
-
- release_impl_checksenabled.vsprops
- Included by ..\release.vsprops when CHROME_BUILD_TYPE=_checksenabled. Matches what release_defaults.vsprops does, but doesn't actually inherit from it as we couldn't quite get that working. The only difference is that _DEBUG is set instead of NDEBUG. Used for keeping debug checks enabled with a build that is fast enough to dogfood with.
-
- release_impl_official.vsprops
- Included by ..\release.vsprops when CHROME_BUILD_TYPE=_official. Includes release_defaults.vsprops. Enables Whole Program Optimizations (WPO), which doubles the build time. Results in much more optimized build. Uses "Full Optimization" and "Flavor small code".
-
- release_impl_pgo_instrument.vsprops
- Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_instrument. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) instrumentation (first pass). Uses "Full Optimization" and "Flavor small code".
-
- release_impl_pgo_optimize.vsprops
- Included by ..\release.vsprops when CHROME_BUILD_TYPE=_pgo_optimize. Includes release_defaults.vsprops. Enables Profile Guided Optimization (PGO) optimization (second pass). Uses "Full Optimization" and "Flavor small code".
-
- release_impl_purify.vsprops
- Included by ..\release.vsprops when CHROME_BUILD_TYPE=_purify. Includes release_defaults.vsprops. Disables optimizations. Used with Purify to test without debug tools and without optimization; i.e. NDEBUG is defined but the compiler doesn't optimize the binary.
diff --git a/build/inverse_depth.py b/build/inverse_depth.py
deleted file mode 100755
index ce7a6ab..0000000
--- a/build/inverse_depth.py
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-import os
-import sys
-
-
-def DoMain(argv):
- depth = argv[0]
- return os.path.relpath(os.getcwd(), os.path.abspath(depth))
-
-
-def main(argv):
- if len(argv) < 2:
- print "USAGE: inverse_depth.py depth"
- return 1
- print DoMain(argv[1:])
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv))
diff --git a/build/ios/chrome_ios.croc b/build/ios/chrome_ios.croc
deleted file mode 100644
index 938a2e9..0000000
--- a/build/ios/chrome_ios.croc
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium iOS.
-#
-# Note that Chromium iOS also uses the config file at src/build/common.croc.
-#
-# See src/tools/code_coverage/example.croc for more info on config files.
-
-{
- # List of rules, applied in order
- 'rules' : [
- # Specify inclusions before exclusions, since rules are in order.
-
- # Exclude everything to negate whatever is in src/build/common.croc
- {
- 'regexp' : '.*',
- 'include' : 0,
- },
-
- # Include all directories (but not the files in the directories).
- # This is a workaround for how croc.py walks the directory tree. See the
- # TODO in the AddFiles method of src/tools/code_coverage/croc.py
- {
- 'regexp' : '.*/$',
- 'include' : 1,
- },
-
- # Include any file with an 'ios' directory in the path.
- {
- 'regexp' : '.*/ios/.*',
- 'include' : 1,
- 'add_if_missing' : 1,
- },
-
- # Include any file that ends with _ios.
- {
- 'regexp' : '.*_ios\\.(c|cc|m|mm)$',
- 'include' : 1,
- 'add_if_missing' : 1,
- },
-
- # Include any file that ends with _ios_unittest (and label it a test).
- {
- 'regexp' : '.*_ios_unittest\\.(c|cc|m|mm)$',
- 'include' : 1,
- 'add_if_missing' : 1,
- 'group' : 'test',
- },
-
- # Don't scan for executable lines in uninstrumented header files
- {
- 'regexp' : '.*\\.(h|hpp)$',
- 'add_if_missing' : 0,
- },
-
- # Don't measure coverage of perftests.
- {
- 'regexp' : '.*perftest\\.(c|cc|m|mm)$',
- 'include' : 0,
- },
-
- # Languages
- {
- 'regexp' : '.*\\.m$',
- 'language' : 'ObjC',
- },
- {
- 'regexp' : '.*\\.mm$',
- 'language' : 'ObjC++',
- },
- ],
-}
diff --git a/build/linux/chrome_linux.croc b/build/linux/chrome_linux.croc
deleted file mode 100644
index f400306..0000000
--- a/build/linux/chrome_linux.croc
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium linux
-
-# TODO(jhawkins): We'll need to add a chromeos.croc once we get a coverage bot
-# for that platform.
-
-{
- # List of rules, applied in order
- 'rules' : [
- # Specify inclusions before exclusions, since rules are in order.
-
- # Don't include non-Linux platform dirs
- {
- 'regexp' : '.*/(chromeos|views)/',
- 'include' : 0,
- },
- # Don't include chromeos, windows, or mac specific files
- {
- 'regexp' : '.*(_|/)(chromeos|mac|win|views)(\\.|_)',
- 'include' : 0,
- },
-
- # Groups
- {
- 'regexp' : '.*_test_linux\\.',
- 'group' : 'test',
- },
- ],
-}
diff --git a/build/mac/chrome_mac.croc b/build/mac/chrome_mac.croc
deleted file mode 100644
index 8cde00c..0000000
--- a/build/mac/chrome_mac.croc
+++ /dev/null
@@ -1,36 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium mac
-
-{
- # List of rules, applied in order
- 'rules' : [
- # Specify inclusions before exclusions, since rules are in order.
-
- # Don't include chromeos, linux, or windows specific files
- {
- 'regexp' : '.*(_|/)(chromeos|linux|win|views)(\\.|_)',
- 'include' : 0,
- },
- # Don't include ChromeOS dirs
- {
- 'regexp' : '.*/chromeos/',
- 'include' : 0,
- },
-
- # Groups
- {
- 'regexp' : '.*_test_mac\\.',
- 'group' : 'test',
- },
-
- # Languages
- {
- 'regexp' : '.*\\.m$',
- 'language' : 'ObjC',
- },
- {
- 'regexp' : '.*\\.mm$',
- 'language' : 'ObjC++',
- },
- ],
-}
diff --git a/build/output_dll_copy.rules b/build/output_dll_copy.rules
deleted file mode 100644
index c6e9051..0000000
--- a/build/output_dll_copy.rules
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VisualStudioToolFile
- Name="Output DLL copy"
- Version="8.00"
- >
- <Rules>
- <CustomBuildRule
- Name="Output DLL copy"
- CommandLine="xcopy /R /C /Y $(InputPath) $(OutDir)"
- Outputs="$(OutDir)\$(InputFileName)"
- FileExtensions="*.dll"
- >
- <Properties>
- </Properties>
- </CustomBuildRule>
- </Rules>
-</VisualStudioToolFile>
diff --git a/build/rmdir_and_stamp.py b/build/rmdir_and_stamp.py
deleted file mode 100755
index 6aa11f8..0000000
--- a/build/rmdir_and_stamp.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env 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.
-
-"""Wipes out a directory recursively and then touches a stamp file.
-
-This odd pairing of operations is used to support build scripts which
-slurp up entire directories (e.g. build/android/javac.py when handling
-generated sources) as inputs.
-
-The general pattern of use is:
-
- - Add a target which generates |gen_sources| into |out_path| from |inputs|.
- - Include |stamp_file| as an input for that target or any of its rules which
- generate files in |out_path|.
- - Add an action which depends on |inputs| and which outputs |stamp_file|;
- the action should run this script and pass |out_path| and |stamp_file| as
- its arguments.
-
-The net result is that you will force |out_path| to be wiped and all
-|gen_sources| to be regenerated any time any file in |inputs| changes.
-
-See //third_party/mojo/mojom_bindings_generator.gypi for an example use case.
-
-"""
-
-import errno
-import os
-import shutil
-import sys
-
-
-def Main(dst_dir, stamp_file):
- try:
- shutil.rmtree(os.path.normpath(dst_dir))
- except OSError as e:
- # Ignore only "not found" errors.
- if e.errno != errno.ENOENT:
- raise e
- with open(stamp_file, 'a'):
- os.utime(stamp_file, None)
-
-if __name__ == '__main__':
- sys.exit(Main(sys.argv[1], sys.argv[2]))
diff --git a/build/sanitize-mac-build-log.sed b/build/sanitize-mac-build-log.sed
deleted file mode 100644
index b4111c7..0000000
--- a/build/sanitize-mac-build-log.sed
+++ /dev/null
@@ -1,33 +0,0 @@
-# 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.
-
-# Use this sed script to reduce a Mac build log into something readable.
-
-# Drop uninformative lines.
-/^distcc/d
-/^Check dependencies/d
-/^ setenv /d
-/^ cd /d
-/^make: Nothing to be done/d
-/^$/d
-
-# Xcode prints a short "compiling foobar.o" line followed by the lengthy
-# full command line. These deletions drop the command line.
-\|^ /Developer/usr/bin/|d
-\|^ /Developer/Library/PrivateFrameworks/DevToolsCore\.framework/|d
-\|^ /Developer/Library/Xcode/Plug-ins/CoreBuildTasks\.xcplugin/|d
-
-# Drop any goma command lines as well.
-\|^ .*/gomacc |d
-
-# And, if you've overridden something from your own bin directory, remove those
-# full command lines, too.
-\|^ /Users/[^/]*/bin/|d
-
-# There's already a nice note for bindings, don't need the command line.
-\|^python scripts/rule_binding\.py|d
-
-# Shorten the "compiling foobar.o" line.
-s|^Distributed-CompileC (.*) normal i386 c\+\+ com\.apple\.compilers\.gcc\.4_2| CC \1|
-s|^CompileC (.*) normal i386 c\+\+ com\.apple\.compilers\.gcc\.4_2| CC \1|
diff --git a/build/sanitize-mac-build-log.sh b/build/sanitize-mac-build-log.sh
deleted file mode 100755
index df5a7af..0000000
--- a/build/sanitize-mac-build-log.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2010 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.
-sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
diff --git a/build/sanitize-win-build-log.sed b/build/sanitize-win-build-log.sed
deleted file mode 100644
index c18e664..0000000
--- a/build/sanitize-win-build-log.sed
+++ /dev/null
@@ -1,15 +0,0 @@
-# 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.
-
-# Use this sed script to reduce a Windows build log into something
-# machine-parsable.
-
-# Drop uninformative lines.
-/The operation completed successfully\./d
-
-# Drop parallelization indicators on lines.
-s/^[0-9]+>//
-
-# Shorten bindings generation lines
-s/^.*"python".*idl_compiler\.py".*("[^"]+\.idl").*$/ idl_compiler \1/
diff --git a/build/sanitize-win-build-log.sh b/build/sanitize-win-build-log.sh
deleted file mode 100755
index df5a7af..0000000
--- a/build/sanitize-win-build-log.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2010 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.
-sed -r -f `dirname "${0}"`/`basename "${0}" sh`sed
diff --git a/build/slave/OWNERS b/build/slave/OWNERS
deleted file mode 100644
index f562c92..0000000
--- a/build/slave/OWNERS
+++ /dev/null
@@ -1,20 +0,0 @@
-set noparent
-agable@chromium.org
-agable@google.com
-cmp@chromium.org
-cmp@google.com
-dpranke@chromium.org
-iannucci@chromium.org
-iannucci@google.com
-johnw@chromium.org
-johnw@google.com
-maruel@chromium.org
-maruel@google.com
-mmoss@chromium.org
-mmoss@google.com
-pschmidt@chromium.org
-pschmidt@google.com
-stip@chromium.org
-stip@google.com
-szager@chromium.org
-szager@google.com
diff --git a/build/slave/README b/build/slave/README
deleted file mode 100644
index e3718b2..0000000
--- a/build/slave/README
+++ /dev/null
@@ -1,8 +0,0 @@
-This is a directory which contains configuration information for the
-buildsystem.
-
-* Under recipes, the buildsystem should use only this directory as an
- entry point into src/.
-
-* Scripts in this directory must not import from outside this directory or shell
- to scripts outside this directory.
diff --git a/build/temp_gyp/README.chromium b/build/temp_gyp/README.chromium
deleted file mode 100644
index 8045d61..0000000
--- a/build/temp_gyp/README.chromium
+++ /dev/null
@@ -1,3 +0,0 @@
-This directory will be removed once the files in it are committed upstream and
-Chromium imports an upstream revision with these files. Contact mark for
-details.
diff --git a/build/tree_truth.sh b/build/tree_truth.sh
deleted file mode 100755
index 617092d..0000000
--- a/build/tree_truth.sh
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-# Copyright 2013 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.
-#
-# Script for printing recent commits in a buildbot run.
-
-# Return the sha1 of the given tag. If not present, return "".
-# $1: path to repo
-# $2: tag name
-tt_sha1_for_tag() {
- oneline=$(cd $1 && git log -1 $2 --format='%H' 2>/dev/null)
- if [ $? -eq 0 ] ; then
- echo $oneline
- fi
-}
-
-# Return the sha1 of HEAD, or ""
-# $1: path to repo
-tt_sha1_for_head() {
- ( cd $1 && git log HEAD -n1 --format='%H' | cat )
-}
-
-# For the given repo, set tag to HEAD.
-# $1: path to repo
-# $2: tag name
-tt_tag_head() {
- ( cd $1 && git tag -f $2 )
-}
-
-# For the given repo, delete the tag.
-# $1: path to repo
-# $2: tag name
-tt_delete_tag() {
- ( cd $1 && git tag -d $2 )
-}
-
-# For the given repo, set tag to "three commits ago" (for testing).
-# $1: path to repo
-# $2: tag name
-tt_tag_three_ago() {
- local sh=$(cd $1 && git log --pretty=oneline -n 3 | tail -1 | awk '{print $1}')
- ( cd $1 && git tag -f $2 $sh )
-}
-
-# List the commits between the given tag and HEAD.
-# If the tag does not exist, only list the last few.
-# If the tag is at HEAD, list nothing.
-# Output format has distinct build steps for repos with changes.
-# $1: path to repo
-# $2: tag name
-# $3: simple/short repo name to use for display
-tt_list_commits() {
- local tag_sha1=$(tt_sha1_for_tag $1 $2)
- local head_sha1=$(tt_sha1_for_head $1)
- local display_name=$(echo $3 | sed 's#/#_#g')
- if [ "${tag_sha1}" = "${head_sha1}" ] ; then
- return
- fi
- if [ "${tag_sha1}" = "" ] ; then
- echo "@@@BUILD_STEP Recent commits in repo $display_name@@@"
- echo "NOTE: git tag was not found so we have no baseline."
- echo "Here are some recent commits, but they may not be new for this build."
- ( cd $1 && git log -n 10 --stat | cat)
- else
- echo "@@@BUILD_STEP New commits in repo $display_name@@@"
- ( cd $1 && git log -n 500 $2..HEAD --stat | cat)
- fi
-}
-
-# Clean out the tree truth tags in all repos. For testing.
-tt_clean_all() {
- for project in $@; do
- tt_delete_tag $CHROME_SRC/../$project tree_truth
- done
-}
-
-# Print tree truth for all clank repos.
-tt_print_all() {
- for project in $@; do
- local full_path=$CHROME_SRC/../$project
- tt_list_commits $full_path tree_truth $project
- tt_tag_head $full_path tree_truth
- done
-}
-
-# Print a summary of the last 10 commits for each repo.
-tt_brief_summary() {
- echo "@@@BUILD_STEP Brief summary of recent CLs in every branch@@@"
- for project in $@; do
- echo $project:
- local full_path=$CHROME_SRC/../$project
- (cd $full_path && git log -n 10 --format=" %H %s %an, %ad" | cat)
- echo "================================================================="
- done
-}
-
-CHROME_SRC=$1
-shift
-PROJECT_LIST=$@
-tt_brief_summary $PROJECT_LIST
-tt_print_all $PROJECT_LIST
diff --git a/build/win/chrome_win.croc b/build/win/chrome_win.croc
deleted file mode 100644
index e1e3bb7..0000000
--- a/build/win/chrome_win.croc
+++ /dev/null
@@ -1,26 +0,0 @@
-# -*- python -*-
-# Crocodile config file for Chromium windows
-
-{
- # List of rules, applied in order
- 'rules' : [
- # Specify inclusions before exclusions, since rules are in order.
-
- # Don't include chromeos, posix, or linux specific files
- {
- 'regexp' : '.*(_|/)(chromeos|linux|posix)(\\.|_)',
- 'include' : 0,
- },
- # Don't include ChromeOS dirs
- {
- 'regexp' : '.*/chromeos/',
- 'include' : 0,
- },
-
- # Groups
- {
- 'regexp' : '.*_test_win\\.',
- 'group' : 'test',
- },
- ],
-}
diff --git a/build/win/compatibility.manifest b/build/win/compatibility.manifest
deleted file mode 100644
index 10d10da..0000000
--- a/build/win/compatibility.manifest
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
- <application>
- <!--The ID below indicates application support for Windows Vista -->
- <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
- <!--The ID below indicates application support for Windows 7 -->
- <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
- <!--The ID below indicates application support for Windows 8 -->
- <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
- <!--The ID below indicates application support for Windows 8.1 -->
- <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
- <!--The ID below indicates application support for Windows 10 -->
- <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
- </application>
- </compatibility>
-</assembly>
diff --git a/build/win/dbghelp_xp/README.chromium b/build/win/dbghelp_xp/README.chromium
deleted file mode 100644
index a52cfad..0000000
--- a/build/win/dbghelp_xp/README.chromium
+++ /dev/null
@@ -1,2 +0,0 @@
-This dbghelp.dll is the redistributable version from the Windows 7 SDK, the
-last one to work on Windows XP.
diff --git a/build/win/dbghelp_xp/dbghelp.dll b/build/win/dbghelp_xp/dbghelp.dll
deleted file mode 100755
index 9f52a5d..0000000
--- a/build/win/dbghelp_xp/dbghelp.dll
+++ /dev/null
Binary files differ
diff --git a/build/win/importlibs/create_importlib_win.py b/build/win/importlibs/create_importlib_win.py
deleted file mode 100755
index bb6a2f0..0000000
--- a/build/win/importlibs/create_importlib_win.py
+++ /dev/null
@@ -1,217 +0,0 @@
-#!/usr/bin/env 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.
-#
-"""Creates an import library from an import description file."""
-import ast
-import logging
-import optparse
-import os
-import os.path
-import shutil
-import subprocess
-import sys
-import tempfile
-
-
-_USAGE = """\
-Usage: %prog [options] [imports-file]
-
-Creates an import library from imports-file.
-
-Note: this script uses the microsoft assembler (ml.exe) and the library tool
- (lib.exe), both of which must be in path.
-"""
-
-
-_ASM_STUB_HEADER = """\
-; This file is autogenerated by create_importlib_win.py, do not edit.
-.386
-.MODEL FLAT, C
-.CODE
-
-; Stubs to provide mangled names to lib.exe for the
-; correct generation of import libs.
-"""
-
-
-_DEF_STUB_HEADER = """\
-; This file is autogenerated by create_importlib_win.py, do not edit.
-
-; Export declarations for generating import libs.
-"""
-
-
-_LOGGER = logging.getLogger()
-
-
-
-class _Error(Exception):
- pass
-
-
-class _ImportLibraryGenerator(object):
- def __init__(self, temp_dir):
- self._temp_dir = temp_dir
-
- def _Shell(self, cmd, **kw):
- ret = subprocess.call(cmd, **kw)
- _LOGGER.info('Running "%s" returned %d.', cmd, ret)
- if ret != 0:
- raise _Error('Command "%s" returned %d.' % (cmd, ret))
-
- def _ReadImportsFile(self, imports_file):
- # Slurp the imports file.
- return ast.literal_eval(open(imports_file).read())
-
- def _WriteStubsFile(self, import_names, output_file):
- output_file.write(_ASM_STUB_HEADER)
-
- for name in import_names:
- output_file.write('%s PROC\n' % name)
- output_file.write('%s ENDP\n' % name)
-
- output_file.write('END\n')
-
- def _WriteDefFile(self, dll_name, import_names, output_file):
- output_file.write(_DEF_STUB_HEADER)
- output_file.write('NAME %s\n' % dll_name)
- output_file.write('EXPORTS\n')
- for name in import_names:
- name = name.split('@')[0]
- output_file.write(' %s\n' % name)
-
- def _CreateObj(self, dll_name, imports):
- """Writes an assembly file containing empty declarations.
-
- For each imported function of the form:
-
- AddClipboardFormatListener@4 PROC
- AddClipboardFormatListener@4 ENDP
-
- The resulting object file is then supplied to lib.exe with a .def file
- declaring the corresponding non-adorned exports as they appear on the
- exporting DLL, e.g.
-
- EXPORTS
- AddClipboardFormatListener
-
- In combination, the .def file and the .obj file cause lib.exe to generate
- an x86 import lib with public symbols named like
- "__imp__AddClipboardFormatListener@4", binding to exports named like
- "AddClipboardFormatListener".
-
- All of this is perpetrated in a temporary directory, as the intermediate
- artifacts are quick and easy to produce, and of no interest to anyone
- after the fact."""
-
- # Create an .asm file to provide stdcall-like stub names to lib.exe.
- asm_name = dll_name + '.asm'
- _LOGGER.info('Writing asm file "%s".', asm_name)
- with open(os.path.join(self._temp_dir, asm_name), 'wb') as stubs_file:
- self._WriteStubsFile(imports, stubs_file)
-
- # Invoke on the assembler to compile it to .obj.
- obj_name = dll_name + '.obj'
- cmdline = ['ml.exe', '/nologo', '/c', asm_name, '/Fo', obj_name]
- self._Shell(cmdline, cwd=self._temp_dir, stdout=open(os.devnull))
-
- return obj_name
-
- def _CreateImportLib(self, dll_name, imports, architecture, output_file):
- """Creates an import lib binding imports to dll_name for architecture.
-
- On success, writes the import library to output file.
- """
- obj_file = None
-
- # For x86 architecture we have to provide an object file for correct
- # name mangling between the import stubs and the exported functions.
- if architecture == 'x86':
- obj_file = self._CreateObj(dll_name, imports)
-
- # Create the corresponding .def file. This file has the non stdcall-adorned
- # names, as exported by the destination DLL.
- def_name = dll_name + '.def'
- _LOGGER.info('Writing def file "%s".', def_name)
- with open(os.path.join(self._temp_dir, def_name), 'wb') as def_file:
- self._WriteDefFile(dll_name, imports, def_file)
-
- # Invoke on lib.exe to create the import library.
- # We generate everything into the temporary directory, as the .exp export
- # files will be generated at the same path as the import library, and we
- # don't want those files potentially gunking the works.
- dll_base_name, ext = os.path.splitext(dll_name)
- lib_name = dll_base_name + '.lib'
- cmdline = ['lib.exe',
- '/machine:%s' % architecture,
- '/def:%s' % def_name,
- '/out:%s' % lib_name]
- if obj_file:
- cmdline.append(obj_file)
-
- self._Shell(cmdline, cwd=self._temp_dir, stdout=open(os.devnull))
-
- # Copy the .lib file to the output directory.
- shutil.copyfile(os.path.join(self._temp_dir, lib_name), output_file)
- _LOGGER.info('Created "%s".', output_file)
-
- def CreateImportLib(self, imports_file, output_file):
- # Read the imports file.
- imports = self._ReadImportsFile(imports_file)
-
- # Creates the requested import library in the output directory.
- self._CreateImportLib(imports['dll_name'],
- imports['imports'],
- imports.get('architecture', 'x86'),
- output_file)
-
-
-def main():
- parser = optparse.OptionParser(usage=_USAGE)
- parser.add_option('-o', '--output-file',
- help='Specifies the output file path.')
- parser.add_option('-k', '--keep-temp-dir',
- action='store_true',
- help='Keep the temporary directory.')
- parser.add_option('-v', '--verbose',
- action='store_true',
- help='Verbose logging.')
-
- options, args = parser.parse_args()
-
- if len(args) != 1:
- parser.error('You must provide an imports file.')
-
- if not options.output_file:
- parser.error('You must provide an output file.')
-
- options.output_file = os.path.abspath(options.output_file)
-
- if options.verbose:
- logging.basicConfig(level=logging.INFO)
- else:
- logging.basicConfig(level=logging.WARN)
-
-
- temp_dir = tempfile.mkdtemp()
- _LOGGER.info('Created temporary directory "%s."', temp_dir)
- try:
- # Create a generator and create the import lib.
- generator = _ImportLibraryGenerator(temp_dir)
-
- ret = generator.CreateImportLib(args[0], options.output_file)
- except Exception, e:
- _LOGGER.exception('Failed to create import lib.')
- ret = 1
- finally:
- if not options.keep_temp_dir:
- shutil.rmtree(temp_dir)
- _LOGGER.info('Deleted temporary directory "%s."', temp_dir)
-
- return ret
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/build/win/importlibs/filter_export_list.py b/build/win/importlibs/filter_export_list.py
deleted file mode 100755
index c2489a9..0000000
--- a/build/win/importlibs/filter_export_list.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env 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.
-#
-"""Help maintaining DLL import lists."""
-import ast
-import optparse
-import re
-import sys
-
-
-_EXPORT_RE = re.compile(r"""
- ^\s*(?P<ordinal>[0-9]+) # The ordinal field.
- \s+(?P<hint>[0-9A-F]+) # The hint field.
- \s(?P<rva>........) # The RVA field.
- \s+(?P<name>[^ ]+) # And finally the name we're really after.
-""", re.VERBOSE)
-
-
-_USAGE = r"""\
-Usage: %prog [options] [master-file]
-
-This script filters a list of exports from a DLL, generated from something
-like the following command line:
-
-C:\> dumpbin /exports user32.dll
-
-against a master list of imports built from e.g.
-
-C:\> dumpbin /exports user32.lib
-
-The point of this is to trim non-public exports from the list, and to
-normalize the names to their stdcall-mangled form for the generation of
-import libraries.
-Note that the export names from the latter incanatation are stdcall-mangled,
-e.g. they are suffixed with "@" and the number of argument bytes to the
-function.
-"""
-
-def _ReadMasterFile(master_file):
- # Slurp the master file.
- with open(master_file) as f:
- master_exports = ast.literal_eval(f.read())
-
- master_mapping = {}
- for export in master_exports:
- name = export.split('@')[0]
- master_mapping[name] = export
-
- return master_mapping
-
-
-def main():
- parser = optparse.OptionParser(usage=_USAGE)
- parser.add_option('-r', '--reverse',
- action='store_true',
- help='Reverse the matching, e.g. return the functions '
- 'in the master list that aren\'t in the input.')
-
- options, args = parser.parse_args()
- if len(args) != 1:
- parser.error('Must provide a master file.')
-
- master_mapping = _ReadMasterFile(args[0])
-
- found_exports = []
- for line in sys.stdin:
- match = _EXPORT_RE.match(line)
- if match:
- export_name = master_mapping.get(match.group('name'), None)
- if export_name:
- found_exports.append(export_name)
-
- if options.reverse:
- # Invert the found_exports list.
- found_exports = set(master_mapping.values()) - set(found_exports)
-
- # Sort the found exports for tidy output.
- print '\n'.join(sorted(found_exports))
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
diff --git a/build/win/importlibs/x86/user32.winxp.imports b/build/win/importlibs/x86/user32.winxp.imports
deleted file mode 100644
index 24403a8..0000000
--- a/build/win/importlibs/x86/user32.winxp.imports
+++ /dev/null
@@ -1,670 +0,0 @@
-# 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 file is used to create a custom import library for Chrome's use of
-# user32.dll exports. The set of exports defined below
-{
- 'architecture': 'x86',
-
- # The DLL to bind to.
- 'dll_name': 'user32.dll',
-
- # Name of the generated import library.
- 'importlib_name': 'user32.winxp.lib',
-
- # This is the set of exports observed on a user32.dll from Windows XP SP2.
- # The version of the DLL where these were observed is 5.1.2600.2180.
- # Incidentally this set of exports also coincides with Windows XP SP3, where
- # the version of the DLL is 5.1.2600.5512.
- # Don't add new imports here unless and until the minimal supported
- # Windows version has been bumped past Windows XP SP2+.
- 'imports': [
- 'ActivateKeyboardLayout@8',
- 'AdjustWindowRect@12',
- 'AdjustWindowRectEx@16',
- 'AllowSetForegroundWindow@4',
- 'AnimateWindow@12',
- 'AnyPopup@0',
- 'AppendMenuA@16',
- 'AppendMenuW@16',
- 'ArrangeIconicWindows@4',
- 'AttachThreadInput@12',
- 'BeginDeferWindowPos@4',
- 'BeginPaint@8',
- 'BlockInput@4',
- 'BringWindowToTop@4',
- 'BroadcastSystemMessage@20',
- 'BroadcastSystemMessageA@20',
- 'BroadcastSystemMessageExA@24',
- 'BroadcastSystemMessageExW@24',
- 'BroadcastSystemMessageW@20',
- 'CallMsgFilter@8',
- 'CallMsgFilterA@8',
- 'CallMsgFilterW@8',
- 'CallNextHookEx@16',
- 'CallWindowProcA@20',
- 'CallWindowProcW@20',
- 'CascadeChildWindows@8',
- 'CascadeWindows@20',
- 'ChangeClipboardChain@8',
- 'ChangeDisplaySettingsA@8',
- 'ChangeDisplaySettingsExA@20',
- 'ChangeDisplaySettingsExW@20',
- 'ChangeDisplaySettingsW@8',
- 'ChangeMenuA@20',
- 'ChangeMenuW@20',
- 'CharLowerA@4',
- 'CharLowerBuffA@8',
- 'CharLowerBuffW@8',
- 'CharLowerW@4',
- 'CharNextA@4',
- 'CharNextExA@12',
- 'CharNextW@4',
- 'CharPrevA@8',
- 'CharPrevExA@16',
- 'CharPrevW@8',
- 'CharToOemA@8',
- 'CharToOemBuffA@12',
- 'CharToOemBuffW@12',
- 'CharToOemW@8',
- 'CharUpperA@4',
- 'CharUpperBuffA@8',
- 'CharUpperBuffW@8',
- 'CharUpperW@4',
- 'CheckDlgButton@12',
- 'CheckMenuItem@12',
- 'CheckMenuRadioItem@20',
- 'CheckRadioButton@16',
- 'ChildWindowFromPoint@12',
- 'ChildWindowFromPointEx@16',
- 'ClientToScreen@8',
- 'ClipCursor@4',
- 'CloseClipboard@0',
- 'CloseDesktop@4',
- 'CloseWindow@4',
- 'CloseWindowStation@4',
- 'CopyAcceleratorTableA@12',
- 'CopyAcceleratorTableW@12',
- 'CopyIcon@4',
- 'CopyImage@20',
- 'CopyRect@8',
- 'CountClipboardFormats@0',
- 'CreateAcceleratorTableA@8',
- 'CreateAcceleratorTableW@8',
- 'CreateCaret@16',
- 'CreateCursor@28',
- 'CreateDesktopA@24',
- 'CreateDesktopW@24',
- 'CreateDialogIndirectParamA@20',
- 'CreateDialogIndirectParamW@20',
- 'CreateDialogParamA@20',
- 'CreateDialogParamW@20',
- 'CreateIcon@28',
- 'CreateIconFromResource@16',
- 'CreateIconFromResourceEx@28',
- 'CreateIconIndirect@4',
- 'CreateMDIWindowA@40',
- 'CreateMDIWindowW@40',
- 'CreateMenu@0',
- 'CreatePopupMenu@0',
- 'CreateWindowExA@48',
- 'CreateWindowExW@48',
- 'CreateWindowStationA@16',
- 'CreateWindowStationW@16',
- 'DdeAbandonTransaction@12',
- 'DdeAccessData@8',
- 'DdeAddData@16',
- 'DdeClientTransaction@32',
- 'DdeCmpStringHandles@8',
- 'DdeConnect@16',
- 'DdeConnectList@20',
- 'DdeCreateDataHandle@28',
- 'DdeCreateStringHandleA@12',
- 'DdeCreateStringHandleW@12',
- 'DdeDisconnect@4',
- 'DdeDisconnectList@4',
- 'DdeEnableCallback@12',
- 'DdeFreeDataHandle@4',
- 'DdeFreeStringHandle@8',
- 'DdeGetData@16',
- 'DdeGetLastError@4',
- 'DdeImpersonateClient@4',
- 'DdeInitializeA@16',
- 'DdeInitializeW@16',
- 'DdeKeepStringHandle@8',
- 'DdeNameService@16',
- 'DdePostAdvise@12',
- 'DdeQueryConvInfo@12',
- 'DdeQueryNextServer@8',
- 'DdeQueryStringA@20',
- 'DdeQueryStringW@20',
- 'DdeReconnect@4',
- 'DdeSetQualityOfService@12',
- 'DdeSetUserHandle@12',
- 'DdeUnaccessData@4',
- 'DdeUninitialize@4',
- 'DefDlgProcA@16',
- 'DefDlgProcW@16',
- 'DefFrameProcA@20',
- 'DefFrameProcW@20',
- 'DefMDIChildProcA@16',
- 'DefMDIChildProcW@16',
- 'DefRawInputProc@12',
- 'DefWindowProcA@16',
- 'DefWindowProcW@16',
- 'DeferWindowPos@32',
- 'DeleteMenu@12',
- 'DeregisterShellHookWindow@4',
- 'DestroyAcceleratorTable@4',
- 'DestroyCaret@0',
- 'DestroyCursor@4',
- 'DestroyIcon@4',
- 'DestroyMenu@4',
- 'DestroyWindow@4',
- 'DialogBoxIndirectParamA@20',
- 'DialogBoxIndirectParamW@20',
- 'DialogBoxParamA@20',
- 'DialogBoxParamW@20',
- 'DisableProcessWindowsGhosting@0',
- 'DispatchMessageA@4',
- 'DispatchMessageW@4',
- 'DlgDirListA@20',
- 'DlgDirListComboBoxA@20',
- 'DlgDirListComboBoxW@20',
- 'DlgDirListW@20',
- 'DlgDirSelectComboBoxExA@16',
- 'DlgDirSelectComboBoxExW@16',
- 'DlgDirSelectExA@16',
- 'DlgDirSelectExW@16',
- 'DragDetect@12',
- 'DragObject@20',
- 'DrawAnimatedRects@16',
- 'DrawCaption@16',
- 'DrawEdge@16',
- 'DrawFocusRect@8',
- 'DrawFrame@16',
- 'DrawFrameControl@16',
- 'DrawIcon@16',
- 'DrawIconEx@36',
- 'DrawMenuBar@4',
- 'DrawStateA@40',
- 'DrawStateW@40',
- 'DrawTextA@20',
- 'DrawTextExA@24',
- 'DrawTextExW@24',
- 'DrawTextW@20',
- 'EditWndProc@16',
- 'EmptyClipboard@0',
- 'EnableMenuItem@12',
- 'EnableScrollBar@12',
- 'EnableWindow@8',
- 'EndDeferWindowPos@4',
- 'EndDialog@8',
- 'EndMenu@0',
- 'EndPaint@8',
- 'EndTask@12',
- 'EnumChildWindows@12',
- 'EnumClipboardFormats@4',
- 'EnumDesktopWindows@12',
- 'EnumDesktopsA@12',
- 'EnumDesktopsW@12',
- 'EnumDisplayDevicesA@16',
- 'EnumDisplayDevicesW@16',
- 'EnumDisplayMonitors@16',
- 'EnumDisplaySettingsA@12',
- 'EnumDisplaySettingsExA@16',
- 'EnumDisplaySettingsExW@16',
- 'EnumDisplaySettingsW@12',
- 'EnumPropsA@8',
- 'EnumPropsExA@12',
- 'EnumPropsExW@12',
- 'EnumPropsW@8',
- 'EnumThreadWindows@12',
- 'EnumWindowStationsA@8',
- 'EnumWindowStationsW@8',
- 'EnumWindows@8',
- 'EqualRect@8',
- 'ExcludeUpdateRgn@8',
- 'ExitWindowsEx@8',
- 'FillRect@12',
- 'FindWindowA@8',
- 'FindWindowExA@16',
- 'FindWindowExW@16',
- 'FindWindowW@8',
- 'FlashWindow@8',
- 'FlashWindowEx@4',
- 'FrameRect@12',
- 'FreeDDElParam@8',
- 'GetActiveWindow@0',
- 'GetAltTabInfo@20',
- 'GetAltTabInfoA@20',
- 'GetAltTabInfoW@20',
- 'GetAncestor@8',
- 'GetAsyncKeyState@4',
- 'GetCapture@0',
- 'GetCaretBlinkTime@0',
- 'GetCaretPos@4',
- 'GetClassInfoA@12',
- 'GetClassInfoExA@12',
- 'GetClassInfoExW@12',
- 'GetClassInfoW@12',
- 'GetClassLongA@8',
- 'GetClassLongW@8',
- 'GetClassNameA@12',
- 'GetClassNameW@12',
- 'GetClassWord@8',
- 'GetClientRect@8',
- 'GetClipCursor@4',
- 'GetClipboardData@4',
- 'GetClipboardFormatNameA@12',
- 'GetClipboardFormatNameW@12',
- 'GetClipboardOwner@0',
- 'GetClipboardSequenceNumber@0',
- 'GetClipboardViewer@0',
- 'GetComboBoxInfo@8',
- 'GetCursor@0',
- 'GetCursorInfo@4',
- 'GetCursorPos@4',
- 'GetDC@4',
- 'GetDCEx@12',
- 'GetDesktopWindow@0',
- 'GetDialogBaseUnits@0',
- 'GetDlgCtrlID@4',
- 'GetDlgItem@8',
- 'GetDlgItemInt@16',
- 'GetDlgItemTextA@16',
- 'GetDlgItemTextW@16',
- 'GetDoubleClickTime@0',
- 'GetFocus@0',
- 'GetForegroundWindow@0',
- 'GetGUIThreadInfo@8',
- 'GetGuiResources@8',
- 'GetIconInfo@8',
- 'GetInputDesktop@0',
- 'GetInputState@0',
- 'GetKBCodePage@0',
- 'GetKeyNameTextA@12',
- 'GetKeyNameTextW@12',
- 'GetKeyState@4',
- 'GetKeyboardLayout@4',
- 'GetKeyboardLayoutList@8',
- 'GetKeyboardLayoutNameA@4',
- 'GetKeyboardLayoutNameW@4',
- 'GetKeyboardState@4',
- 'GetKeyboardType@4',
- 'GetLastActivePopup@4',
- 'GetLastInputInfo@4',
- 'GetLayeredWindowAttributes@16',
- 'GetListBoxInfo@4',
- 'GetMenu@4',
- 'GetMenuBarInfo@16',
- 'GetMenuCheckMarkDimensions@0',
- 'GetMenuContextHelpId@4',
- 'GetMenuDefaultItem@12',
- 'GetMenuInfo@8',
- 'GetMenuItemCount@4',
- 'GetMenuItemID@8',
- 'GetMenuItemInfoA@16',
- 'GetMenuItemInfoW@16',
- 'GetMenuItemRect@16',
- 'GetMenuState@12',
- 'GetMenuStringA@20',
- 'GetMenuStringW@20',
- 'GetMessageA@16',
- 'GetMessageExtraInfo@0',
- 'GetMessagePos@0',
- 'GetMessageTime@0',
- 'GetMessageW@16',
- 'GetMonitorInfoA@8',
- 'GetMonitorInfoW@8',
- 'GetMouseMovePointsEx@20',
- 'GetNextDlgGroupItem@12',
- 'GetNextDlgTabItem@12',
- 'GetOpenClipboardWindow@0',
- 'GetParent@4',
- 'GetPriorityClipboardFormat@8',
- 'GetProcessDefaultLayout@4',
- 'GetProcessWindowStation@0',
- 'GetPropA@8',
- 'GetPropW@8',
- 'GetQueueStatus@4',
- 'GetRawInputBuffer@12',
- 'GetRawInputData@20',
- 'GetRawInputDeviceInfoA@16',
- 'GetRawInputDeviceInfoW@16',
- 'GetRawInputDeviceList@12',
- 'GetRegisteredRawInputDevices@12',
- 'GetScrollBarInfo@12',
- 'GetScrollInfo@12',
- 'GetScrollPos@8',
- 'GetScrollRange@16',
- 'GetShellWindow@0',
- 'GetSubMenu@8',
- 'GetSysColor@4',
- 'GetSysColorBrush@4',
- 'GetSystemMenu@8',
- 'GetSystemMetrics@4',
- 'GetTabbedTextExtentA@20',
- 'GetTabbedTextExtentW@20',
- 'GetThreadDesktop@4',
- 'GetTitleBarInfo@8',
- 'GetTopWindow@4',
- 'GetUpdateRect@12',
- 'GetUpdateRgn@12',
- 'GetUserObjectInformationA@20',
- 'GetUserObjectInformationW@20',
- 'GetUserObjectSecurity@20',
- 'GetWindow@8',
- 'GetWindowContextHelpId@4',
- 'GetWindowDC@4',
- 'GetWindowInfo@8',
- 'GetWindowLongA@8',
- 'GetWindowLongW@8',
- 'GetWindowModuleFileName@12',
- 'GetWindowModuleFileNameA@12',
- 'GetWindowModuleFileNameW@12',
- 'GetWindowPlacement@8',
- 'GetWindowRect@8',
- 'GetWindowRgn@8',
- 'GetWindowRgnBox@8',
- 'GetWindowTextA@12',
- 'GetWindowTextLengthA@4',
- 'GetWindowTextLengthW@4',
- 'GetWindowTextW@12',
- 'GetWindowThreadProcessId@8',
- 'GetWindowWord@8',
- 'GrayStringA@36',
- 'GrayStringW@36',
- 'HideCaret@4',
- 'HiliteMenuItem@16',
- 'IMPGetIMEA@8',
- 'IMPGetIMEW@8',
- 'IMPQueryIMEA@4',
- 'IMPQueryIMEW@4',
- 'IMPSetIMEA@8',
- 'IMPSetIMEW@8',
- 'ImpersonateDdeClientWindow@8',
- 'InSendMessage@0',
- 'InSendMessageEx@4',
- 'InflateRect@12',
- 'InsertMenuA@20',
- 'InsertMenuItemA@16',
- 'InsertMenuItemW@16',
- 'InsertMenuW@20',
- 'InternalGetWindowText@12',
- 'IntersectRect@12',
- 'InvalidateRect@12',
- 'InvalidateRgn@12',
- 'InvertRect@8',
- 'IsCharAlphaA@4',
- 'IsCharAlphaNumericA@4',
- 'IsCharAlphaNumericW@4',
- 'IsCharAlphaW@4',
- 'IsCharLowerA@4',
- 'IsCharLowerW@4',
- 'IsCharUpperA@4',
- 'IsCharUpperW@4',
- 'IsChild@8',
- 'IsClipboardFormatAvailable@4',
- 'IsDialogMessage@8',
- 'IsDialogMessageA@8',
- 'IsDialogMessageW@8',
- 'IsDlgButtonChecked@8',
- 'IsGUIThread@4',
- 'IsHungAppWindow@4',
- 'IsIconic@4',
- 'IsMenu@4',
- 'IsRectEmpty@4',
- 'IsWinEventHookInstalled@4',
- 'IsWindow@4',
- 'IsWindowEnabled@4',
- 'IsWindowUnicode@4',
- 'IsWindowVisible@4',
- 'IsZoomed@4',
- 'KillTimer@8',
- 'LoadAcceleratorsA@8',
- 'LoadAcceleratorsW@8',
- 'LoadBitmapA@8',
- 'LoadBitmapW@8',
- 'LoadCursorA@8',
- 'LoadCursorFromFileA@4',
- 'LoadCursorFromFileW@4',
- 'LoadCursorW@8',
- 'LoadIconA@8',
- 'LoadIconW@8',
- 'LoadImageA@24',
- 'LoadImageW@24',
- 'LoadKeyboardLayoutA@8',
- 'LoadKeyboardLayoutW@8',
- 'LoadMenuA@8',
- 'LoadMenuIndirectA@4',
- 'LoadMenuIndirectW@4',
- 'LoadMenuW@8',
- 'LoadStringA@16',
- 'LoadStringW@16',
- 'LockSetForegroundWindow@4',
- 'LockWindowUpdate@4',
- 'LockWorkStation@0',
- 'LookupIconIdFromDirectory@8',
- 'LookupIconIdFromDirectoryEx@20',
- 'MapDialogRect@8',
- 'MapVirtualKeyA@8',
- 'MapVirtualKeyExA@12',
- 'MapVirtualKeyExW@12',
- 'MapVirtualKeyW@8',
- 'MapWindowPoints@16',
- 'MenuItemFromPoint@16',
- 'MessageBeep@4',
- 'MessageBoxA@16',
- 'MessageBoxExA@20',
- 'MessageBoxExW@20',
- 'MessageBoxIndirectA@4',
- 'MessageBoxIndirectW@4',
- 'MessageBoxTimeoutA@24',
- 'MessageBoxTimeoutW@24',
- 'MessageBoxW@16',
- 'ModifyMenuA@20',
- 'ModifyMenuW@20',
- 'MonitorFromPoint@12',
- 'MonitorFromRect@8',
- 'MonitorFromWindow@8',
- 'MoveWindow@24',
- 'MsgWaitForMultipleObjects@20',
- 'MsgWaitForMultipleObjectsEx@20',
- 'NotifyWinEvent@16',
- 'OemKeyScan@4',
- 'OemToCharA@8',
- 'OemToCharBuffA@12',
- 'OemToCharBuffW@12',
- 'OemToCharW@8',
- 'OffsetRect@12',
- 'OpenClipboard@4',
- 'OpenDesktopA@16',
- 'OpenDesktopW@16',
- 'OpenIcon@4',
- 'OpenInputDesktop@12',
- 'OpenWindowStationA@12',
- 'OpenWindowStationW@12',
- 'PackDDElParam@12',
- 'PaintDesktop@4',
- 'PeekMessageA@20',
- 'PeekMessageW@20',
- 'PostMessageA@16',
- 'PostMessageW@16',
- 'PostQuitMessage@4',
- 'PostThreadMessageA@16',
- 'PostThreadMessageW@16',
- 'PrintWindow@12',
- 'PrivateExtractIconsA@32',
- 'PrivateExtractIconsW@32',
- 'PtInRect@12',
- 'RealChildWindowFromPoint@12',
- 'RealGetWindowClass@12',
- 'RealGetWindowClassA@12',
- 'RealGetWindowClassW@12',
- 'RedrawWindow@16',
- 'RegisterClassA@4',
- 'RegisterClassExA@4',
- 'RegisterClassExW@4',
- 'RegisterClassW@4',
- 'RegisterClipboardFormatA@4',
- 'RegisterClipboardFormatW@4',
- 'RegisterDeviceNotificationA@12',
- 'RegisterDeviceNotificationW@12',
- 'RegisterHotKey@16',
- 'RegisterRawInputDevices@12',
- 'RegisterShellHookWindow@4',
- 'RegisterWindowMessageA@4',
- 'RegisterWindowMessageW@4',
- 'ReleaseCapture@0',
- 'ReleaseDC@8',
- 'RemoveMenu@12',
- 'RemovePropA@8',
- 'RemovePropW@8',
- 'ReplyMessage@4',
- 'ReuseDDElParam@20',
- 'ScreenToClient@8',
- 'ScrollDC@28',
- 'ScrollWindow@20',
- 'ScrollWindowEx@32',
- 'SendDlgItemMessageA@20',
- 'SendDlgItemMessageW@20',
- 'SendIMEMessageExA@8',
- 'SendIMEMessageExW@8',
- 'SendInput@12',
- 'SendMessageA@16',
- 'SendMessageCallbackA@24',
- 'SendMessageCallbackW@24',
- 'SendMessageTimeoutA@28',
- 'SendMessageTimeoutW@28',
- 'SendMessageW@16',
- 'SendNotifyMessageA@16',
- 'SendNotifyMessageW@16',
- 'SetActiveWindow@4',
- 'SetCapture@4',
- 'SetCaretBlinkTime@4',
- 'SetCaretPos@8',
- 'SetClassLongA@12',
- 'SetClassLongW@12',
- 'SetClassWord@12',
- 'SetClipboardData@8',
- 'SetClipboardViewer@4',
- 'SetCursor@4',
- 'SetCursorPos@8',
- 'SetDebugErrorLevel@4',
- 'SetDeskWallpaper@4',
- 'SetDlgItemInt@16',
- 'SetDlgItemTextA@12',
- 'SetDlgItemTextW@12',
- 'SetDoubleClickTime@4',
- 'SetFocus@4',
- 'SetForegroundWindow@4',
- 'SetKeyboardState@4',
- 'SetLastErrorEx@8',
- 'SetLayeredWindowAttributes@16',
- 'SetMenu@8',
- 'SetMenuContextHelpId@8',
- 'SetMenuDefaultItem@12',
- 'SetMenuInfo@8',
- 'SetMenuItemBitmaps@20',
- 'SetMenuItemInfoA@16',
- 'SetMenuItemInfoW@16',
- 'SetMessageExtraInfo@4',
- 'SetMessageQueue@4',
- 'SetParent@8',
- 'SetProcessDefaultLayout@4',
- 'SetProcessWindowStation@4',
- 'SetPropA@12',
- 'SetPropW@12',
- 'SetRect@20',
- 'SetRectEmpty@4',
- 'SetScrollInfo@16',
- 'SetScrollPos@16',
- 'SetScrollRange@20',
- 'SetShellWindow@4',
- 'SetSysColors@12',
- 'SetSystemCursor@8',
- 'SetThreadDesktop@4',
- 'SetTimer@16',
- 'SetUserObjectInformationA@16',
- 'SetUserObjectInformationW@16',
- 'SetUserObjectSecurity@12',
- 'SetWinEventHook@28',
- 'SetWindowContextHelpId@8',
- 'SetWindowLongA@12',
- 'SetWindowLongW@12',
- 'SetWindowPlacement@8',
- 'SetWindowPos@28',
- 'SetWindowRgn@12',
- 'SetWindowTextA@8',
- 'SetWindowTextW@8',
- 'SetWindowWord@12',
- 'SetWindowsHookA@8',
- 'SetWindowsHookExA@16',
- 'SetWindowsHookExW@16',
- 'SetWindowsHookW@8',
- 'ShowCaret@4',
- 'ShowCursor@4',
- 'ShowOwnedPopups@8',
- 'ShowScrollBar@12',
- 'ShowWindow@8',
- 'ShowWindowAsync@8',
- 'SubtractRect@12',
- 'SwapMouseButton@4',
- 'SwitchDesktop@4',
- 'SwitchToThisWindow@8',
- 'SystemParametersInfoA@16',
- 'SystemParametersInfoW@16',
- 'TabbedTextOutA@32',
- 'TabbedTextOutW@32',
- 'TileChildWindows@8',
- 'TileWindows@20',
- 'ToAscii@20',
- 'ToAsciiEx@24',
- 'ToUnicode@24',
- 'ToUnicodeEx@28',
- 'TrackMouseEvent@4',
- 'TrackPopupMenu@28',
- 'TrackPopupMenuEx@24',
- 'TranslateAccelerator@12',
- 'TranslateAcceleratorA@12',
- 'TranslateAcceleratorW@12',
- 'TranslateMDISysAccel@8',
- 'TranslateMessage@4',
- 'UnhookWinEvent@4',
- 'UnhookWindowsHook@8',
- 'UnhookWindowsHookEx@4',
- 'UnionRect@12',
- 'UnloadKeyboardLayout@4',
- 'UnpackDDElParam@16',
- 'UnregisterClassA@8',
- 'UnregisterClassW@8',
- 'UnregisterDeviceNotification@4',
- 'UnregisterHotKey@8',
- 'UpdateLayeredWindow@36',
- 'UpdateWindow@4',
- 'UserHandleGrantAccess@12',
- 'ValidateRect@8',
- 'ValidateRgn@8',
- 'VkKeyScanA@4',
- 'VkKeyScanExA@8',
- 'VkKeyScanExW@8',
- 'VkKeyScanW@4',
- 'WINNLSEnableIME@8',
- 'WINNLSGetEnableStatus@4',
- 'WINNLSGetIMEHotkey@4',
- 'WaitForInputIdle@8',
- 'WaitMessage@0',
- 'WinHelpA@16',
- 'WinHelpW@16',
- 'WindowFromDC@4',
- 'WindowFromPoint@8',
- 'keybd_event@16',
- 'mouse_event@20',
- 'wsprintfA',
- 'wsprintfW',
- 'wvsprintfA@12',
- 'wvsprintfW@12',
- ]
-}
diff --git a/build/win/importlibs/x86/user32.winxp.lib b/build/win/importlibs/x86/user32.winxp.lib
deleted file mode 100644
index deb5577..0000000
--- a/build/win/importlibs/x86/user32.winxp.lib
+++ /dev/null
Binary files differ
diff --git a/build/win/reorder-imports.py b/build/win/reorder-imports.py
deleted file mode 100755
index 281668f..0000000
--- a/build/win/reorder-imports.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-import glob
-import optparse
-import os
-import shutil
-import subprocess
-import sys
-
-def reorder_imports(input_dir, output_dir, architecture):
- """Run swapimports.exe on the initial chrome.exe, and write to the output
- directory. Also copy over any related files that might be needed
- (pdbs, manifests etc.).
- """
-
- input_image = os.path.join(input_dir, 'chrome.exe')
- output_image = os.path.join(output_dir, 'chrome.exe')
-
- swap_exe = os.path.join(
- __file__,
- '..\\..\\..\\third_party\\syzygy\\binaries\\exe\\swapimport.exe')
-
- args = [swap_exe, '--input-image=%s' % input_image,
- '--output-image=%s' % output_image, '--overwrite', '--no-logo']
-
- if architecture == 'x64':
- args.append('--x64');
-
- args.append('chrome_elf.dll');
-
- subprocess.call(args)
-
- for fname in glob.iglob(os.path.join(input_dir, 'chrome.exe.*')):
- shutil.copy(fname, os.path.join(output_dir, os.path.basename(fname)))
- return 0
-
-
-def main(argv):
- usage = 'reorder_imports.py -i <input_dir> -o <output_dir> -a <target_arch>'
- parser = optparse.OptionParser(usage=usage)
- parser.add_option('-i', '--input', help='reorder chrome.exe in DIR',
- metavar='DIR')
- parser.add_option('-o', '--output', help='write new chrome.exe to DIR',
- metavar='DIR')
- parser.add_option('-a', '--arch', help='architecture of build (optional)',
- default='ia32')
- opts, args = parser.parse_args()
-
- if not opts.input or not opts.output:
- parser.error('Please provide and input and output directory')
- return reorder_imports(opts.input, opts.output, opts.arch)
-
-if __name__ == "__main__":
- sys.exit(main(sys.argv[1:]))
diff --git a/build/win_is_xtree_patched.py b/build/win_is_xtree_patched.py
deleted file mode 100755
index 3f1994f..0000000
--- a/build/win_is_xtree_patched.py
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 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.
-
-"""Determines if the VS xtree header has been patched to disable C4702."""
-
-import os
-
-
-def IsPatched():
- # TODO(scottmg): For now, just return if we're using the packaged toolchain
- # script (because we know it's patched). Another case could be added here to
- # query the active VS installation and actually check the contents of xtree.
- # http://crbug.com/346399.
- return int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', 1)) == 1
-
-
-def DoMain(_):
- """Hook to be called from gyp without starting a separate python
- interpreter."""
- return "1" if IsPatched() else "0"
-
-
-if __name__ == '__main__':
- print DoMain([])