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

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

Issue 12213081: Teach update.sh how to optionally install clang-tools-extra. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 7 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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 bash 1 #!/usr/bin/env bash
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 will check out llvm and clang into third_party/llvm and build it. 6 # This script will check out llvm and clang into third_party/llvm and build it.
7 7
8 # Do NOT CHANGE this if you don't know what you're doing -- see 8 # Do NOT CHANGE this if you don't know what you're doing -- see
9 # https://code.google.com/p/chromium/wiki/UpdatingClang 9 # https://code.google.com/p/chromium/wiki/UpdatingClang
10 # Reverting problematic clang rolls is safe, though. 10 # Reverting problematic clang rolls is safe, though.
11 CLANG_REVISION=170392 11 CLANG_REVISION=170392
12 # ASan Mac builders are pinned to this revision, see http://crbug.com/170629. 12 # ASan Mac builders are pinned to this revision, see http://crbug.com/170629.
13 CLANG_ASAN_MAC_REVISION=170392 13 CLANG_ASAN_MAC_REVISION=170392
14 14
15 THIS_DIR="$(dirname "${0}")" 15 THIS_DIR="$(dirname "${0}")"
16 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" 16 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm"
17 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build" 17 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build"
18 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap" 18 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap"
19 CLANG_DIR="${LLVM_DIR}/tools/clang" 19 CLANG_DIR="${LLVM_DIR}/tools/clang"
20 CLANG_TOOLS_EXTRA_DIR="${CLANG_DIR}/tools/extra"
20 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt" 21 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt"
21 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk" 22 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk"
22 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision" 23 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision"
23 24
24 # ${A:-a} returns $A if it's set, a else. 25 # ${A:-a} returns $A if it's set, a else.
25 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project} 26 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project}
26 27
27 # Die if any command dies. 28 # Die if any command dies.
28 set -e 29 set -e
29 30
30 OS="$(uname -s)" 31 OS="$(uname -s)"
31 32
32 # Parse command line options. 33 # Parse command line options.
33 force_local_build= 34 force_local_build=
34 mac_only= 35 mac_only=
35 run_tests= 36 run_tests=
36 bootstrap= 37 bootstrap=
37 with_android=yes 38 with_android=yes
38 is_asan_mac_builder= 39 is_asan_mac_builder=
40 with_tools_extra=
39 if [[ "${OS}" = "Darwin" ]]; then 41 if [[ "${OS}" = "Darwin" ]]; then
40 with_android= 42 with_android=
41 fi 43 fi
42 44
43 while [[ $# > 0 ]]; do 45 while [[ $# > 0 ]]; do
44 case $1 in 46 case $1 in
45 --bootstrap) 47 --bootstrap)
46 bootstrap=yes 48 bootstrap=yes
47 ;; 49 ;;
48 --force-local-build) 50 --force-local-build)
49 force_local_build=yes 51 force_local_build=yes
50 ;; 52 ;;
51 --mac-only) 53 --mac-only)
52 mac_only=yes 54 mac_only=yes
53 ;; 55 ;;
54 --run-tests) 56 --run-tests)
55 run_tests=yes 57 run_tests=yes
56 ;; 58 ;;
57 --without-android) 59 --without-android)
58 with_android= 60 with_android=
59 ;; 61 ;;
60 --is-asan-mac-builder) 62 --is-asan-mac-builder)
61 is_asan_mac_builder=yes 63 is_asan_mac_builder=yes
62 ;; 64 ;;
65 --with-tools-extra)
66 with_tools_extra=yes
67 ;;
63 --help) 68 --help)
64 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] " 69 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] "
65 echo "--bootstrap: First build clang with CC, then with itself." 70 echo "--bootstrap: First build clang with CC, then with itself."
66 echo "--force-local-build: Don't try to download prebuilt binaries." 71 echo "--force-local-build: Don't try to download prebuilt binaries."
67 echo "--mac-only: Do initial download only on Mac systems." 72 echo "--mac-only: Do initial download only on Mac systems."
68 echo "--run-tests: Run tests after building. Only for local builds." 73 echo "--run-tests: Run tests after building. Only for local builds."
69 echo "--without-android: Don't build ASan Android runtime library." 74 echo "--without-android: Don't build ASan Android runtime library."
70 echo "--is-asan-mac-builder: Use older Clang to build ASan on Mac." 75 echo "--is-asan-mac-builder: Use older Clang to build ASan on Mac."
76 echo "--with-tools-extra: Also build the clang-tools-extra repository."
71 exit 1 77 exit 1
72 ;; 78 ;;
73 esac 79 esac
74 shift 80 shift
75 done 81 done
76 82
77 # Are we on a Chrome buildbot running ASan? 83 # Are we on a Chrome buildbot running ASan?
78 function on_asan_mac_host { 84 function on_asan_mac_host {
79 HOST="$(uname -n)" 85 HOST="$(uname -n)"
80 # Chrome Mac ASan Builder. 86 # Chrome Mac ASan Builder.
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 svn co --force "${LLVM_REPO_URL}/llvm/trunk@${CLANG_REVISION}" "${LLVM_DIR}" 268 svn co --force "${LLVM_REPO_URL}/llvm/trunk@${CLANG_REVISION}" "${LLVM_DIR}"
263 fi 269 fi
264 270
265 echo Getting clang r"${CLANG_REVISION}" in "${CLANG_DIR}" 271 echo Getting clang r"${CLANG_REVISION}" in "${CLANG_DIR}"
266 svn co --force "${LLVM_REPO_URL}/cfe/trunk@${CLANG_REVISION}" "${CLANG_DIR}" 272 svn co --force "${LLVM_REPO_URL}/cfe/trunk@${CLANG_REVISION}" "${CLANG_DIR}"
267 273
268 echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}" 274 echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}"
269 svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \ 275 svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \
270 "${COMPILER_RT_DIR}" 276 "${COMPILER_RT_DIR}"
271 277
278 if [[ -n "${with_tools_extra}" ]]; then
279 echo Getting clang-tools-extra r"${CLANG_REVISION}" in \
280 "${CLANG_TOOLS_EXTRA_DIR}"
281 svn co --force "${LLVM_REPO_URL}/clang-tools-extra/trunk@${CLANG_REVISION}" \
282 "${CLANG_TOOLS_EXTRA_DIR}"
283 else
284 rm -rf "${CLANG_TOOLS_EXTRA_DIR}"
285 fi
286
272 # Echo all commands. 287 # Echo all commands.
273 set -x 288 set -x
274 289
275 NUM_JOBS=3 290 NUM_JOBS=3
276 if [[ "${OS}" = "Linux" ]]; then 291 if [[ "${OS}" = "Linux" ]]; then
277 NUM_JOBS="$(grep -c "^processor" /proc/cpuinfo)" 292 NUM_JOBS="$(grep -c "^processor" /proc/cpuinfo)"
278 elif [ "${OS}" = "Darwin" ]; then 293 elif [ "${OS}" = "Darwin" ]; then
279 NUM_JOBS="$(sysctl -n hw.ncpu)" 294 NUM_JOBS="$(sysctl -n hw.ncpu)"
280 fi 295 fi
281 296
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 # Run a few tests. 382 # Run a few tests.
368 PLUGIN_SRC_DIR="${THIS_DIR}/../plugins" 383 PLUGIN_SRC_DIR="${THIS_DIR}/../plugins"
369 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts" 384 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts"
370 cd "${LLVM_BUILD_DIR}" 385 cd "${LLVM_BUILD_DIR}"
371 make check-all 386 make check-all
372 cd - 387 cd -
373 fi 388 fi
374 389
375 # After everything is done, log success for this revision. 390 # After everything is done, log success for this revision.
376 echo "${CLANG_REVISION}" > "${STAMP_FILE}" 391 echo "${CLANG_REVISION}" > "${STAMP_FILE}"
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698