chromium-src-build/get_landmines.py

78 строки
2.7 KiB
Python
Исходник Обычный вид История

#!/usr/bin/env 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 file emits the list of reasons why a particular build needs to be clobbered
(or a list of 'landmines').
"""
import optparse
import sys
import landmine_utils
builder = landmine_utils.builder
distributor = landmine_utils.distributor
gyp_defines = landmine_utils.gyp_defines
gyp_msvs_version = landmine_utils.gyp_msvs_version
platform = landmine_utils.platform
def print_landmines(target):
"""
ALL LANDMINES ARE EMITTED FROM HERE.
target can be one of {'Release', 'Debug', 'Debug_x64', 'Release_x64'}.
"""
if (distributor() == 'goma' and platform() == 'win32' and
builder() == 'ninja'):
print 'Need to clobber winja goma due to backend cwd cache fix.'
if platform() == 'android':
print 'Clobber: To delete generated class files (we just use jars now).'
if platform() == 'win' and builder() == 'ninja':
print 'Compile on cc_unittests fails due to symbols removed in r185063.'
if platform() == 'linux' and builder() == 'ninja':
print 'Builders switching from make to ninja will clobber on this.'
if platform() == 'mac':
print 'Switching from bundle to unbundled dylib (issue 14743002).'
if platform() in ('win', 'mac'):
print ('Improper dependency for create_nmf.py broke in r240802, '
'fixed in r240860.')
if (platform() == 'win' and builder() == 'ninja' and
gyp_msvs_version() == '2012' and
gyp_defines().get('target_arch') == 'x64' and
gyp_defines().get('dcheck_always_on') == '1'):
print "Switched win x64 trybots from VS2010 to VS2012."
if (platform() == 'win' and builder() == 'ninja' and
gyp_msvs_version().startswith('2013')):
print "Switched win from VS2010 to VS2013."
Revert 271737 "Revert 271721 "VS2013 Update 2"" https://src.chromium.org/viewvc/chrome?view=rev&revision=271919 fixes the compiler crash, http://src.chromium.org/viewvc/chrome?view=rev&revision=271780 fixes the bug in landmines that didn't allow the initial land/revert to go smoothly. Should be A-OK this time. > Revert 271721 "VS2013 Update 2" > > static_library build ICEing on some builders on mini_installer. > > > VS2013 Update 2 > > > > As discussed in the linked bug, the toolchain2013.py script in > > depot_tools is no longer workable (because the update for Update 2 is > > supplied as a .msp that must be applied against a system-installed > > VS2013). > > > > As such, the Express hash here is not updated. > > > > The hash zip referenced here was built as follows: > > - Install VS2013 Update 2 on a clean VM > > - Copy DIA SDK\, VC\ > > - Copy DLLs from VC\redist to sys32\ and sys64\ > > - Copy win8sdk unchanged from previous .zip. > > - Delete various unused arm\ subdirectories > > - Delete the IDE-only Snippets, etc. subdirectories in VC\ > > - Patch VC\include\xtree to disable warning 4702 per request in > > http://crbug.com/346399 . > > > > A followup change will be to write a script that does these steps > > semi-automatically, hopefully for Express too, though there is the > > added complication of the WDK/ATL/MFC hacking required there. In > > particular, this script will not be useful for a dev to actually run > > as part of runhooks, but will be a bit useful for deployment/ > > documentation of the above process. > > > > In the interim there are no extremely-pressing reasons for Express > > users to update to Update2 that I'm aware of, so they get non-Update2 > > for now. > > > > R=iannucci@chromium.org > > BUG=372451,346399,371847,339215,350639 > > > > Review URL: https://codereview.chromium.org/284663003 > > TBR=scottmg@chromium.org > > Review URL: https://codereview.chromium.org/297753002 TBR=scottmg@chromium.org Review URL: https://codereview.chromium.org/295093004 git-svn-id: http://src.chromium.org/svn/trunk/src/build@271921 4ff67af0-8c30-449e-8e8b-ad334ec8d88c
2014-05-21 21:10:43 +04:00
print "Update to VS2013 Update 2."
print 'Need to clobber everything due to an IDL change in r154579 (blink)'
print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
if (platform() != 'ios'):
print 'Clobber to get rid of obselete test plugin after r248358'
print 'Clobber to rebuild GN files for V8'
print 'Need to clobber everything due to build_nexe change in nacl r13424'
print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
print 'blink_resources.grd changed: crbug.com/400860'
def main():
parser = optparse.OptionParser()
parser.add_option('-t', '--target',
help=='Target for which the landmines have to be emitted')
options, args = parser.parse_args()
if args:
parser.error('Unknown arguments %s' % args)
print_landmines(options.target)
return 0
if __name__ == '__main__':
sys.exit(main())