# -*- 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 := $(call gb_CustomTarget_get_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: