diff options
author | jww@chromium.org <jww@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 05:40:40 +0000 |
---|---|---|
committer | jww@chromium.org <jww@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-09 05:40:40 +0000 |
commit | 59cb1bbbb1dc55679dc89755caf1eab43c87ce2c (patch) | |
tree | 502eda973f5b8118ede6d831c5c7c914861f8964 /build | |
parent | fcc82579d56e7fc62e0803e229dce133e4a8e523 (diff) | |
download | chromium_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-x | build/build-ctags.sh | 49 |
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 |