lok: avoid expensive fetching of a property.
[LibreOffice.git] / RepositoryModule_host.mk
blob94a986ea2db736a82f88e84d707ddc9883f35b02
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
4 # This file is part of the LibreOffice project.
6 # This Source Code Form is subject to the terms of the Mozilla Public
7 # License, v. 2.0. If a copy of the MPL was not distributed with this
8 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 $(eval $(call gb_Module_Module,libreoffice))
14 # This makefile needs to be read first because some variables like T_LIBS
15 # for libmerged are cleared there and then later we append stuff to it
16 # through e.g. gb_Library_use_external for various libraries in libmerged.
17 ifneq ($(MERGELIBS),)
18 $(eval $(call gb_Module_add_targets,libreoffice,\
19 Library_merged \
21 endif
23 $(eval $(call gb_Module_add_moduledirs,libreoffice,\
24 accessibility \
25 android \
26 animations \
27 apple_remote \
28 $(call gb_Helper_optional,AVMEDIA,avmedia) \
29 basctl \
30 basegfx \
31 basic \
32 bean \
33 binaryurp \
34 bridges \
35 canvas \
36 chart2 \
37 cli_ure \
38 $(call gb_Helper_optional,DESKTOP,codemaker) \
39 comphelper \
40 configmgr \
41 connectivity \
42 cppcanvas \
43 cppu \
44 cppuhelper \
45 cpputools \
46 cui \
47 dbaccess \
48 desktop \
49 $(call gb_Helper_optional,DICTIONARIES,dictionaries) \
50 drawinglayer \
51 editeng \
52 embeddedobj \
53 embedserv \
54 eventattacher \
55 extensions \
56 external \
57 extras \
58 filter \
59 $(call gb_Helper_optional,DBCONNECTIVITY,forms) \
60 formula \
61 $(call gb_Helper_optional,DESKTOP,fpicker) \
62 framework \
63 $(call gb_Helper_optional,DESKTOP,helpcompiler) \
64 $(call gb_Helper_optional,HELP,helpcontent2) \
65 hwpfilter \
66 i18nlangtag \
67 i18npool \
68 i18nutil \
69 idl \
70 $(call gb_Helper_optional,DESKTOP,idlc) \
71 instsetoo_native \
72 io \
73 javaunohelper \
74 jurt \
75 jvmaccess \
76 jvmfwk \
77 $(call gb_Helper_optional,LIBRELOGO,librelogo) \
78 libreofficekit \
79 lingucomponent \
80 linguistic \
81 lotuswordpro \
82 $(call gb_Helper_optional,DESKTOP,l10ntools) \
83 $(call gb_Helper_optional,NLPSOLVER,nlpsolver) \
84 o3tl \
85 $(call gb_Helper_optional,ODK,odk) \
86 offapi \
87 officecfg \
88 onlineupdate \
89 oovbaapi \
90 oox \
91 $(call gb_Helper_optional,OPENCL,opencl) \
92 package \
93 pch \
94 postprocess \
95 $(call gb_Helper_optional,PYUNO,pyuno) \
96 $(call gb_Helper_optional,QADEVOOO,qadevOOo) \
97 readlicense_oo \
98 registry \
99 remotebridges \
100 reportbuilder \
101 $(call gb_Helper_optional,DBCONNECTIVITY,reportdesign) \
102 ridljar \
103 sal \
104 salhelper \
105 sax \
106 sc \
107 scaddins \
108 sccomp \
109 $(call gb_Helper_optional,DESKTOP,scp2) \
110 scripting \
111 sd \
112 sdext \
113 $(call gb_Helper_optional,DESKTOP,setup_native) \
114 sfx2 \
115 shell \
116 slideshow \
117 smoketest \
118 solenv \
119 soltools \
120 sot \
121 starmath \
122 stoc \
123 store \
124 svl \
125 svtools \
126 svgio \
127 emfio \
128 svx \
129 sw \
130 swext \
131 sysui \
132 test \
133 testtools \
134 toolkit \
135 tools \
136 ucb \
137 ucbhelper \
138 udkapi \
139 $(call gb_Helper_optional,PYUNO,uitest) \
140 UnoControls \
141 unodevtools \
142 unoil \
143 unoidl \
144 unotest \
145 unotools \
146 unoxml \
147 ure \
148 uui \
149 vbahelper \
150 vcl \
151 winaccessibility \
152 wizards \
153 writerfilter \
154 writerperfect \
155 xmerge \
156 $(call gb_Helper_optional,DESKTOP,xmlhelp) \
157 xmloff \
158 xmlreader \
159 xmlscript \
160 xmlsecurity \
163 # Especially when building everything with symbols, the linking of the largest
164 # libraries takes enormous amounts of RAM. To prevent annoying OOM situations
165 # etc., try to prevent linking these in parallel by adding artificial build
166 # order dependencies here.
167 define repositorymodule_serialize1
168 $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,$(1))) \
169 :| $(foreach lib,$(2),$(call gb_Library_get_target,$(lib)))
170 endef
172 define repositorymodule_serialize
173 $(if $(filter-out 0 1,$(words $(1))),\
174 $(call repositorymodule_serialize1,$(firstword $(1)),$(wordlist 2,$(words $(1)),$(1))))
175 $(if $(strip $(1)),\
176 $(call repositorymodule_serialize,$(wordlist 2,$(words $(1)),$(1))))
177 endef
179 # DO NOT SORT ALPHABETICALLY: the libraries must be listed in dependency order,
180 # otherwise cyclic dependencies ruin everything.
181 # do not serialize on a partial build as that may fail due to missing deps.
182 # the default goal is build (see Module.mk)
183 ifeq (,$(filter-out build check unitcheck slowcheck screenshot subsequentcheck uicheck,$(MAKECMDGOALS)))
184 $(eval $(call repositorymodule_serialize,\
185 scfilt \
186 $(call gb_Helper_optional,SCRIPTING,vbaobj) \
187 sc msword \
188 $(call gb_Helper_optional,DESKTOP,swui) \
189 sw sd \
190 $(call gb_Helper_optional,DBCONNECTIVITY,dbu) \
191 writerfilter cui chartcontroller chartcore oox \
192 $(if $(MERGELIBS), merged, \
193 svx svxcore xo sfx fwk svt vcl) \
195 endif
197 # vim: set noet sw=4 ts=4: