2013-08-21 06:44:58 +04:00
|
|
|
#!/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
|
|
|
|
|
|
|
|
|
2014-01-18 20:21:14 +04:00
|
|
|
builder = landmine_utils.builder
|
2013-08-21 06:44:58 +04:00
|
|
|
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':
|
2014-08-12 19:10:38 +04:00
|
|
|
print 'Clobber: To delete generated class files (we just use jars now).'
|
2013-08-21 06:44:58 +04:00
|
|
|
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).'
|
2013-12-17 01:48:08 +04:00
|
|
|
if platform() in ('win', 'mac'):
|
|
|
|
print ('Improper dependency for create_nmf.py broke in r240802, '
|
|
|
|
'fixed in r240860.')
|
2013-08-21 06:44:58 +04:00
|
|
|
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."
|
2014-01-18 06:03:57 +04:00
|
|
|
if (platform() == 'win' and builder() == 'ninja' and
|
2014-02-06 06:44:55 +04:00
|
|
|
gyp_msvs_version().startswith('2013')):
|
2014-01-18 06:03:57 +04:00
|
|
|
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."
|
2013-08-21 06:44:58 +04:00
|
|
|
print 'Need to clobber everything due to an IDL change in r154579 (blink)'
|
2014-06-06 15:25:13 +04:00
|
|
|
print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
|
2014-02-13 19:53:08 +04:00
|
|
|
if (platform() != 'ios'):
|
|
|
|
print 'Clobber to get rid of obselete test plugin after r248358'
|
2014-06-04 18:26:03 +04:00
|
|
|
print 'Clobber to rebuild GN files for V8'
|
2014-07-03 03:11:11 +04:00
|
|
|
print 'Need to clobber everything due to build_nexe change in nacl r13424'
|
2014-08-02 02:08:49 +04:00
|
|
|
print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
|
2014-08-06 03:21:53 +04:00
|
|
|
print 'blink_resources.grd changed: crbug.com/400860'
|
2013-08-21 06:44:58 +04:00
|
|
|
|
|
|
|
|
|
|
|
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())
|