summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Library_merged.mk47
-rw-r--r--RepositoryModule_host.mk17
-rw-r--r--solenv/gbuild/LinkTarget.mk14
3 files changed, 21 insertions, 57 deletions
diff --git a/Library_merged.mk b/Library_merged.mk
index 533acb0a542b..02671f14c5cf 100644
--- a/Library_merged.mk
+++ b/Library_merged.mk
@@ -36,60 +36,13 @@ $(eval $(call gb_Library_use_static_libraries,merged,\
))
endif
-$(eval $(call gb_Library_use_externals,merged,\
- icu_headers \
- icui18n \
- icuuc \
- boost_headers \
- boostdatetime \
- $(call gb_Helper_optional,DESKTOP,clucene) \
- $(call gb_Helper_optional,COLLADA2GLTF,collada2gltf) \
- cups \
- curl \
- dbus \
- expat \
- gconf \
- gio \
- glew \
- graphite \
- $(if $(ENABLE_GTK),gtk) \
- harfbuzz \
- hunspell \
- jpeg \
- lcms2 \
- $(call gb_Helper_optional,LIBATOMIC_OPS,libatomic_ops) \
- libeot \
- liblangtag \
- libxml2 \
- libxslt \
- mesa_headers \
- mythes \
- nss3 \
- $(call gb_Helper_optional,COLLADA2GLTF,opencollada_parser) \
- $(call gb_Helper_optional,COLLADA2GLTF,png) \
- telepathy \
- zlib \
-))
-
ifeq (ALL,$(MERGELIBS))
$(eval $(call gb_Library_use_static_libraries,merged,\
ulingu \
))
-$(eval $(call gb_Library_use_externals,merged,\
- cppunit \
- hyphen \
- libexslt \
- libexttextcat \
- $(if $(filter-out ANDROID IOS,$(OS)),openldap) \
- $(call gb_Helper_optional,PYUNO,python) \
-))
endif
ifeq ($(GUIBASE),unx)
-$(eval $(call gb_Library_use_externals,merged,\
- fontconfig \
- freetype \
-))
$(eval $(call gb_Library_add_libs,merged,\
-lX11 \
-lXext \
diff --git a/RepositoryModule_host.mk b/RepositoryModule_host.mk
index a3567c486d8f..f6a9c6ec5c0f 100644
--- a/RepositoryModule_host.mk
+++ b/RepositoryModule_host.mk
@@ -11,6 +11,16 @@
$(eval $(call gb_Module_Module,libreoffice))
+# 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 \
+ $(if $(URELIBS),Library_urelibs) \
+))
+endif
+
$(eval $(call gb_Module_add_moduledirs,libreoffice,\
accessibility \
android \
@@ -155,13 +165,6 @@ $(eval $(call gb_Module_add_moduledirs,libreoffice,\
xmlsecurity \
))
-ifneq ($(MERGELIBS),)
-$(eval $(call gb_Module_add_targets,libreoffice,\
- Library_merged \
- $(if $(URELIBS),Library_urelibs) \
-))
-endif
-
# 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
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 0887b6b6056a..243ca266c7d4 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -855,6 +855,10 @@ define gb_LinkTarget__is_build_tool
$(if $(filter $(call gb_LinkTarget__get_workdir_linktargetname,$(1)),$(call gb_BUILD_HELPER_TOOLS)),$(true),$(false))
endef
+define gb_LinkTarget__is_merged
+$(filter $(1),$(foreach lib,$(gb_MERGEDLIBS),$(call gb_Library_get_linktarget,$(lib))))
+endef
+
# call gb_LinkTarget_use_libraries,linktarget,libs
define gb_LinkTarget_use_libraries
ifneq (,$$(filter-out $(gb_Library_KNOWNLIBS),$(2)))
@@ -867,7 +871,7 @@ $(call gb_LinkTarget__use_libraries,$(1),$(2),$(2),$(4))
else
$(call gb_LinkTarget__use_libraries,$(1),$(2),$(strip \
$(if $(filter $(gb_MERGEDLIBS),$(2)), \
- $(if $(filter $(1),$(foreach lib,$(gb_MERGEDLIBS),$(call gb_Library_get_linktarget,$(lib)))), \
+ $(if $(call gb_LinkTarget__is_merged,$(1)), \
$(filter $(gb_MERGEDLIBS),$(2)), merged)) \
$(if $(filter $(gb_URELIBS),$(2)), \
$(if $(filter $(1),$(foreach lib,$(gb_URELIBS),$(call gb_Library_get_linktarget,$(lib)))), \
@@ -1330,11 +1334,15 @@ $(call gb_LinkTarget_get_target,$(1)) :| \
endef
# this forwards to functions that must be defined in RepositoryExternal.mk.
-# call gb_LinkTarget_use_external,library,external
+# Automatically forward for libmerged library too when linktarget is merged.
+#
+# call gb_LinkTarget_use_external,linktarget,external
define gb_LinkTarget_use_external
$(if $(filter undefined,$(origin gb_LinkTarget__use_$(2))),\
$(error gb_LinkTarget_use_external: unknown external: $(2)),\
- $(call gb_LinkTarget__use_$(2),$(1)))
+ $(if $(call gb_LinkTarget__is_merged,$(1)),$(call gb_LinkTarget__use_$(2),$(call gb_Library_get_linktarget,merged))) \
+ $(call gb_LinkTarget__use_$(2),$(1)) \
+)
endef
# $(call gb_LinkTarget_use_externals,library,externals)