Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: tools/clang/scripts/update.py

Issue 2609683002: clang update script: change --tools to --extra-tools (Closed)
Patch Set: . Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « docs/clang_tool_refactoring.md ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 """This script is used to download prebuilt clang binaries. 6 """This script is used to download prebuilt clang binaries.
7 7
8 It is also used by package.py to build the prebuilt clang binaries.""" 8 It is also used by package.py to build the prebuilt clang binaries."""
9 9
10 import argparse 10 import argparse
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
626 if deployment_target: 626 if deployment_target:
627 deployment_env = os.environ.copy() 627 deployment_env = os.environ.copy()
628 deployment_env['MACOSX_DEPLOYMENT_TARGET'] = deployment_target 628 deployment_env['MACOSX_DEPLOYMENT_TARGET'] = deployment_target
629 629
630 cmake_args = [] 630 cmake_args = []
631 # TODO(thakis): Unconditionally append this to base_cmake_args instead once 631 # TODO(thakis): Unconditionally append this to base_cmake_args instead once
632 # compiler-rt can build with clang-cl on Windows (http://llvm.org/PR23698) 632 # compiler-rt can build with clang-cl on Windows (http://llvm.org/PR23698)
633 cc_args = base_cmake_args if sys.platform != 'win32' else cmake_args 633 cc_args = base_cmake_args if sys.platform != 'win32' else cmake_args
634 if cc is not None: cc_args.append('-DCMAKE_C_COMPILER=' + cc) 634 if cc is not None: cc_args.append('-DCMAKE_C_COMPILER=' + cc)
635 if cxx is not None: cc_args.append('-DCMAKE_CXX_COMPILER=' + cxx) 635 if cxx is not None: cc_args.append('-DCMAKE_CXX_COMPILER=' + cxx)
636 chrome_tools = list(set(['plugins', 'blink_gc_plugin'] + args.extra_tools))
636 cmake_args += base_cmake_args + [ 637 cmake_args += base_cmake_args + [
637 '-DLLVM_BINUTILS_INCDIR=' + binutils_incdir, 638 '-DLLVM_BINUTILS_INCDIR=' + binutils_incdir,
638 '-DCMAKE_C_FLAGS=' + ' '.join(cflags), 639 '-DCMAKE_C_FLAGS=' + ' '.join(cflags),
639 '-DCMAKE_CXX_FLAGS=' + ' '.join(cxxflags), 640 '-DCMAKE_CXX_FLAGS=' + ' '.join(cxxflags),
640 '-DCMAKE_EXE_LINKER_FLAGS=' + ' '.join(ldflags), 641 '-DCMAKE_EXE_LINKER_FLAGS=' + ' '.join(ldflags),
641 '-DCMAKE_SHARED_LINKER_FLAGS=' + ' '.join(ldflags), 642 '-DCMAKE_SHARED_LINKER_FLAGS=' + ' '.join(ldflags),
642 '-DCMAKE_MODULE_LINKER_FLAGS=' + ' '.join(ldflags), 643 '-DCMAKE_MODULE_LINKER_FLAGS=' + ' '.join(ldflags),
643 '-DCMAKE_INSTALL_PREFIX=' + LLVM_BUILD_DIR, 644 '-DCMAKE_INSTALL_PREFIX=' + LLVM_BUILD_DIR,
644 # TODO(thakis): Remove this once official builds pass -Wl,--build-id 645 # TODO(thakis): Remove this once official builds pass -Wl,--build-id
645 # explicitly, https://crbug.com/622775 646 # explicitly, https://crbug.com/622775
646 '-DENABLE_LINKER_BUILD_ID=ON', 647 '-DENABLE_LINKER_BUILD_ID=ON',
647 '-DCHROMIUM_TOOLS_SRC=%s' % os.path.join(CHROMIUM_DIR, 'tools', 'clang'), 648 '-DCHROMIUM_TOOLS_SRC=%s' % os.path.join(CHROMIUM_DIR, 'tools', 'clang'),
648 '-DCHROMIUM_TOOLS=%s' % ';'.join(args.tools)] 649 '-DCHROMIUM_TOOLS=%s' % ';'.join(chrome_tools)]
649 650
650 EnsureDirExists(LLVM_BUILD_DIR) 651 EnsureDirExists(LLVM_BUILD_DIR)
651 os.chdir(LLVM_BUILD_DIR) 652 os.chdir(LLVM_BUILD_DIR)
652 RmCmakeCache('.') 653 RmCmakeCache('.')
653 RunCommand(['cmake'] + cmake_args + [LLVM_DIR], 654 RunCommand(['cmake'] + cmake_args + [LLVM_DIR],
654 msvc_arch='x64', env=deployment_env) 655 msvc_arch='x64', env=deployment_env)
655 656
656 if args.gcc_toolchain: 657 if args.gcc_toolchain:
657 # Copy in the right stdlibc++.so.6 so clang can start. 658 # Copy in the right stdlibc++.so.6 so clang can start.
658 if not os.path.exists(os.path.join(LLVM_BUILD_DIR, 'lib')): 659 if not os.path.exists(os.path.join(LLVM_BUILD_DIR, 'lib')):
659 os.mkdir(os.path.join(LLVM_BUILD_DIR, 'lib')) 660 os.mkdir(os.path.join(LLVM_BUILD_DIR, 'lib'))
660 libstdcpp = subprocess.check_output( 661 libstdcpp = subprocess.check_output(
661 [cxx] + cxxflags + ['-print-file-name=libstdc++.so.6']).rstrip() 662 [cxx] + cxxflags + ['-print-file-name=libstdc++.so.6']).rstrip()
662 CopyFile(libstdcpp, os.path.join(LLVM_BUILD_DIR, 'lib')) 663 CopyFile(libstdcpp, os.path.join(LLVM_BUILD_DIR, 'lib'))
663 664
664 RunCommand(['ninja'], msvc_arch='x64') 665 RunCommand(['ninja'], msvc_arch='x64')
665 666
666 if args.tools: 667 if chrome_tools:
667 # If any Chromium tools were built, install those now. 668 # If any Chromium tools were built, install those now.
668 RunCommand(['ninja', 'cr-install'], msvc_arch='x64') 669 RunCommand(['ninja', 'cr-install'], msvc_arch='x64')
669 670
670 if sys.platform == 'darwin': 671 if sys.platform == 'darwin':
671 # See http://crbug.com/256342 672 # See http://crbug.com/256342
672 RunCommand(['strip', '-x', os.path.join(LLVM_BUILD_DIR, 'bin', 'clang')]) 673 RunCommand(['strip', '-x', os.path.join(LLVM_BUILD_DIR, 'bin', 'clang')])
673 elif sys.platform.startswith('linux'): 674 elif sys.platform.startswith('linux'):
674 RunCommand(['strip', os.path.join(LLVM_BUILD_DIR, 'bin', 'clang')]) 675 RunCommand(['strip', os.path.join(LLVM_BUILD_DIR, 'bin', 'clang')])
675 676
676 VeryifyVersionOfBuiltClangMatchesVERSION() 677 VeryifyVersionOfBuiltClangMatchesVERSION()
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 help='build LLVM Gold plugin with LTO') 840 help='build LLVM Gold plugin with LTO')
840 parser.add_argument('--llvm-force-head-revision', action='store_true', 841 parser.add_argument('--llvm-force-head-revision', action='store_true',
841 help=('use the revision in the repo when printing ' 842 help=('use the revision in the repo when printing '
842 'the revision')) 843 'the revision'))
843 parser.add_argument('--print-revision', action='store_true', 844 parser.add_argument('--print-revision', action='store_true',
844 help='print current clang revision and exit.') 845 help='print current clang revision and exit.')
845 parser.add_argument('--print-clang-version', action='store_true', 846 parser.add_argument('--print-clang-version', action='store_true',
846 help='print current clang version (e.g. x.y.z) and exit.') 847 help='print current clang version (e.g. x.y.z) and exit.')
847 parser.add_argument('--run-tests', action='store_true', 848 parser.add_argument('--run-tests', action='store_true',
848 help='run tests after building; only for local builds') 849 help='run tests after building; only for local builds')
849 parser.add_argument('--tools', nargs='*', 850 parser.add_argument('--extra-tools', '--tools', nargs='*',
850 help='select which chrome tools to build', 851 help='select additional chrome tools to build')
851 default=['plugins', 'blink_gc_plugin'])
852 parser.add_argument('--without-android', action='store_false', 852 parser.add_argument('--without-android', action='store_false',
853 help='don\'t build Android ASan runtime (linux only)', 853 help='don\'t build Android ASan runtime (linux only)',
854 dest='with_android', 854 dest='with_android',
855 default=sys.platform.startswith('linux')) 855 default=sys.platform.startswith('linux'))
856 args = parser.parse_args() 856 args = parser.parse_args()
857 857
858 if args.lto_gold_plugin and not args.bootstrap: 858 if args.lto_gold_plugin and not args.bootstrap:
859 print '--lto-gold-plugin requires --bootstrap' 859 print '--lto-gold-plugin requires --bootstrap'
860 return 1 860 return 1
861 if args.lto_gold_plugin and not sys.platform.startswith('linux'): 861 if args.lto_gold_plugin and not sys.platform.startswith('linux'):
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 args.force_local_build = True 907 args.force_local_build = True
908 if 'OS=android' not in os.environ.get('GYP_DEFINES', ''): 908 if 'OS=android' not in os.environ.get('GYP_DEFINES', ''):
909 # Only build the Android ASan rt on ToT bots when targetting Android. 909 # Only build the Android ASan rt on ToT bots when targetting Android.
910 args.with_android = False 910 args.with_android = False
911 911
912 return UpdateClang(args) 912 return UpdateClang(args)
913 913
914 914
915 if __name__ == '__main__': 915 if __name__ == '__main__':
916 sys.exit(main()) 916 sys.exit(main())
OLDNEW
« no previous file with comments | « docs/clang_tool_refactoring.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698