OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """A tool to build chrome, executed by buildbot. | 6 """A tool to build chrome, executed by buildbot. |
7 | 7 |
8 When this is run, the current directory (cwd) should be the outer build | 8 When this is run, the current directory (cwd) should be the outer build |
9 directory (e.g., chrome-release/build/). | 9 directory (e.g., chrome-release/build/). |
10 | 10 |
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 env['AS'] = crosstool + '-as' | 565 env['AS'] = crosstool + '-as' |
566 env['CC'] = ccache + crosstool + '-gcc' | 566 env['CC'] = ccache + crosstool + '-gcc' |
567 env['CXX'] = ccache + crosstool + '-g++' | 567 env['CXX'] = ccache + crosstool + '-g++' |
568 env['LD'] = crosstool + '-ld' | 568 env['LD'] = crosstool + '-ld' |
569 env['RANLIB'] = crosstool + '-ranlib' | 569 env['RANLIB'] = crosstool + '-ranlib' |
570 command.append('-j%d' % jobs) | 570 command.append('-j%d' % jobs) |
571 # Don't use build-in rules. | 571 # Don't use build-in rules. |
572 command.append('-r') | 572 command.append('-r') |
573 return | 573 return |
574 | 574 |
575 if options.llvm_tsan: | |
576 supp_path = os.path.join(options.src_dir, | |
577 'tools', 'valgrind', 'tsan_v2', 'suppressions.txt') | |
578 # Do not report thread leaks when running executables compiled with TSan. | |
579 # Use the suppressions file to avoid reporting known errors during | |
580 # compilation. | |
581 # http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2 | |
582 # contains other options that might be worth adding. | |
583 env['TSAN_OPTIONS'] = 'report_thread_leaks=0 suppressions=%s' % supp_path | |
584 | |
585 if compiler in ('goma', 'goma-clang', 'jsonclang'): | 575 if compiler in ('goma', 'goma-clang', 'jsonclang'): |
586 print 'using', compiler | 576 print 'using', compiler |
587 if compiler == 'goma': | 577 if compiler == 'goma': |
588 assert options.goma_dir | 578 assert options.goma_dir |
589 env['CC'] = 'gcc' | 579 env['CC'] = 'gcc' |
590 env['CXX'] = 'g++' | 580 env['CXX'] = 'g++' |
591 env['PATH'] = ':'.join([options.goma_dir, env['PATH']]) | 581 env['PATH'] = ':'.join([options.goma_dir, env['PATH']]) |
592 elif compiler == 'goma-clang': | 582 elif compiler == 'goma-clang': |
593 assert options.goma_dir | 583 assert options.goma_dir |
594 env['CC'] = 'clang' | 584 env['CC'] = 'clang' |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 # from compile.py. | 750 # from compile.py. |
761 ninja_clobber(options.target_output_dir) | 751 ninja_clobber(options.target_output_dir) |
762 | 752 |
763 if options.verbose: | 753 if options.verbose: |
764 command.append('-v') | 754 command.append('-v') |
765 command.extend(options.build_args) | 755 command.extend(options.build_args) |
766 command.extend(args) | 756 command.extend(args) |
767 | 757 |
768 maybe_set_official_build_envvars(options, env) | 758 maybe_set_official_build_envvars(options, env) |
769 | 759 |
770 if options.llvm_tsan: | |
771 # Do not report thread leaks when running executables compiled with TSan. | |
772 # http://dev.chromium.org/developers/testing/threadsanitizer-tsan-v2 | |
773 # contains other options that might be worth adding. | |
774 env['TSAN_OPTIONS'] = 'report_thread_leaks=0' | |
775 | |
776 if options.compiler: | 760 if options.compiler: |
777 print 'using', options.compiler | 761 print 'using', options.compiler |
778 | 762 |
779 if options.compiler in ('goma', 'goma-clang', 'jsonclang'): | 763 if options.compiler in ('goma', 'goma-clang', 'jsonclang'): |
780 assert options.goma_dir | 764 assert options.goma_dir |
781 if chromium_utils.IsWindows(): | 765 if chromium_utils.IsWindows(): |
782 # rewrite cc, cxx line in output_dir\build.ninja. | 766 # rewrite cc, cxx line in output_dir\build.ninja. |
783 # in winja, ninja -t msvc is used to run $cc/$cxx to collect | 767 # in winja, ninja -t msvc is used to run $cc/$cxx to collect |
784 # dependency with "cl /showIncludes" and generates dependency info. | 768 # dependency with "cl /showIncludes" and generates dependency info. |
785 # ninja -t msvc uses environment in output_dir\environment.*, | 769 # ninja -t msvc uses environment in output_dir\environment.*, |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1245 options.target_output_dir = get_target_build_dir(options.build_tool, | 1229 options.target_output_dir = get_target_build_dir(options.build_tool, |
1246 options.src_dir, options.target, 'iphoneos' in args) | 1230 options.src_dir, options.target, 'iphoneos' in args) |
1247 options.clobber = (options.clobber or | 1231 options.clobber = (options.clobber or |
1248 landmines_triggered(options.target_output_dir)) | 1232 landmines_triggered(options.target_output_dir)) |
1249 | 1233 |
1250 return main(options, args) | 1234 return main(options, args) |
1251 | 1235 |
1252 | 1236 |
1253 if '__main__' == __name__: | 1237 if '__main__' == __name__: |
1254 sys.exit(real_main()) | 1238 sys.exit(real_main()) |
OLD | NEW |