Updated Spanish translation
[anjuta-git-plugin.git] / global-tags / create_global_tags.sh.in
blobd57c32752eb8e0102859ceae50c19e7722fe6f6d
1 #!/bin/bash
3 function anjuta_tags {
5 FILES=""
6 BASEDIR=`pwd`
7 PROGDIR=. # `dirname $0`
8 CFLAGS=""
9 ANJUTA_TAGS_BIN="@bindir@/anjuta-tags"
10 OUTPUT_FILE=$1
11 shift
13 if [ -x "$ANJUTA_TAGS_BIN" ]
14 then
15 for cflag in $*
17 infile=`echo $cflag | sed 's/^-I//'`
18 if [ -d "$infile" -a "$infile" != "/usr/include" -a "$infile" != "/usr/local/include" ]
19 then
20 FILES="$FILES \"$infile/*.h\" \"$infile/*/*.h\" \"$infile/*/*/*.h\""
21 elif [ ! -d "$infile" -a -e "$infile" ]
22 then
23 FILES="$FILES $infile"
25 done
26 else
27 echo "Can not execute $ANJUTA_TAGS_BIN"
28 exit 1
30 CFLAGS="$CFLAGS $*"
31 export CFLAGS
33 FILES_COUNT=`echo $FILES | wc -w`
35 echo "Creating $OUTPUT_FILE"
36 echo "Number of files to scan: $FILES_COUNT"
37 echo "Files to scan: $FILES"
39 if [ $FILES_COUNT -gt 0 ] ; then
40 rm -f $OUTPUT_FILE
41 $ANJUTA_TAGS_BIN $OUTPUT_FILE $FILES >"$OUTPUT_FILE.log" 2>&1
43 # If global tags file could not be generated
44 if [ ! -e $OUTPUT_FILE ] ; then
45 echo "WARNING: Could not create tags file $OUTPUT_FILE!" >&2
46 else
47 gzip -f $OUTPUT_FILE
52 ## FILES="\"/usr/include/*.h\" \"/usr/local/include/*.h\""
53 FILES=""
54 BASEDIR=`pwd`
55 PROGDIR=. # `dirname $0`
56 CFLAGS=""
58 echo "Generating System tags..."
60 mkdir -p "$HOME/.anjuta/tags"
62 # pkg-config libraries
63 PKG_CONFIG=`which pkg-config 2>/dev/null`
64 if ( [ ! -z $PKG_CONFIG ] && [ -x $PKG_CONFIG ] ) ; then
66 ## We are scaning .pc files directly because --cflags option
67 ## produces include paths and flags for other packages depended by
68 ## the packages, which we don't like. We only want cflags relevent
69 ## to the packages alone.
71 PKG_DEFAULT_CONFIG_PATH=`echo $PKG_CONFIG | sed -e 's/\/bin\/pkg-config/\/lib\/pkgconfig'/`
72 PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$PKG_DEFAULT_CONFIG_PATH"
73 PKG_DEFAULT_CONFIG_PATH=`echo $PKG_CONFIG | sed -e 's/\/bin\/pkg-config/\/lib64\/pkgconfig'/`
74 PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$PKG_DEFAULT_CONFIG_PATH"
76 PKG_CONFIG_PATH_PROPER=`echo $PKG_CONFIG_PATH | sed -e 's/\:/ /g'`
78 pkg_files_count=0
79 for pkg_path in $PKG_CONFIG_PATH_PROPER; do
80 for pkg_file in `find "$pkg_path" -name '*.pc' 2>/dev/null`; do
81 pkg_files_count=`expr $pkg_files_count + 1`
82 done
83 done
85 ## This line is important for the progress bar. Don't change it.
86 echo "Scanning $pkg_files_count packages"
88 for pkg_path in $PKG_CONFIG_PATH_PROPER; do
89 for pkg_file in `find "$pkg_path" -name '*.pc' 2>/dev/null`; do
90 # echo "Scanning package: $pkg_file"
91 PKG_CFLAGS=`grep -e '^\(\w\+=\|\s*Cflags:\)' "$pkg_file"|sed -e 's/Cflags:\s*"\?\(.*\)"\?\s*/echo "\1"/' -e 's/^\(\w\+\)=\("\([^"]*\)"\|\(.*\)\)/\1="\3\4"/'|sh`
92 # echo $PKG_CFLAGS
93 package=`basename "$pkg_file" '.pc'`
94 # if [ ! -e $BASEDIR/tags/$package.anjutatags.gz ] ; then
95 echo "Creating tags file: $HOME/.anjuta/tags/$package.anjutatags.gz ..."
96 anjuta_tags "$HOME/.anjuta/tags/$package.anjutatags" $PKG_CFLAGS > /dev/null
97 # fi
98 done
99 done
100 echo "Done"
101 echo "This is just a timestamp" > $HOME/.anjuta/system-tags.cache