diff options
author | Ben Murdoch <benm@google.com> | 2014-04-03 12:29:45 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2014-04-03 12:29:45 +0100 |
commit | e5d81f57cb97b3b6b7fccc9c5610d21eb81db09d (patch) | |
tree | f266aab56db899073b21c1edd1d0e00055b9a2cf /build | |
parent | 67e8dac6e410a019f58fc452b262a184e8e7fd12 (diff) | |
download | chromium_org-e5d81f57cb97b3b6b7fccc9c5610d21eb81db09d.tar.gz |
Merge from Chromium at DEPS revision 261286
This commit was generated by merge_to_master.py.
Change-Id: Iea9643ce91618057f128e9a5b62c07be152f2b89
Diffstat (limited to 'build')
-rw-r--r-- | build/all.gyp | 13 | ||||
-rw-r--r-- | build/android/ant/create-test-jar.js | 65 | ||||
-rwxr-xr-x | build/android/buildbot/bb_device_status_check.py | 6 | ||||
-rwxr-xr-x | build/android/buildbot/bb_run_bot.py | 2 | ||||
-rwxr-xr-x | build/android/envsetup.sh | 34 | ||||
-rw-r--r-- | build/android/pylib/android_commands.py | 80 | ||||
-rw-r--r-- | build/android/pylib/device/device_blacklist.py | 52 | ||||
-rw-r--r-- | build/build_config.h | 2 | ||||
-rw-r--r-- | build/common.gypi | 30 | ||||
-rwxr-xr-x | build/gyp_chromium | 2 | ||||
-rw-r--r-- | build/ios/grit_whitelist.txt | 2 | ||||
-rw-r--r-- | build/java_apk.gypi | 7 | ||||
-rw-r--r-- | build/util/LASTCHANGE | 2 | ||||
-rw-r--r-- | build/util/LASTCHANGE.blink | 2 |
14 files changed, 148 insertions, 151 deletions
diff --git a/build/all.gyp b/build/all.gyp index ee57a18116..1b9d5fe7a9 100644 --- a/build/all.gyp +++ b/build/all.gyp @@ -140,13 +140,6 @@ '../chrome/chrome.gyp:linux_packages_<(channel)', ], }], - ['chromeos==0', { - 'dependencies': [ - '../third_party/cros_dbus_cplusplus/cros_dbus_cplusplus.gyp:*', - '../third_party/libmtp/libmtp.gyp:*', - '../third_party/mtpd/mtpd.gyp:*', - ], - }], ['enable_ipc_fuzzer==1', { 'dependencies': [ '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*', @@ -574,7 +567,6 @@ '../chrome/chrome.gyp:chrome', # Dependencies of pyauto_functional tests. '../remoting/remoting.gyp:remoting_webapp', - '../chrome/chrome.gyp:pyautolib', ], 'conditions': [ ['OS=="mac"', { @@ -610,7 +602,7 @@ { # This target contains everything we need to run tests on the special # device-equipped WebRTC bots. We have device-requiring tests in - # PyAuto, browser_tests and content_browsertests. + # browser_tests and content_browsertests. 'target_name': 'chromium_builder_webrtc', 'type': 'none', 'dependencies': [ @@ -1064,6 +1056,8 @@ '../chrome/chrome.gyp:browser_tests', '../cloud_print/cloud_print.gyp:cloud_print_unittests', '../components/components_tests.gyp:components_unittests', + '../content/content_shell_and_tests.gyp:content_browsertests', + '../content/content_shell_and_tests.gyp:content_shell', '../content/content_shell_and_tests.gyp:content_unittests', '../crypto/crypto.gyp:crypto_unittests', '../device/device_tests.gyp:device_unittests', @@ -1075,6 +1069,7 @@ '../printing/printing.gyp:printing_unittests', '../remoting/remoting.gyp:remoting_unittests', '../sql/sql.gyp:sql_unittests', + '../sync/sync.gyp:sync_unit_tests', '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests', '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests', '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests', diff --git a/build/android/ant/create-test-jar.js b/build/android/ant/create-test-jar.js deleted file mode 100644 index 855b47e205..0000000000 --- a/build/android/ant/create-test-jar.js +++ /dev/null @@ -1,65 +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. - -/** - * Combines classes from javac.custom.classpath property and ${out.dir}/classes - * into a single jar file ${ant.project.name}.jar and places the file in - * ${lib.java.dir}. - */ - -importClass(java.io.File); -importClass(org.apache.tools.ant.types.Reference); -importClass(org.apache.tools.ant.types.FileSet); -importClass(org.apache.tools.ant.types.ZipFileSet); -importClass(org.apache.tools.ant.taskdefs.Zip); - -var jarTask = project.createTask("jar"); - -// Do not allow duplicates in the jar, the default behavior of Jar task -// is "add" which means duplicates are allowed. -// This can cause a class file to be included multiple times, setting the -// duplicate to "preserve" ensures that only the first definition is included. - -var duplicate = Zip.Duplicate(); -duplicate.setValue("preserve"); -jarTask.setDuplicate(duplicate); - -var destPath = File(project.getProperty("TEST_JAR_PATH")); -jarTask.setDestFile(destPath); - -// Include all the jars in the classpath. -var javacCustomClasspath = - project.getReference("javac.custom.classpath").list(); - -for (var i in javacCustomClasspath) { - var fileName = javacCustomClasspath[i] - var fileExtension = fileName.split("\\.").pop(); - if(fileExtension == "jar") - { - var zipFileSet = ZipFileSet(); - zipFileSet.setIncludes("**/*.class"); - zipFileSet.setSrc(File(fileName)); - jarTask.addFileset(zipFileSet); - } -} - -// Add the compiled classes in ${out.dir}/classes. -var projectClasses = FileSet(); -projectClasses.setIncludes("**/*.class"); -projectClasses.setDir(File(project.getProperty("out.dir") + "/classes")); -jarTask.addFileset(projectClasses); - -// Exclude manifest and resource classes. -var appPackagePath = - (project.getProperty("project.app.package")).replace('.','/'); -var excludedClasses = ["R.class", "R$*.class", "Manifest.class", - "Manifest$*.class", "BuildConfig.class"] - -var exclusionString = ""; -for (var i in excludedClasses) { - exclusionString += appPackagePath+ "/" + excludedClasses[i] + " "; -} - -jarTask.setExcludes(exclusionString); -jarTask.perform(); diff --git a/build/android/buildbot/bb_device_status_check.py b/build/android/buildbot/bb_device_status_check.py index e7d8c547db..4fba850cfb 100755 --- a/build/android/buildbot/bb_device_status_check.py +++ b/build/android/buildbot/bb_device_status_check.py @@ -29,7 +29,7 @@ sys.path.append(os.path.join(os.path.dirname(__file__), '..')) from pylib import android_commands from pylib import constants from pylib.cmd_helper import GetCmdOutput - +from pylib.device import device_blacklist def DeviceInfo(serial, options): """Gathers info on a device via various adb calls. @@ -275,8 +275,8 @@ def main(): if args: parser.error('Unknown options %s' % args) - # Remove the last builds "bad devices" before checking device statuses. - android_commands.ResetBadDevices() + # Remove the last build's "bad devices" before checking device statuses. + device_blacklist.ResetBlacklist() if options.restart_usb: expected_devices = GetLastDevices(os.path.abspath(options.out_dir)) diff --git a/build/android/buildbot/bb_run_bot.py b/build/android/buildbot/bb_run_bot.py index 0d3d2755cb..aee7f0fb8a 100755 --- a/build/android/buildbot/bb_run_bot.py +++ b/build/android/buildbot/bb_run_bot.py @@ -68,7 +68,7 @@ def GetEnvironment(host_obj, testing, extra_env_vars=None): sys.exit(1) env = json.loads(json_env) env['GYP_DEFINES'] = env.get('GYP_DEFINES', '') + \ - ' fastbuild=1 use_goma=1 gomadir=%s' % bb_utils.GOMA_DIR + ' OS=android fastbuild=1 use_goma=1 gomadir=%s' % bb_utils.GOMA_DIR if host_obj.target_arch: env['GYP_DEFINES'] += ' target_arch=%s' % host_obj.target_arch extra_gyp = host_obj.extra_gyp_defines diff --git a/build/android/envsetup.sh b/build/android/envsetup.sh index 6286a1e1f9..b7ed3522f8 100755 --- a/build/android/envsetup.sh +++ b/build/android/envsetup.sh @@ -12,24 +12,8 @@ if [[ -n "$BASH_VERSION" && "${BASH_SOURCE:-$0}" == "$0" ]]; then exit 1 fi -# Source functions script. The file is in the same directory as this script. SCRIPT_DIR="$(dirname "${BASH_SOURCE:-$0}")" -# Get host architecture, and abort if it is 32-bit. -host_arch=$(uname -m) -case "${host_arch}" in - x86_64) # pass - ;; - i?86) - echo "ERROR: Android build requires a 64-bit host build machine." - return 1 - ;; - *) - echo "ERROR: Unsupported host architecture (${host_arch})." - echo "Try running this script on a Linux/x86_64 machine instead." - return 1 -esac - CURRENT_DIR="$(readlink -f "${SCRIPT_DIR}/../../")" if [[ -z "${CHROME_SRC}" ]]; then # If $CHROME_SRC was not set, assume current directory is CHROME_SRC. @@ -64,9 +48,6 @@ export PATH=$PATH:${ANDROID_SDK_ROOT}/platform-tools # Must be after CHROME_SRC is set. export PATH=$PATH:${CHROME_SRC}/build/android -# The set of GYP_DEFINES to pass to gyp. -DEFINES="OS=android" - if [[ -n "$CHROME_ANDROID_OFFICIAL_BUILD" ]]; then # These defines are used by various chrome build scripts to tag the binary's # version string as 'official' in linux builds (e.g. in @@ -76,20 +57,7 @@ if [[ -n "$CHROME_ANDROID_OFFICIAL_BUILD" ]]; then export CHROME_BUILD_TYPE="_official" fi -# TODO(thakis), Jan 18 2014: Remove this after two weeks or so, after telling -# everyone to set use_goma in GYP_DEFINES instead of a GOMA_DIR env var. -if [[ -d $GOMA_DIR ]]; then - DEFINES+=" use_goma=1 gomadir=$GOMA_DIR" -fi - -export GYP_DEFINES="${DEFINES}" - -# Source a bunch of helper functions -. ${CHROME_SRC}/build/android/adb_device_functions.sh - -# Performs a gyp_chromium run to convert gyp->Makefile for android code. android_gyp() { - # This is just a simple wrapper of gyp_chromium, please don't add anything - # in this function. + echo "Please call build/gyp_chromium instead. android_gyp is going away." "${CHROME_SRC}/build/gyp_chromium" --depth="${CHROME_SRC}" --check "$@" } diff --git a/build/android/pylib/android_commands.py b/build/android/pylib/android_commands.py index d56a138460..d0fc6c9f20 100644 --- a/build/android/pylib/android_commands.py +++ b/build/android/pylib/android_commands.py @@ -39,6 +39,7 @@ import adb_interface import am_instrument_parser import errors +from pylib.device import device_blacklist # Pattern to search for the next whole line of pexpect output and capture it # into a match group. We can't use ^ and $ for line start end with pexpect, @@ -72,6 +73,15 @@ MD5SUM_DEVICE_FOLDER = constants.TEST_EXECUTABLE_DIR + '/md5sum/' MD5SUM_DEVICE_PATH = MD5SUM_DEVICE_FOLDER + 'md5sum_bin' MD5SUM_LD_LIBRARY_PATH = 'LD_LIBRARY_PATH=%s' % MD5SUM_DEVICE_FOLDER +CONTROL_USB_CHARGING_COMMANDS = [ + { + # Nexus 4 + 'witness_file': '/sys/module/pm8921_charger/parameters/disabled', + 'enable_command': 'echo 0 > /sys/module/pm8921_charger/parameters/disabled', + 'disable_command': + 'echo 1 > /sys/module/pm8921_charger/parameters/disabled', + }, +] def GetAVDs(): """Returns a list of AVDs.""" @@ -79,28 +89,23 @@ def GetAVDs(): avds = re_avd.findall(cmd_helper.GetCmdOutput(['android', 'list', 'avd'])) return avds - def ResetBadDevices(): - """Removes the file that keeps track of bad devices for a current build.""" - if os.path.exists(constants.BAD_DEVICES_JSON): - os.remove(constants.BAD_DEVICES_JSON) - + """Removes the blacklist that keeps track of bad devices for a current + build. + """ + device_blacklist.ResetBlacklist() def ExtendBadDevices(devices): - """Adds devices to BAD_DEVICES_JSON file. + """Adds devices to the blacklist that keeps track of bad devices for a + current build. - The devices listed in the BAD_DEVICES_JSON file will not be returned by + The devices listed in the bad devices file will not be returned by GetAttachedDevices. Args: - devices: list of bad devices to be added to the BAD_DEVICES_JSON file. + devices: list of bad devices to be added to the bad devices file. """ - if os.path.exists(constants.BAD_DEVICES_JSON): - with open(constants.BAD_DEVICES_JSON, 'r') as f: - bad_devices = json.load(f) - devices.extend(bad_devices) - with open(constants.BAD_DEVICES_JSON, 'w') as f: - json.dump(list(set(devices)), f) + device_blacklist.ExtendBlacklist(devices) def GetAttachedDevices(hardware=True, emulator=True, offline=False): @@ -150,12 +155,11 @@ def GetAttachedDevices(hardware=True, emulator=True, offline=False): if offline: devices = devices + offline_devices - # Remove bad devices listed in the bad_devices json file. - if os.path.exists(constants.BAD_DEVICES_JSON): - with open(constants.BAD_DEVICES_JSON, 'r') as f: - bad_devices = json.load(f) - logging.info('Avoiding bad devices %s', ' '.join(bad_devices)) - devices = [device for device in devices if device not in bad_devices] + # Remove any devices in the blacklist. + blacklist = device_blacklist.ReadBlacklist() + if len(blacklist): + logging.info('Avoiding bad devices %s', ' '.join(blacklist)) + devices = [device for device in devices if device not in blacklist] preferred_device = os.environ.get('ANDROID_SERIAL') if preferred_device in devices: @@ -290,6 +294,10 @@ class AndroidCommands(object): self._util_wrapper = '' self._system_properties = system_properties.SystemProperties(self.Adb()) self._push_if_needed_cache = {} + self._control_usb_charging_command = { + 'command': None, + 'cached': False, + } @property def system_properties(self): @@ -1830,6 +1838,38 @@ class AndroidCommands(object): logging.info('[%s]> %s', device_repr, line) self.RunShellCommand('rm %s' % temp_script_file) + def _GetControlUsbChargingCommand(self): + if self._control_usb_charging_command['cached']: + return self._control_usb_charging_command['command'] + self._control_usb_charging_command['cached'] = True + for command in CONTROL_USB_CHARGING_COMMANDS: + # Assert command is valid. + assert 'disable_command' in command + assert 'enable_command' in command + assert 'witness_file' in command + witness_file = command['witness_file'] + if self.FileExistsOnDevice(witness_file): + self._control_usb_charging_command['command'] = command + return command + return None + + def CanControlUsbCharging(self): + return self._GetControlUsbChargingCommand() is not None + + def DisableUsbCharging(self): + command = self._GetControlUsbChargingCommand() + if not command: + raise Exception('Unable to act on usb charging.') + disable_command = command['disable_command'] + self.RunShellCommand(disable_command) + + def EnableUsbCharging(self): + command = self._GetControlUsbChargingCommand() + if not command: + raise Exception('Unable to act on usb charging.') + disable_command = command['enable_command'] + self.RunShellCommand(disable_command) + class NewLineNormalizer(object): """A file-like object to normalize EOLs to '\n'. diff --git a/build/android/pylib/device/device_blacklist.py b/build/android/pylib/device/device_blacklist.py new file mode 100644 index 0000000000..b2124a74fa --- /dev/null +++ b/build/android/pylib/device/device_blacklist.py @@ -0,0 +1,52 @@ +# 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 json +import os + +from pylib import constants +_BLACKLIST_JSON = os.path.join( + constants.DIR_SOURCE_ROOT, + os.environ.get('CHROMIUM_OUT_DIR', 'out'), + 'bad_devices.json') + +def ReadBlacklist(): + """Reads the blacklist from the _BLACKLIST_JSON file. + + Returns: + A list containing bad devices. + """ + if not os.path.exists(_BLACKLIST_JSON): + return [] + + with open(_BLACKLIST_JSON, 'r') as f: + return json.load(f) + + +def WriteBlacklist(blacklist): + """Writes the provided blacklist to the _BLACKLIST_JSON file. + + Args: + blacklist: list of bad devices to write to the _BLACKLIST_JSON file. + """ + with open(_BLACKLIST_JSON, 'w') as f: + json.dump(list(set(blacklist)), f) + + +def ExtendBlacklist(devices): + """Adds devices to _BLACKLIST_JSON file. + + Args: + devices: list of bad devices to be added to the _BLACKLIST_JSON file. + """ + blacklist = ReadBlacklist() + blacklist.extend(devices) + WriteBlacklist(blacklist) + + +def ResetBlacklist(): + """Erases the _BLACKLIST_JSON file if it exists.""" + if os.path.exists(_BLACKLIST_JSON): + os.remove(_BLACKLIST_JSON) + diff --git a/build/build_config.h b/build/build_config.h index d8f5dd6658..7a208a56ee 100644 --- a/build/build_config.h +++ b/build/build_config.h @@ -107,7 +107,7 @@ #define ARCH_CPU_ARMEL 1 #define ARCH_CPU_32_BITS 1 #define ARCH_CPU_LITTLE_ENDIAN 1 -#elif defined(__arm64__) || defined(__aarch64__) +#elif defined(__aarch64__) #define ARCH_CPU_ARM_FAMILY 1 #define ARCH_CPU_ARM64 1 #define ARCH_CPU_64_BITS 1 diff --git a/build/common.gypi b/build/common.gypi index 1308a1d5a2..a75369112e 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -693,17 +693,10 @@ 'enable_autofill_dialog%': 1 }], - ['OS=="android" and android_webview_build==0', { + ['OS=="android"', { 'enable_webrtc%': 1, }], - # Disable WebRTC for building WebView as part of Android system. - # TODO(boliu): Decide if we want WebRTC, and if so, also merge - # the necessary third_party repositories. - ['OS=="android" and android_webview_build==1', { - 'enable_webrtc%': 0, - }], - ['OS=="ios"', { 'disable_ftp_support%': 1, 'enable_automation%': 0, @@ -871,7 +864,7 @@ 'enable_printing%': 0, }], - ['OS=="win" or (OS=="linux" and chromeos==0)', { + ['OS=="win" or OS=="linux" or OS=="mac"', { 'use_mojo%': 1, }], @@ -1349,6 +1342,9 @@ # Set to 1 to compile with the hole punching for the protected video. 'video_hole%': 0, + # Set to 1 to compile with MSE support for MPEG2 TS + 'enable_mpeg2ts_stream_parser%': 0, + 'conditions': [ # Enable the Syzygy optimization step for the official builds. ['OS=="win" and buildtype=="Official" and syzyasan!=1', { @@ -4314,6 +4310,12 @@ # TODO(thakis): Remove, http://crbug.com/341352 '-Wno-absolute-value', + + # This warns on selectors from Cocoa headers (-length, -set). + # cfe-dev is currently discussing the merits of this warning. + # TODO(thakis): Reevaluate what to do with this, based one + # cfe-dev discussion. + '-Wno-selector-type-mismatch', ], 'conditions': [ @@ -4344,6 +4346,16 @@ '-fcolor-diagnostics', ], }], + ['OS=="ios" and target_subarch!="arm32" and \ + "<(GENERATOR)"=="ninja"', { + 'OTHER_CFLAGS': [ + # TODO(ios): when building Chrome for iOS on 64-bit platform + # with Xcode, the -Wshorted-64-to-32 warning is automatically + # enabled. This cause failures when compiling protobuf code, + # so disable the warning. http://crbug.com/359107 + '-Wno-shorten-64-to-32', + ], + }], ], }, 'conditions': [ diff --git a/build/gyp_chromium b/build/gyp_chromium index 210df12474..ca00a54dc1 100755 --- a/build/gyp_chromium +++ b/build/gyp_chromium @@ -283,6 +283,8 @@ if __name__ == '__main__': 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)]) diff --git a/build/ios/grit_whitelist.txt b/build/ios/grit_whitelist.txt index 666af97e18..0a30875229 100644 --- a/build/ios/grit_whitelist.txt +++ b/build/ios/grit_whitelist.txt @@ -53,12 +53,10 @@ IDR_SYNC_INTERNALS_DATA_JS IDR_SYNC_INTERNALS_EVENTS_JS IDR_SYNC_INTERNALS_INDEX_HTML IDR_SYNC_INTERNALS_INDEX_JS -IDR_SYNC_INTERNALS_NOTIFICATIONS_JS IDR_SYNC_INTERNALS_SEARCH_JS IDR_SYNC_INTERNALS_SYNC_LOG_JS IDR_SYNC_INTERNALS_SYNC_NODE_BROWSER_JS IDR_SYNC_INTERNALS_SYNC_SEARCH_JS -IDR_SYNC_INTERNALS_TRAFFIC_JS IDR_THROBBER IDR_TRANSLATE_JS IDR_UPDATE_BADGE4 diff --git a/build/java_apk.gypi b/build/java_apk.gypi index ccfd9afcb1..85128103f9 100644 --- a/build/java_apk.gypi +++ b/build/java_apk.gypi @@ -153,7 +153,7 @@ # cannot be lifted in a dependent to all_dependent_settings. 'all_dependent_settings': { 'variables': { - 'apk_output_jar_path': '<(PRODUCT_DIR)/lib.java/<(jar_name)', + 'apk_output_jar_path': '<(jar_path)', }, }, 'conditions': [ @@ -614,7 +614,6 @@ 'message': 'Obfuscating <(_target_name)', 'inputs': [ '<(DEPTH)/build/android/ant/apk-obfuscate.xml', - '<(DEPTH)/build/android/ant/create-test-jar.js', '<(DEPTH)/build/android/gyp/util/build_utils.py', '<(DEPTH)/build/android/gyp/ant.py', '<(android_manifest_path)', @@ -629,19 +628,15 @@ 'action': [ 'python', '<(DEPTH)/build/android/gyp/ant.py', '-quiet', - '-DADDITIONAL_SRC_DIRS=>(additional_src_dirs)', '-DANDROID_MANIFEST=<(android_manifest_path)', '-DANDROID_SDK_JAR=<(android_sdk_jar)', '-DANDROID_SDK_ROOT=<(android_sdk_root)', '-DANDROID_SDK_VERSION=<(android_sdk_version)', '-DANDROID_SDK_TOOLS=<(android_sdk_tools)', '-DAPK_NAME=<(apk_name)', - '-DCREATE_TEST_JAR_PATH=<(DEPTH)/build/android/ant/create-test-jar.js', '-DCONFIGURATION_NAME=<(CONFIGURATION_NAME)', - '-DGENERATED_SRC_DIRS=>(generated_src_dirs)', '-DINPUT_JARS_PATHS=>(input_jars_paths)', '-DIS_TEST_APK=<(is_test_apk)', - '-DJAR_PATH=<(PRODUCT_DIR)/lib.java/<(jar_name)', '-DOBFUSCATED_JAR_PATH=<(obfuscated_jar_path)', '-DOUT_DIR=<(intermediate_dir)', '-DPROGUARD_ENABLED=<(proguard_enabled)', diff --git a/build/util/LASTCHANGE b/build/util/LASTCHANGE index bdebdb7f38..812ab0cb96 100644 --- a/build/util/LASTCHANGE +++ b/build/util/LASTCHANGE @@ -1 +1 @@ -LASTCHANGE=260540 +LASTCHANGE=261286 diff --git a/build/util/LASTCHANGE.blink b/build/util/LASTCHANGE.blink index 4e72524169..e1853cb205 100644 --- a/build/util/LASTCHANGE.blink +++ b/build/util/LASTCHANGE.blink @@ -1 +1 @@ -LASTCHANGE=170429 +LASTCHANGE=170710 |