blob: ca59842fd582f22fd3054ac5ec173c1eadfbc50a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# -*- 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_PY := $(SRCDIR)/solenv/bin/gentoken.py
sw_INC := $(gb_CustomTarget_workdir)/sw/generated
# static pattern rule
$(sw_INC)/TextBlockTokens.gperf \
$(sw_INC)/BlockListTokens.gperf : $(sw_INC)/%.gperf : $(sw_SRC)/%.txt $(sw_PY) \
| $(call gb_ExternalExecutable_get_dependencies,python)
mkdir -p $(@D)
$(call gb_ExternalExecutable_get_command,python) $(sw_PY) $< $@
# appending when wrapping with wsl.exe is broken, will always replace from start instead of add
# https://github.com/microsoft/WSL/issues/4400 so create them as separate intermediates
$(sw_INC)/TextBlockTokens.processed : $(sw_INC)/TextBlockTokens.gperf
$(GPERF) --compare-strncmp --readonly-tables --class-name=TextBlockTokens \
--word-array-name=textBlockList --enum $(sw_INC)/TextBlockTokens.gperf > $@
$(sw_INC)/BlockListTokens.processed : $(sw_INC)/BlockListTokens.gperf
$(GPERF) --compare-strncmp --readonly-tables -T $(sw_INC)/BlockListTokens.gperf \
--class-name=BlockListTokens --word-array-name=blockListList > $@
$(sw_INC)/tokens.cxx : sw_INC:=$(call gb_Helper_wsl_path,$(sw_INC))
$(sw_INC)/tokens.cxx : $(sw_INC)/TextBlockTokens.processed $(sw_INC)/BlockListTokens.processed
sed -e '/^#line/d' -e 's/(char\*)0/(char\*)0, XML_TOKEN_INVALID/g' $^ > $@
$(call gb_CustomTarget_get_target,sw/generated) : $(sw_INC)/tokens.cxx
# vim: set noet sw=4 ts=4:
|