13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#!/usr/bin/env python
23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)# found in the LICENSE file.
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)"""
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)This file emits the list of reasons why a particular build needs to be clobbered
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)(or a list of 'landmines').
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)"""
103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)import sys
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)import landmine_utils
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)builder = landmine_utils.builder
173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)distributor = landmine_utils.distributor
183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)gyp_defines = landmine_utils.gyp_defines
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)gyp_msvs_version = landmine_utils.gyp_msvs_version
203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)platform = landmine_utils.platform
213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
236e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)def print_landmines():
243551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  """
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  ALL LANDMINES ARE EMITTED FROM HERE.
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  """
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (distributor() == 'goma' and platform() == 'win32' and
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      builder() == 'ninja'):
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    print 'Need to clobber winja goma due to backend cwd cache fix.'
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if platform() == 'android':
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    print 'Clobber: To delete generated mojo class files.'
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if platform() == 'win' and builder() == 'ninja':
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    print 'Compile on cc_unittests fails due to symbols removed in r185063.'
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if platform() == 'linux' and builder() == 'ninja':
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    print 'Builders switching from make to ninja will clobber on this.'
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if platform() == 'mac':
373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    print 'Switching from bundle to unbundled dylib (issue 14743002).'
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  if platform() in ('win', 'mac'):
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    print ('Improper dependency for create_nmf.py broke in r240802, '
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)           'fixed in r240860.')
413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  if (platform() == 'win' and builder() == 'ninja' and
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      gyp_msvs_version() == '2012' and
433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      gyp_defines().get('target_arch') == 'x64' and
443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      gyp_defines().get('dcheck_always_on') == '1'):
453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    print "Switched win x64 trybots from VS2010 to VS2012."
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  if (platform() == 'win' and builder() == 'ninja' and
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gyp_msvs_version().startswith('2013')):
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    print "Switched win from VS2010 to VS2013."
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)    print "Update to VS2013 Update 2."
503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  print 'Need to clobber everything due to an IDL change in r154579 (blink)'
5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  if (platform() != 'ios'):
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    print 'Clobber to get rid of obselete test plugin after r248358'
5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    print 'Clobber to rebuild GN files for V8'
55116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  print 'Need to clobber everything due to build_nexe change in nacl r13424'
565f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
575f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  print 'blink_resources.grd changed: crbug.com/400860'
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  print 'ninja dependency cycle: crbug.com/408192'
593551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
603551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
613551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)def main():
626e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)  print_landmines()
633551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  return 0
643551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
653551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
663551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)if __name__ == '__main__':
673551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  sys.exit(main())
68