#!/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