diff options
Diffstat (limited to 'build')
-rw-r--r-- | build/all.gyp | 14 | ||||
-rwxr-xr-x | build/build-bisect.py | 283 | ||||
-rw-r--r-- | build/common.gypi | 97 | ||||
-rw-r--r-- | build/features_override.gypi | 1 | ||||
-rwxr-xr-x | build/linux/dump_signature.py | 56 | ||||
-rw-r--r-- | build/linux/system.gyp | 24 | ||||
-rw-r--r-- | build/sanitize-mac-build-log.sed | 22 | ||||
-rwxr-xr-x | build/sanitize-mac-build-log.sh | 6 | ||||
-rw-r--r-- | build/sanitize-win-build-log.sed | 14 | ||||
-rwxr-xr-x | build/sanitize-win-build-log.sh | 6 | ||||
-rw-r--r-- | build/whitespace_file.txt | 2 |
11 files changed, 80 insertions, 445 deletions
diff --git a/build/all.gyp b/build/all.gyp index 79453dd..46d550d 100644 --- a/build/all.gyp +++ b/build/all.gyp @@ -33,7 +33,6 @@ '../third_party/ffmpeg/ffmpeg.gyp:*', '../third_party/iccjpeg/iccjpeg.gyp:*', '../third_party/icu/icu.gyp:*', - '../third_party/libjpeg/libjpeg.gyp:*', '../third_party/libpng/libpng.gyp:*', '../third_party/libwebp/libwebp.gyp:*', '../third_party/libxml/libxml.gyp:*', @@ -51,6 +50,7 @@ '../webkit/webkit.gyp:*', 'util/build_util.gyp:*', 'temp_gyp/googleurl.gyp:*', + '<(libjpeg_gyp_path):*', ], 'conditions': [ ['javascript_engine=="v8"', { @@ -197,7 +197,15 @@ ], }], ], - } + }, + { + 'target_name': 'chromium_gpu_builder', + 'type': 'none', + 'dependencies': [ + '../chrome/chrome.gyp:gpu_tests', + '../third_party/WebKit/WebKit/chromium/WebKit.gyp:DumpRenderTree', + ], + } ], 'conditions': [ ['OS=="mac"', { @@ -296,6 +304,7 @@ '../net/net.gyp:net_unittests', '../printing/printing.gyp:printing_unittests', '../remoting/remoting.gyp:remoting_unittests', + '../chrome/chrome.gyp:safe_browsing_tests', '../chrome/chrome.gyp:sync_unit_tests', '../chrome/chrome.gyp:unit_tests', '../chrome/chrome.gyp:ui_tests', @@ -391,7 +400,6 @@ '../chrome/app/locales/locales.gyp:*', '../chrome/chrome.gyp:crash_service', '../chrome/chrome.gyp:page_cycler_tests', - '../chrome/chrome.gyp:policy_templates', '../chrome/chrome.gyp:pyautolib', '../chrome/chrome.gyp:reliability_tests', '../chrome/chrome.gyp:startup_tests', diff --git a/build/build-bisect.py b/build/build-bisect.py index 84807bc..33fcb89 100755 --- a/build/build-bisect.py +++ b/build/build-bisect.py @@ -3,286 +3,9 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -"""Snapshot Build Bisect Tool - -This script bisects a snapshot archive using binary search. It starts at -a bad revision (it will try to guess HEAD) and asks for a last known-good -revision. It will then binary search across this revision range by downloading, -unzipping, and opening Chromium for you. After testing the specific revision, -it will ask you whether it is good or bad before continuing the search. -""" - -# Base URL to download snapshots from. -BUILD_BASE_URL = 'http://build.chromium.org/buildbot/snapshots/' - -# The type (platform) of the build archive. This is what's passed in to the -# '-a/--archive' option. -BUILD_ARCHIVE_TYPE = '' - -# The selected archive to bisect. -BUILD_ARCHIVE_DIR = '' - -# The location of the builds. -BUILD_ARCHIVE_URL = '/%d/' - -# Name of the build archive. -BUILD_ZIP_NAME = '' - -# Directory name inside the archive. -BUILD_DIR_NAME = '' - -# Name of the executable. -BUILD_EXE_NAME = '' - -# URL to the ViewVC commit page. -BUILD_VIEWVC_URL = 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%d' - -# Changelogs URL -CHANGELOG_URL = 'http://build.chromium.org/buildbot/' \ - 'perf/dashboard/ui/changelog.html?url=/trunk/src&range=%d:%d' - -############################################################################### - -import math -import optparse -import os -import pipes -import re -import shutil import sys -import tempfile -import urllib -import zipfile - - -def UnzipFilenameToDir(filename, dir): - """Unzip |filename| to directory |dir|.""" - zf = zipfile.ZipFile(filename) - # Make base. - pushd = os.getcwd() - try: - if not os.path.isdir(dir): - os.mkdir(dir) - os.chdir(dir) - # Extract files. - for info in zf.infolist(): - name = info.filename - if name.endswith('/'): # dir - if not os.path.isdir(name): - os.makedirs(name) - else: # file - dir = os.path.dirname(name) - if not os.path.isdir(dir): - os.makedirs(dir) - out = open(name, 'wb') - out.write(zf.read(name)) - out.close() - # Set permissions. Permission info in external_attr is shifted 16 bits. - os.chmod(name, info.external_attr >> 16L) - os.chdir(pushd) - except Exception, e: - print >>sys.stderr, e - sys.exit(1) - - -def SetArchiveVars(archive): - """Set a bunch of global variables appropriate for the specified archive.""" - global BUILD_ARCHIVE_TYPE - global BUILD_ARCHIVE_DIR - global BUILD_ZIP_NAME - global BUILD_DIR_NAME - global BUILD_EXE_NAME - global BUILD_BASE_URL - - BUILD_ARCHIVE_TYPE = archive - BUILD_ARCHIVE_DIR = 'chromium-rel-' + BUILD_ARCHIVE_TYPE - - if BUILD_ARCHIVE_TYPE in ('linux', 'linux-64', 'linux-chromiumos'): - BUILD_ZIP_NAME = 'chrome-linux.zip' - BUILD_DIR_NAME = 'chrome-linux' - BUILD_EXE_NAME = 'chrome' - elif BUILD_ARCHIVE_TYPE in ('mac'): - BUILD_ZIP_NAME = 'chrome-mac.zip' - BUILD_DIR_NAME = 'chrome-mac' - BUILD_EXE_NAME = 'Chromium.app/Contents/MacOS/Chromium' - elif BUILD_ARCHIVE_TYPE in ('xp'): - BUILD_ZIP_NAME = 'chrome-win32.zip' - BUILD_DIR_NAME = 'chrome-win32' - BUILD_EXE_NAME = 'chrome.exe' - - BUILD_BASE_URL += BUILD_ARCHIVE_DIR - -def ParseDirectoryIndex(url): - """Parses the HTML directory listing into a list of revision numbers.""" - handle = urllib.urlopen(url) - dirindex = handle.read() - handle.close() - return re.findall(r'<a href="([0-9]*)/">\1/</a>', dirindex) - -def GetRevList(good, bad): - """Gets the list of revision numbers between |good| and |bad|.""" - # Download the main revlist. - revlist = ParseDirectoryIndex(BUILD_BASE_URL) - revlist = map(int, revlist) - revlist = filter(lambda r: range(good, bad).__contains__(int(r)), revlist) - revlist.sort() - return revlist - -def TryRevision(rev, profile, args): - """Downloads revision |rev|, unzips it, and opens it for the user to test. - |profile| is the profile to use.""" - # Do this in a temp dir so we don't collide with user files. - cwd = os.getcwd() - tempdir = tempfile.mkdtemp(prefix='bisect_tmp') - os.chdir(tempdir) - - # Download the file. - download_url = BUILD_BASE_URL + (BUILD_ARCHIVE_URL % rev) + BUILD_ZIP_NAME - try: - print 'Fetching ' + download_url - urllib.urlretrieve(download_url, BUILD_ZIP_NAME) - except Exception, e: - print('Could not retrieve the download. Sorry.') - sys.exit(-1) - - # Unzip the file. - print 'Unziping ...' - UnzipFilenameToDir(BUILD_ZIP_NAME, os.curdir) - - # Tell the system to open the app. - args = ['--user-data-dir=%s' % profile] + args - flags = ' '.join(map(pipes.quote, args)) - exe = os.path.join(os.getcwd(), BUILD_DIR_NAME, BUILD_EXE_NAME) - cmd = '%s %s' % (exe, flags) - print 'Running %s' % cmd - os.system(cmd) - - os.chdir(cwd) - print 'Cleaning temp dir ...' - try: - shutil.rmtree(tempdir, True) - except Exception, e: - pass - - -def AskIsGoodBuild(rev): - """Ask the user whether build |rev| is good or bad.""" - # Loop until we get a response that we can parse. - while True: - response = raw_input('\nBuild %d is [(g)ood/(b)ad]: ' % int(rev)) - if response and response in ('g', 'b'): - return response == 'g' - -def main(): - usage = ('%prog [options] [-- chromium-options]\n' - 'Perform binary search on the snapshot builds.\n' - '\n' - 'Tip: add "-- --no-first-run" to bypass the first run prompts.') - parser = optparse.OptionParser(usage=usage) - # Strangely, the default help output doesn't include the choice list. - choices = ['mac', 'xp', 'linux', 'linux-64', 'linux-chromiumos'] - parser.add_option('-a', '--archive', - choices = choices, - help = 'The buildbot archive to bisect [%s].' % - '|'.join(choices)) - parser.add_option('-b', '--bad', type = 'int', - help = 'The bad revision to bisect to.') - parser.add_option('-g', '--good', type = 'int', - help = 'The last known good revision to bisect from.') - parser.add_option('-p', '--profile', '--user-data-dir', type = 'str', - help = 'Profile to use; this will not reset every run. ' + - 'Defaults to a clean profile.') - (opts, args) = parser.parse_args() - - if opts.archive is None: - print 'Error: missing required parameter: --archive' - print - parser.print_help() - return 1 - - if opts.bad and opts.good and (opts.good > opts.bad): - print ('The good revision (%d) must precede the bad revision (%d).\n' % - (opts.good, opts.bad)) - parser.print_help() - return 1 - - SetArchiveVars(opts.archive) - - # Pick a starting point, try to get HEAD for this. - if opts.bad: - bad_rev = opts.bad - else: - bad_rev = 0 - try: - # Location of the latest build revision number - BUILD_LATEST_URL = '%s/LATEST' % (BUILD_BASE_URL) - nh = urllib.urlopen(BUILD_LATEST_URL) - latest = int(nh.read()) - nh.close() - bad_rev = raw_input('Bad revision [HEAD:%d]: ' % latest) - if (bad_rev == ''): - bad_rev = latest - bad_rev = int(bad_rev) - except Exception, e: - print('Could not determine latest revision. This could be bad...') - bad_rev = int(raw_input('Bad revision: ')) - - # Find out when we were good. - if opts.good: - good_rev = opts.good - else: - good_rev = 0 - try: - good_rev = int(raw_input('Last known good [0]: ')) - except Exception, e: - pass - - # Get a list of revisions to bisect across. - revlist = GetRevList(good_rev, bad_rev) - if len(revlist) < 2: # Don't have enough builds to bisect - print 'We don\'t have enough builds to bisect. revlist: %s' % revlist - sys.exit(1) - - # If we don't have a |good_rev|, set it to be the first revision possible. - if good_rev == 0: - good_rev = revlist[0] - - # These are indexes of |revlist|. - good = 0 - bad = len(revlist) - 1 - last_known_good_rev = revlist[good] - - # Binary search time! - while good < bad: - candidates = revlist[good:bad] - num_poss = len(candidates) - if num_poss > 10: - print('%d candidates. %d tries left.' % - (num_poss, round(math.log(num_poss, 2)))) - else: - print('Candidates: %s' % revlist[good:bad]) - - # Cut the problem in half... - test = int((bad - good) / 2) + good - test_rev = revlist[test] - - # Let the user give this rev a spin (in her own profile, if she wants). - profile = opts.profile - if not profile: - profile = 'profile' # In a temp dir. - TryRevision(test_rev, profile, args) - if AskIsGoodBuild(test_rev): - last_known_good_rev = revlist[good] - good = test + 1 - else: - bad = test - # We're done. Let the user know the results in an official manner. - print('You are probably looking for build %d.' % revlist[bad]) - print('CHANGELOG URL:') - print(CHANGELOG_URL % (last_known_good_rev, revlist[bad])) - print('Built at revision:') - print(BUILD_VIEWVC_URL % revlist[bad]) +print "This script has been moved to tools/bisect-builds.py." +print "Please update any docs you're working from!" -if __name__ == '__main__': - sys.exit(main()) +sys.exit(1) diff --git a/build/common.gypi b/build/common.gypi index 1b260cd..e741a29 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -140,6 +140,9 @@ # Remoting compilation is enabled by default. Set to 0 to disable. 'remoting%': 1, + # Use libjpeg-turbo as the JPEG codec used by Chromium. + 'use_libjpeg_turbo%': 0, + 'library%': '<(library)', # Variable 'component' is for cases where we would like to build some @@ -317,7 +320,7 @@ # Use GConf, the GNOME configuration system. 'use_gconf%': 1, - # Use OpenSSL instead of NSS. Currently in development. + # Use OpenSSL instead of NSS. Under development: see http://crbug.com/62803 'use_openssl%': 0, 'conditions': [ @@ -400,6 +403,13 @@ }, { 'use_cups%': 0, }], + # Set the relative path from this file to the GYP file of the JPEG + # library used by Chromium. + ['use_libjpeg_turbo==1', { + 'libjpeg_gyp_path': '../third_party/libjpeg_turbo/libjpeg.gyp', + }, { + 'libjpeg_gyp_path': '../third_party/libjpeg/libjpeg.gyp', + }], # use_libjpeg_turbo==1 ], # NOTE: When these end up in the Mac bundle, we need to replace '-' for '_' @@ -541,9 +551,6 @@ }], ], }], - # Linux gyp (into scons) doesn't like target_conditions? - # TODO(???): track down why 'target_conditions' doesn't work - # on Linux gyp into scons like it does on Mac gyp into xcodeproj. ['OS=="linux"', { 'cflags': [ '-ftest-coverage', '-fprofile-arcs' ], @@ -894,73 +901,6 @@ 'ldflags': [ '-pthread', '-Wl,-z,noexecstack', ], - 'scons_variable_settings': { - 'LIBPATH': ['$LIB_DIR'], - # Linking of large files uses lots of RAM, so serialize links - # using the handy flock command from util-linux. - 'FLOCK_LINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$LINK'], - 'FLOCK_SHLINK': ['flock', '$TOP_BUILDDIR/linker.lock', '$SHLINK'], - 'FLOCK_LDMODULE': ['flock', '$TOP_BUILDDIR/linker.lock', '$LDMODULE'], - - # We have several cases where archives depend on each other in - # a cyclic fashion. Since the GNU linker does only a single - # pass over the archives we surround the libraries with - # --start-group and --end-group (aka -( and -) ). That causes - # ld to loop over the group until no more undefined symbols - # are found. In an ideal world we would only make groups from - # those libraries which we knew to be in cycles. However, - # that's tough with SCons, so we bodge it by making all the - # archives a group by redefining the linking command here. - # - # TODO: investigate whether we still have cycles that - # require --{start,end}-group. There has been a lot of - # refactoring since this was first coded, which might have - # eliminated the circular dependencies. - # - # Note: $_LIBDIRFLAGS comes before ${LINK,SHLINK,LDMODULE}FLAGS - # so that we prefer our own built libraries (e.g. -lpng) to - # system versions of libraries that pkg-config might turn up. - # TODO(sgk): investigate handling this not by re-ordering the - # flags this way, but by adding a hook to use the SCons - # ParseFlags() option on the output from pkg-config. - 'LINKCOM': [['$FLOCK_LINK', '-o', '$TARGET', - '$_LIBDIRFLAGS', '$LINKFLAGS', '$SOURCES', - '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], - 'SHLINKCOM': [['$FLOCK_SHLINK', '-o', '$TARGET', - '$_LIBDIRFLAGS', '$SHLINKFLAGS', '$SOURCES', - '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], - 'LDMODULECOM': [['$FLOCK_LDMODULE', '-o', '$TARGET', - '$_LIBDIRFLAGS', '$LDMODULEFLAGS', '$SOURCES', - '-Wl,--start-group', '$_LIBFLAGS', '-Wl,--end-group']], - 'IMPLICIT_COMMAND_DEPENDENCIES': 0, - # -rpath is only used when building with shared libraries. - 'conditions': [ - [ 'library=="shared_library"', { - 'RPATH': '$LIB_DIR', - }], - ], - }, - 'scons_import_variables': [ - 'AS', - 'CC', - 'CXX', - 'LINK', - ], - 'scons_propagate_variables': [ - 'AS', - 'CC', - 'CCACHE_DIR', - 'CXX', - 'DISTCC_DIR', - 'DISTCC_HOSTS', - 'HOME', - 'INCLUDE_SERVER_ARGS', - 'INCLUDE_SERVER_PORT', - 'LINK', - 'CHROME_BUILD_TYPE', - 'CHROMIUM_BUILD', - 'OFFICIAL_BUILD', - ], 'configurations': { 'Debug_Base': { 'variables': { @@ -1168,9 +1108,6 @@ # http://code.google.com/p/googletest/source/detail?r=446 . # TODO(thakis): Use -isystem instead (http://crbug.com/58751 ). '-Wno-unnamed-type-template-args', - # The integrated assembler chokes on one ffmpeg file. - # http://crbug.com/61931 - '-no-integrated-as', ], 'cflags!': [ # Clang doesn't seem to know know this flag. @@ -1186,9 +1123,6 @@ 'cflags': [ '-g' ], 'defines': ['USE_LINUX_BREAKPAD'], }], - ['linux_use_seccomp_sandbox==1 and buildtype!="Official"', { - 'defines': ['USE_SECCOMP_SANDBOX'], - }], ['library=="shared_library"', { # When building with shared libraries, remove the visiblity-hiding # flag. @@ -1199,6 +1133,11 @@ 'cflags': ['-fPIC'] }] ], + 'ldflags!': [ + # --as-needed confuses library interdependencies. + # See http://code.google.com/p/chromium/issues/detail?id=61430 + '-Wl,--as-needed', + ], }], ['linux_use_heapchecker==1', { 'variables': {'linux_use_tcmalloc%': 1}, @@ -1503,10 +1442,6 @@ }, }], ], - 'scons_settings': { - 'sconsbuild_dir': '<(DEPTH)/sconsbuild', - 'tools': ['ar', 'as', 'gcc', 'g++', 'gnulink', 'chromium_builders'], - }, 'xcode_settings': { # DON'T ADD ANYTHING NEW TO THIS BLOCK UNLESS YOU REALLY REALLY NEED IT! # This block adds *project-wide* configuration settings to each project diff --git a/build/features_override.gypi b/build/features_override.gypi index 5c069ea..dc59950 100644 --- a/build/features_override.gypi +++ b/build/features_override.gypi @@ -15,6 +15,7 @@ 'ENABLE_BLOB=1', 'ENABLE_BLOB_SLICE=1', 'ENABLE_CHANNEL_MESSAGING=1', + 'ENABLE_CLIENT_BASED_GEOLOCATION=0', 'ENABLE_DASHBOARD_SUPPORT=0', 'ENABLE_DATABASE=1', 'ENABLE_DATAGRID=0', diff --git a/build/linux/dump_signature.py b/build/linux/dump_signature.py deleted file mode 100755 index 37e50f4..0000000 --- a/build/linux/dump_signature.py +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/python -# -# 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. -# -# This generates symbol signatures with the same algorithm as -# src/breakpad/src/common/linux/file_id.cc@461 - -import struct -import sys -import subprocess - -if len(sys.argv) != 2: - sys.stderr.write("Error, no filename specified.\n") - sys.exit(1) - -# Shell out to objdump to get the offset of the .text section -objdump = subprocess.Popen(['objdump', '-h', sys.argv[1]], stdout = subprocess.PIPE) -(sections, _) = objdump.communicate() -if objdump.returncode != 0: - sys.stderr.write('Failed to run objdump to find .text section.\n') - sys.exit(1) - -text_section = [x for x in sections.splitlines() if '.text' in x] -if len(text_section) == 0: - sys.stderr.write('objdump failed to find a .text section.\n') - sys.exit(1) -text_section = text_section[0] -try: - file_offset = int(text_section.split()[5], 16) -except ValueError: - sys.stderr.write("Failed to parse objdump output. Here is the failing line:\n"); - sys.stderr.write(text_section) - sys.exit(1) - -bin = open(sys.argv[1]) -bin.seek(file_offset) -if bin.tell() != file_offset: - sys.stderr.write("Failed to seek to the .text segment. Truncated file?\n"); - sys.exit(1) - -data = bin.read(4096) -if len(data) != 4096: - sys.stderr.write("Error, did not read first page of data.\n"); - sys.exit(1) -bin.close() - -signature = [0] * 16 -for i in range(0, 4096): - signature[i % 16] ^= ord(data[i]) - -# Append a 0 at the end for the generation number (always 0 on Linux) -out = ('%08X%04X%04X%02X%02X%02X%02X%02X%02X%02X%02X0' % - struct.unpack('I2H8B', struct.pack('16B', *signature))) -sys.stdout.write(out) diff --git a/build/linux/system.gyp b/build/linux/system.gyp index 85f8063..39b3a11 100644 --- a/build/linux/system.gyp +++ b/build/linux/system.gyp @@ -93,7 +93,6 @@ # out of $(pkg-config --cflags nss) and GYP include paths # come after cflags on the command line. So we have these # bodges: - '-I../net/third_party/nss/ssl', # for scons '-Inet/third_party/nss/ssl', # for make '-IWebKit/chromium/net/third_party/nss/ssl', # for make in webkit '<!@(<(pkg-config) --cflags nss)', @@ -347,29 +346,6 @@ ], }, }, - { - 'target_name': 'openssl', - 'type': 'settings', - 'conditions': [ - ['use_openssl==1', { - 'direct_dependent_settings': { - 'defines': [ - # OpenSSL support is incomplete: http://crbug.com/62803. - # Defining USE_OPENSSL disables USE_NSS. - 'USE_OPENSSL', - ], - 'include_dirs': [ - '<!@(<(pkg-config) --cflags openssl)', - ], - }, - 'link_settings': { - 'libraries': [ - '<!@(<(pkg-config) --libs-only-l openssl)', - ], - }, - },], - ], - }, ], } diff --git a/build/sanitize-mac-build-log.sed b/build/sanitize-mac-build-log.sed new file mode 100644 index 0000000..d6cef78 --- /dev/null +++ b/build/sanitize-mac-build-log.sed @@ -0,0 +1,22 @@ +#!/bin/echo Use sanitize-mac-build-log.sh or sed -f + +# 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. + +# 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 + +# 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 + +# 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 new file mode 100755 index 0000000..dc743fa --- /dev/null +++ b/build/sanitize-mac-build-log.sh @@ -0,0 +1,6 @@ +#!/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 -f `dirname "${0}"`/`basename "${0}" sh`sed + diff --git a/build/sanitize-win-build-log.sed b/build/sanitize-win-build-log.sed new file mode 100644 index 0000000..d6d049c --- /dev/null +++ b/build/sanitize-win-build-log.sed @@ -0,0 +1,14 @@ +#!/bin/echo Use sanitize-win-build-log.sh or sed -f + +# 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. + +# 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]\+>// diff --git a/build/sanitize-win-build-log.sh b/build/sanitize-win-build-log.sh new file mode 100755 index 0000000..dc743fa --- /dev/null +++ b/build/sanitize-win-build-log.sh @@ -0,0 +1,6 @@ +#!/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 -f `dirname "${0}"`/`basename "${0}" sh`sed + diff --git a/build/whitespace_file.txt b/build/whitespace_file.txt index 7bd040c..ccedfae 100644 --- a/build/whitespace_file.txt +++ b/build/whitespace_file.txt @@ -6,4 +6,4 @@ This file is used for making non-code changes to trigger buildbot cycles. Make any modification below this line. ================================================================================ -I AM SOMEWHAT SPARTA +i am somewhat YELLY! |