summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorjww@chromium.org <jww@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 05:40:40 +0000
committerjww@chromium.org <jww@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-09 05:40:40 +0000
commit59cb1bbbb1dc55679dc89755caf1eab43c87ce2c (patch)
tree502eda973f5b8118ede6d831c5c7c914861f8964 /build
parentfcc82579d56e7fc62e0803e229dce133e4a8e523 (diff)
downloadchromium_src-59cb1bbbb1dc55679dc89755caf1eab43c87ce2c.zip
chromium_src-59cb1bbbb1dc55679dc89755caf1eab43c87ce2c.tar.gz
chromium_src-59cb1bbbb1dc55679dc89755caf1eab43c87ce2c.tar.bz2
Add a simple script for building a ctags DB in a Chromium checkout.
Review URL: https://codereview.chromium.org/26314003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227679 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rwxr-xr-xbuild/build-ctags.sh49
1 files changed, 49 insertions, 0 deletions
diff --git a/build/build-ctags.sh b/build/build-ctags.sh
new file mode 100755
index 0000000..825da27
--- /dev/null
+++ b/build/build-ctags.sh
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# Copyright 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+if [[ a"`ctags --version | head -1 | grep \"^Exuberant Ctags\"`" == "a" ]]; then
+ cat <<EOF
+ You must be using Exuberant Ctags, not just standard GNU ctags. If you are on
+ Debian or a related flavor of Linux, you may want to try running
+ apt-get install exuberant-ctags.
+EOF
+ exit
+fi
+
+CHROME_SRC_DIR="$PWD"
+
+fail() {
+ echo "Failed to create ctags for $1"
+ exit 1
+}
+
+ctags_cmd() {
+ echo "ctags --languages=C++ $1 --exclude=.git -R -f .tmp_tags"
+}
+
+build_dir() {
+ local extraexcludes=""
+ if [[ a"$1" == "a--extra-excludes" ]]; then
+ extraexcludes="--exclude=third_party --exclude=build --exclude=out"
+ shift
+ fi
+
+ cd "$CHROME_SRC_DIR/$1" || fail $1
+ # Redirect error messages so they aren't seen because they are almost always
+ # errors about components that you just happen to have not built (NaCl, for
+ # example).
+ $(ctags_cmd "$extraexcludes") 2> /dev/null || fail $1
+ mv -f .tmp_tags .tags
+}
+
+# We always build the top level but leave all submodules as optional.
+build_dir --extra-excludes "" "top level"
+
+# Build any other directies that are listed on the command line.
+for dir in $@; do
+ build_dir "$1"
+ shift
+done