office-gobmx/RepositoryModule_host.mk
Jan-Marek Glogowski 368c996b24 Make font-based unit test depend on instdir fonts
The current dependency is already a hack, because there is no way
I know of to depend on delivered top-level modules like more_fonts.
The original patch parses the gb_Package_MODULE_ooo_fonts list of
registered packages to add them as build dependencies.

But this is not sufficient, as it just adds the dependencies on the
installed / unpacked fonts in the workdir (actually it's just the
installer filelist), where they can't be found by the unit test
running in the instdir environment.

So this converts the depndency into a make error, if either the
filelist is missing or the included font files. But if we are in
a full run and know the more_fonts module, we simply depend on its
delivered files.

This needs some minimal changes to gbuild, as neither the delivered
file list nor the modules class names are yet available. And this
moves the fontconfig handling to extras, where the opensymbol font
is already handled.

Change-Id: I1b70a4c45ff189266ce56c57e534ddc45e7c5c19
Reviewed-on: https://gerrit.libreoffice.org/74624
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-07-05 20:03:40 +02:00

203 lines
4.6 KiB
Makefile

# -*- 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_Module_Module,libreoffice))
# These have to be included before the others for more_fonts dependencies
$(eval $(call gb_Module_add_moduledirs,libreoffice,\
$(call gb_Helper_optional,MORE_FONTS,external/more_fonts) \
extras \
))
# This makefile needs to be read first because some variables like T_LIBS
# for libmerged are cleared there and then later we append stuff to it
# through e.g. gb_Library_use_external for various libraries in libmerged.
ifneq ($(MERGELIBS),)
$(eval $(call gb_Module_add_targets,libreoffice,\
Library_merged \
))
endif
$(eval $(call gb_Module_add_moduledirs,libreoffice,\
accessibility \
android \
animations \
apple_remote \
$(call gb_Helper_optional,AVMEDIA,avmedia) \
basctl \
basegfx \
basic \
bean \
binaryurp \
bridges \
canvas \
chart2 \
cli_ure \
$(call gb_Helper_optional,DESKTOP,codemaker) \
comphelper \
configmgr \
connectivity \
cppcanvas \
cppu \
cppuhelper \
cpputools \
cui \
$(call gb_Helper_optional,DBCONNECTIVITY,dbaccess) \
desktop \
$(call gb_Helper_optional,DICTIONARIES,dictionaries) \
dtrans \
drawinglayer \
editeng \
embeddedobj \
embedserv \
eventattacher \
extensions \
external \
filter \
$(call gb_Helper_optional,DBCONNECTIVITY,forms) \
formula \
$(call gb_Helper_optional,DESKTOP,fpicker) \
framework \
$(call gb_Helper_optional,DESKTOP,helpcompiler) \
$(call gb_Helper_optional,HELP,helpcontent2) \
hwpfilter \
i18nlangtag \
i18npool \
i18nutil \
idl \
$(call gb_Helper_optional,DESKTOP,idlc) \
instsetoo_native \
io \
javaunohelper \
jurt \
jvmaccess \
jvmfwk \
librelogo \
libreofficekit \
lingucomponent \
linguistic \
lotuswordpro \
$(call gb_Helper_optional,DESKTOP,l10ntools) \
$(call gb_Helper_optional,NLPSOLVER,nlpsolver) \
o3tl \
$(call gb_Helper_optional,ODK,odk) \
offapi \
officecfg \
onlineupdate \
oovbaapi \
oox \
$(call gb_Helper_optional,OPENCL,opencl) \
package \
postprocess \
$(call gb_Helper_optional,PYUNO,pyuno) \
$(call gb_Helper_optional,QADEVOOO,qadevOOo) \
readlicense_oo \
registry \
remotebridges \
reportbuilder \
$(call gb_Helper_optional,DBCONNECTIVITY,reportdesign) \
ridljar \
sal \
salhelper \
sax \
sc \
scaddins \
sccomp \
$(call gb_Helper_optional,DESKTOP,scp2) \
scripting \
sd \
sdext \
$(call gb_Helper_optional,DESKTOP,setup_native) \
sfx2 \
shell \
slideshow \
smoketest \
solenv \
soltools \
sot \
starmath \
stoc \
store \
svl \
svtools \
svgio \
emfio \
svx \
sw \
swext \
sysui \
test \
testtools \
toolkit \
tools \
ucb \
ucbhelper \
udkapi \
$(call gb_Helper_optional,PYUNO,uitest) \
UnoControls \
unodevtools \
unoil \
unoidl \
unotest \
unotools \
unoxml \
ure \
uui \
vbahelper \
vcl \
winaccessibility \
wizards \
writerfilter \
writerperfect \
xmerge \
$(call gb_Helper_optional,DESKTOP,xmlhelp) \
xmloff \
xmlreader \
xmlscript \
xmlsecurity \
))
# Especially when building everything with symbols, the linking of the largest
# libraries takes enormous amounts of RAM. To prevent annoying OOM situations
# etc., try to prevent linking these in parallel by adding artificial build
# order dependencies here.
define repositorymodule_serialize1
$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))) \
:| $(foreach lib,$(2),$(call gb_Library_get_target,$(lib)))
endef
define repositorymodule_serialize
$(if $(filter-out 0 1,$(words $(1))),\
$(call repositorymodule_serialize1,$(firstword $(1)),$(wordlist 2,$(words $(1)),$(1))))
$(if $(strip $(1)),\
$(call repositorymodule_serialize,$(wordlist 2,$(words $(1)),$(1))))
endef
# DO NOT SORT ALPHABETICALLY: the libraries must be listed in dependency order,
# otherwise cyclic dependencies ruin everything.
# do not serialize on a partial build as that may fail due to missing deps.
# the default goal is all (see Module.mk)
ifeq (,$(filter-out all build check unitcheck slowcheck screenshot subsequentcheck uicheck,$(MAKECMDGOALS)))
$(eval $(call repositorymodule_serialize,\
scfilt \
$(call gb_Helper_optional,SCRIPTING,vbaobj) \
sc msword \
$(call gb_Helper_optional,DESKTOP,swui) \
sw sd \
$(call gb_Helper_optional,DBCONNECTIVITY,dbu) \
writerfilter cui chartcontroller chartcore oox \
$(if $(MERGELIBS), merged, \
svx svxcore xo sfx fwk svt vcl) \
))
endif
# vim: set noet sw=4 ts=4: