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