summaryrefslogtreecommitdiff
path: root/sw/CustomTarget_generated.mk
diff options
context:
space:
mode:
authorDaniel Sikeler <d.sikeler94@gmail.com>2014-11-10 12:23:12 +0000
committerMichael Meeks <michael.meeks@collabora.com>2014-12-04 09:39:01 +0000
commitc1e90457d2ecc6e1171b7a296ab8bd05821e39e6 (patch)
treeafe390d50ef33652cc5019226d1e47a7d4da3644 /sw/CustomTarget_generated.mk
parent14c94c97ffcb4b51974a8177a8017d620b4d9293 (diff)
fdo#80403: Writer specific AutoCorr use FastParser
Contextclasses implement XFastContextHandler Importclasses implement XFastDocumentHandler Tokens for BlockList.xml are defined in BlockListTokens.txt Tokens for content.xml are defined in TextBlockTokens.txt A perfect hash table is generated with gperf and used by the tokenhandlers Change-Id: Iff8ad5f1a4df0b808ee6fdf13f75a821596e9ee9 Reviewed-on: https://gerrit.libreoffice.org/12386 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'sw/CustomTarget_generated.mk')
-rw-r--r--sw/CustomTarget_generated.mk34
1 files changed, 34 insertions, 0 deletions
diff --git a/sw/CustomTarget_generated.mk b/sw/CustomTarget_generated.mk
new file mode 100644
index 000000000000..27527990e63c
--- /dev/null
+++ b/sw/CustomTarget_generated.mk
@@ -0,0 +1,34 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# 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/.
+#
+
+$(eval $(call gb_CustomTarget_CustomTarget,sw/generated))
+
+sw_SRC := $(SRCDIR)/sw/source/core/swg
+sw_PL := $(SRCDIR)/solenv/bin/gentoken.pl
+sw_INC := $(call gb_CustomTarget_get_workdir,sw/generated)
+
+$(sw_INC)/TextBlockTokens.gperf : $(sw_SRC)/TextBlockTokens.txt $(sw_PL)
+ mkdir -p $(sw_INC)
+ $(PERL) $(sw_PL) $(sw_SRC)/TextBlockTokens.txt $(sw_INC)/TextBlockTokens.gperf
+
+$(sw_INC)/BlockListTokens.gperf : $(sw_SRC)/BlockListTokens.txt $(sw_PL)
+ mkdir -p $(sw_INC)
+ $(PERL) $(sw_PL) $(sw_SRC)/BlockListTokens.txt $(sw_INC)/BlockListTokens.gperf
+
+$(sw_INC)/tokens.cxx : $(sw_INC)/TextBlockTokens.gperf $(sw_INC)/BlockListTokens.gperf
+ $(GPERF) --compare-strncmp --readonly-tables --output-file=$(sw_INC)/tokens.cxx \
+ --class-name=TextBlockTokens --word-array-name=textBlockList --enum $(sw_INC)/TextBlockTokens.gperf
+ $(GPERF) --compare-strncmp --readonly-tables -T $(sw_INC)/BlockListTokens.gperf \
+ --class-name=BlockListTokens --word-array-name=blockListList >> $(sw_INC)/tokens.cxx
+ sed -i -e "s/(char\*)0/(char\*)0, XML_TOKEN_INVALID/g" $(sw_INC)/tokens.cxx
+ sed -i -e "/^#line/d" $(sw_INC)/tokens.cxx
+
+$(call gb_CustomTarget_get_target,sw/generated) : $(sw_INC)/tokens.cxx
+
+# vim: set noet sw=4 ts=4: