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

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 12
13 THIS_DIR="$(dirname "${0}")" 13 THIS_DIR="$(dirname "${0}")"
14 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm" 14 LLVM_DIR="${THIS_DIR}/../../../third_party/llvm"
15 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build" 15 LLVM_BUILD_DIR="${LLVM_DIR}/../llvm-build"
16 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap" 16 LLVM_BOOTSTRAP_DIR="${LLVM_DIR}/../llvm-bootstrap"
17 CLANG_DIR="${LLVM_DIR}/tools/clang" 17 CLANG_DIR="${LLVM_DIR}/tools/clang"
18 CLANG_TOOLS_EXTRA_DIR="${CLANG_DIR}/tools/extra"
18 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt" 19 COMPILER_RT_DIR="${LLVM_DIR}/projects/compiler-rt"
19 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk" 20 ANDROID_NDK_DIR="${LLVM_DIR}/../android_tools/ndk"
20 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision" 21 STAMP_FILE="${LLVM_BUILD_DIR}/cr_build_revision"
21 22
22 # ${A:-a} returns $A if it's set, a else. 23 # ${A:-a} returns $A if it's set, a else.
23 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project} 24 LLVM_REPO_URL=${LLVM_URL:-https://llvm.org/svn/llvm-project}
24 25
25 # Die if any command dies. 26 # Die if any command dies.
26 set -e 27 set -e
27 28
28 OS="$(uname -s)" 29 OS="$(uname -s)"
29 30
30 # Parse command line options. 31 # Parse command line options.
31 force_local_build= 32 force_local_build=
32 mac_only= 33 mac_only=
33 run_tests= 34 run_tests=
34 bootstrap= 35 bootstrap=
35 with_android=yes 36 with_android=yes
37 with_tools_extra=
36 if [[ "${OS}" = "Darwin" ]]; then 38 if [[ "${OS}" = "Darwin" ]]; then
37 with_android= 39 with_android=
38 fi 40 fi
39 41
40 while [[ $# > 0 ]]; do 42 while [[ $# > 0 ]]; do
41 case $1 in 43 case $1 in
42 --bootstrap) 44 --bootstrap)
43 bootstrap=yes 45 bootstrap=yes
44 ;; 46 ;;
45 --force-local-build) 47 --force-local-build)
46 force_local_build=yes 48 force_local_build=yes
47 ;; 49 ;;
48 --mac-only) 50 --mac-only)
49 mac_only=yes 51 mac_only=yes
50 ;; 52 ;;
51 --run-tests) 53 --run-tests)
52 run_tests=yes 54 run_tests=yes
53 ;; 55 ;;
54 --without-android) 56 --without-android)
55 with_android= 57 with_android=
56 ;; 58 ;;
59 --with-tools-extra)
60 with_tools_extra=yes
61 ;;
57 --help) 62 --help)
58 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] " 63 echo "usage: $0 [--force-local-build] [--mac-only] [--run-tests] "
59 echo "--bootstrap: First build clang with CC, then with itself." 64 echo "--bootstrap: First build clang with CC, then with itself."
60 echo "--force-local-build: Don't try to download prebuilt binaries." 65 echo "--force-local-build: Don't try to download prebuilt binaries."
61 echo "--mac-only: Do initial download only on Mac systems." 66 echo "--mac-only: Do initial download only on Mac systems."
62 echo "--run-tests: Run tests after building. Only for local builds." 67 echo "--run-tests: Run tests after building. Only for local builds."
63 echo "--without-android: Don't build ASan Android runtime library." 68 echo "--without-android: Don't build ASan Android runtime library."
69 echo "--with-tools-extra: Also build the clang-tools-extra repository."
64 exit 1 70 exit 1
65 ;; 71 ;;
66 esac 72 esac
67 shift 73 shift
68 done 74 done
69 75
70 # --mac-only prevents the initial download on non-mac systems, but if clang has 76 # --mac-only prevents the initial download on non-mac systems, but if clang has
71 # already been downloaded in the past, this script keeps it up to date even if 77 # already been downloaded in the past, this script keeps it up to date even if
72 # --mac-only is passed in and the system isn't a mac. People who don't like this 78 # --mac-only is passed in and the system isn't a mac. People who don't like this
73 # can just delete their third_party/llvm-build directory. 79 # can just delete their third_party/llvm-build directory.
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 svn co --force "${LLVM_REPO_URL}/llvm/trunk@${CLANG_REVISION}" "${LLVM_DIR}" 235 svn co --force "${LLVM_REPO_URL}/llvm/trunk@${CLANG_REVISION}" "${LLVM_DIR}"
230 fi 236 fi
231 237
232 echo Getting clang r"${CLANG_REVISION}" in "${CLANG_DIR}" 238 echo Getting clang r"${CLANG_REVISION}" in "${CLANG_DIR}"
233 svn co --force "${LLVM_REPO_URL}/cfe/trunk@${CLANG_REVISION}" "${CLANG_DIR}" 239 svn co --force "${LLVM_REPO_URL}/cfe/trunk@${CLANG_REVISION}" "${CLANG_DIR}"
234 240
235 echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}" 241 echo Getting compiler-rt r"${CLANG_REVISION}" in "${COMPILER_RT_DIR}"
236 svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \ 242 svn co --force "${LLVM_REPO_URL}/compiler-rt/trunk@${CLANG_REVISION}" \
237 "${COMPILER_RT_DIR}" 243 "${COMPILER_RT_DIR}"
238 244
245 if [[ -n "${with_tools_extra}" ]]; then
246 echo Getting clang-tools-extra r"${CLANG_REVISION}" in \
247 "${CLANG_TOOLS_EXTRA_DIR}"
248 svn co --force "${LLVM_REPO_URL}/clang-tools-extra/trunk@${CLANG_REVISION}" \
249 "${CLANG_TOOLS_EXTRA_DIR}"
250 else
251 rm -rf "${CLANG_TOOLS_EXTRA_DIR}"
Nico 2013/02/12 02:05:24 Since you went down this route: Do you want to run
dcheng 2013/02/12 02:09:22 I don't expect people to be making changes in this
252 fi
253
239 # Echo all commands. 254 # Echo all commands.
240 set -x 255 set -x
241 256
242 NUM_JOBS=3 257 NUM_JOBS=3
243 if [[ "${OS}" = "Linux" ]]; then 258 if [[ "${OS}" = "Linux" ]]; then
244 NUM_JOBS="$(grep -c "^processor" /proc/cpuinfo)" 259 NUM_JOBS="$(grep -c "^processor" /proc/cpuinfo)"
245 elif [ "${OS}" = "Darwin" ]; then 260 elif [ "${OS}" = "Darwin" ]; then
246 NUM_JOBS="$(sysctl -n hw.ncpu)" 261 NUM_JOBS="$(sysctl -n hw.ncpu)"
247 fi 262 fi
248 263
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 if [[ -n "$run_tests" ]]; then 344 if [[ -n "$run_tests" ]]; then
330 # Run a few tests. 345 # Run a few tests.
331 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts" 346 "${PLUGIN_SRC_DIR}/tests/test.sh" "${LLVM_BUILD_DIR}/Release+Asserts"
332 cd "${LLVM_BUILD_DIR}" 347 cd "${LLVM_BUILD_DIR}"
333 make check-all 348 make check-all
334 cd - 349 cd -
335 fi 350 fi
336 351
337 # After everything is done, log success for this revision. 352 # After everything is done, log success for this revision.
338 echo "${CLANG_REVISION}" > "${STAMP_FILE}" 353 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