summaryrefslogtreecommitdiffstats
path: root/solenv/bin/create-tags
diff options
context:
space:
mode:
Diffstat (limited to 'solenv/bin/create-tags')
-rwxr-xr-xsolenv/bin/create-tags47
1 files changed, 47 insertions, 0 deletions
diff --git a/solenv/bin/create-tags b/solenv/bin/create-tags
new file mode 100755
index 000000000..4adf3db11
--- /dev/null
+++ b/solenv/bin/create-tags
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+ctags="ctags $@"
+saloptions="-ISAL_DELETED_FUNCTION -ISAL_OVERRIDE -ISAL_FINAL"
+omnicppoptions="--c++-kinds=+p --fields=+iaS --extra=+q"
+
+if LC_ALL=C ${ctags} -D "foo=bar" --license 2>&1 >/dev/null | grep -q -- 'ctags: Unknown option: -D'; then
+ echo "note: your ctags does not support defining macros with -D"
+ no_defines=" "
+fi
+
+$ctags -h "+.hdl.hrc" --langmap=c:+.hrc.src,c++:+.hdl $saloptions $omnicppoptions \
+ ${no_defines:-"-D CPPUNIT_TEST_FIXTURE(TestClass, TestName)=class TestName : public TestClass {};"} \
+ --languages=-HTML,Java,JavaScript \
+ --langdef=UNOIDL \
+ --langmap=UNOIDL:.idl \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*interface[ \t]*([a-zA-Z0-9_]+[ \t]*::[ \t]*)*([a-zA-Z0-9_]+)[ \t]*(:[^:]|\{|$)/\3/i,interface/" \
+ --regex-UNOIDL="/^[ \t]*([a-zA-Z0-9:]+)[ \t]+([a-zA-Z0-9]+)\(.*\)/\2/f,function/" \
+ --regex-UNOIDL="/^[ \t]*\[.*property.*\][ \t]+([a-zA-Z0-9_]+)[ \t]+([a-zA-Z0-9]+);/\2/p,property/" \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*service[ \t]+([a-zA-Z0-9_]+)[ \t]*(:[^:]|\{|$)/\2/g,service/" \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*singleton[ \t]+([a-zA-Z0-9_]+)[ \t]*(:[^:]|\{|$)/\2/g,singleton/" \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*struct[ \t]+([a-zA-Z0-9_]+)[ \t]*(:[^:]|\{|\<|$)/\2/s,struct/" \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*enum[ \t]+([a-zA-Z0-9_]+)[ \t]*(\{|$)/\2/e,enum/" \
+ --regex-UNOIDL="/^[ \t]*(published)?[ \t]*exception[ \t]+([a-zA-Z0-9_]+)[ \t]*(:[^:]|\{|$)/\2/x,exception/" \
+ --regex-UNOIDL="/^[ \t]*([a-zA-Z0-9_]+)[ \t]+([a-zA-Z0-9_]+);/\2/m,member/" \
+ -R --exclude=instdir --exclude=instdir_for_build --exclude=workdir --exclude=workdir_for_build \
+ --exclude=external --totals=yes ${SRCDIR:-*}
+
+if test -d workdir_for_build; then
+ w=workdir_for_build
+else
+ w=workdir
+fi
+
+$ctags -h "+.hdl.hrc" --langmap=c:+.hrc.src,c++:+.hdl $saloptions $omnicppoptions \
+ --languages=-HTML,Java,JavaScript \
+ -R --append=yes --totals=yes \
+ $w/UnoApiHeadersTarget/udkapi/normal \
+ $w/UnoApiHeadersTarget/offapi/normal \
+ $w/CustomTarget/officecfg/registry