blob: eb59367e12b06b0b92c8276f3d057b302979765d [file] [log] [blame]
James Robinson646469d2014-10-03 15:33:28 -07001#!/usr/bin/env python
2# Copyright 2013 The Chromium Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""
7This file emits the list of reasons why a particular build needs to be clobbered
8(or a list of 'landmines').
9"""
10
11import sys
12
13import landmine_utils
14
15
16builder = landmine_utils.builder
17distributor = landmine_utils.distributor
18gyp_defines = landmine_utils.gyp_defines
19gyp_msvs_version = landmine_utils.gyp_msvs_version
20platform = landmine_utils.platform
21
22
23def print_landmines():
24 """
25 ALL LANDMINES ARE EMITTED FROM HERE.
26 """
27 if (distributor() == 'goma' and platform() == 'win32' and
28 builder() == 'ninja'):
29 print 'Need to clobber winja goma due to backend cwd cache fix.'
30 if platform() == 'android':
31 print 'Clobber: To delete newly generated mojo class files.'
James Robinson7f480212014-10-31 10:28:08 -070032 print 'Clobber to ensure that recipe tests do not break (issue 680923002).'
James Robinson646469d2014-10-03 15:33:28 -070033 if platform() == 'win' and builder() == 'ninja':
34 print 'Compile on cc_unittests fails due to symbols removed in r185063.'
35 if platform() == 'linux' and builder() == 'ninja':
36 print 'Builders switching from make to ninja will clobber on this.'
37 if platform() == 'mac':
38 print 'Switching from bundle to unbundled dylib (issue 14743002).'
39 if platform() in ('win', 'mac'):
40 print ('Improper dependency for create_nmf.py broke in r240802, '
41 'fixed in r240860.')
42 if (platform() == 'win' and builder() == 'ninja' and
43 gyp_msvs_version() == '2012' and
44 gyp_defines().get('target_arch') == 'x64' and
45 gyp_defines().get('dcheck_always_on') == '1'):
46 print "Switched win x64 trybots from VS2010 to VS2012."
47 if (platform() == 'win' and builder() == 'ninja' and
48 gyp_msvs_version().startswith('2013')):
49 print "Switched win from VS2010 to VS2013."
50 print "Update to VS2013 Update 2."
Benjamin Lerman57998902014-11-18 16:06:02 +010051 print "Update to VS2013 Update 4."
James Robinson646469d2014-10-03 15:33:28 -070052 print 'Need to clobber everything due to an IDL change in r154579 (blink)'
53 print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
54 if (platform() != 'ios'):
55 print 'Clobber to get rid of obselete test plugin after r248358'
56 print 'Clobber to rebuild GN files for V8'
57 print 'Need to clobber everything due to build_nexe change in nacl r13424'
58 print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
59 print 'blink_resources.grd changed: crbug.com/400860'
60 print 'ninja dependency cycle: crbug.com/408192'
61 if platform() == 'android':
James Robinson30d547e2014-10-23 18:20:06 -070062 print 'Delete stale generated .java files yet again. crbug.com/349592'
James Robinson61650152014-10-26 23:24:55 -070063 print 'Clobber to delete incompatible object binary format with NDK r10c'
James Robinson1ae030a2014-11-07 08:32:47 -080064 print 'Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).'
James Robinson6a64b812014-12-03 13:38:42 -080065 print 'Another clobber for missing NaCl gyp deps (crbug.com/427427).'
James Robinson9127e722014-12-29 14:41:55 -080066 print 'Clobber to fix GN not picking up increased ID range (crbug.com/444902)'
James Robinson646469d2014-10-03 15:33:28 -070067
68
69def main():
70 print_landmines()
71 return 0
72
73
74if __name__ == '__main__':
75 sys.exit(main())