[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - 2 commits - Library_merged.mk RepositoryModule_host.mk solenv/gbuild

Matúš Kukan matus.kukan at collabora.com
Tue Dec 16 01:09:03 PST 2014


 Library_merged.mk                       |  112 --------------------------------
 RepositoryModule_host.mk                |   17 ++--
 solenv/gbuild/LinkTarget.mk             |   19 ++++-
 solenv/gbuild/platform/IOS_ARM_GCC.mk   |    2 
 solenv/gbuild/platform/com_MSC_class.mk |    2 
 solenv/gbuild/platform/macosx.mk        |    2 
 solenv/gbuild/platform/mingw.mk         |    2 
 7 files changed, 34 insertions(+), 122 deletions(-)

New commits:
commit 25b5542779ab6066d9ec233952debe126f1521ff
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Mon Dec 15 14:37:44 2014 +0100

    gbuild: More automagic for libmerged
    
    Only gb_Library_use_libraries stays because I think it's a good idea to see
    dependent libraries (potential candidates for merging) and hopefully the
    list does not change often anyway.
    This commit extends b6be3d3db3ffbc4c1a4528a8dc17aa95084e12ca
    
    (cherry picked from commit 8cc1e7a7c3ec897129cc6318b254e8dafc682435)
    
    Change-Id: I2682456f53cb2e8d7ea63eae15f8979a3c828401

diff --git a/Library_merged.mk b/Library_merged.mk
index 02671f1..fa2f24d 100644
--- a/Library_merged.mk
+++ b/Library_merged.mk
@@ -30,61 +30,7 @@ $(eval $(call gb_Library_use_libraries,merged,\
 	$(gb_UWINAPI) \
 ))
 
-ifeq ($(GUIBASE),unx)
-$(eval $(call gb_Library_use_static_libraries,merged,\
-	headless \
-))
-endif
-
-ifeq (ALL,$(MERGELIBS))
-$(eval $(call gb_Library_use_static_libraries,merged,\
-	ulingu \
-))
-endif
-
-ifeq ($(GUIBASE),unx)
-$(eval $(call gb_Library_add_libs,merged,\
-	-lX11 \
-	-lXext \
-	-lSM \
-	-lICE \
-))
-endif
-
-ifeq ($(OS),LINUX)
-$(eval $(call gb_Library_add_libs,merged,\
-	-lm \
-	-ldl \
-	-lGL \
-	-lGLU \
-	-lpthread \
-	-lrt \
-	-lX11 \
-))
-endif
-
 ifeq ($(OS),WNT)
-$(eval $(call gb_Library_use_system_win32_libs,merged,\
-	advapi32 \
-	gdi32 \
-	gdiplus \
-	glu32 \
-	imm32 \
-	mpr \
-	msimg32 \
-	oldnames \
-	ole32 \
-	oleaut32 \
-	opengl32 \
-	shell32 \
-	shlwapi \
-	user32 \
-	usp10 \
-	uuid \
-	version \
-	winmm \
-	winspool \
-))
 # prevent warning spamming
 $(eval $(call gb_Library_add_ldflags,merged,\
 	/ignore:4049 \
@@ -96,17 +42,6 @@ ifeq ($(OS),MACOSX)
 $(eval $(call gb_Library_use_libraries,merged,\
 	AppleRemote \
 ))
-$(eval $(call gb_Library_add_libs,merged,\
-	-lobjc \
-))
-$(eval $(call gb_Library_use_system_darwin_frameworks,merged,\
-	Carbon \
-	Cocoa \
-	CoreFoundation \
-	CoreServices \
-	OpenGL \
-	QuickTime \
-))
 endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 243ca26..f9cfab7 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -715,6 +715,8 @@ endef
 # call gb_LinkTarget_add_libs,linktarget,libs
 define gb_LinkTarget_add_libs
 $(call gb_LinkTarget_get_target,$(1)) : T_LIBS += $(2)
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+  $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,merged)) : T_LIBS += $(2))
 
 endef
 
@@ -895,6 +897,9 @@ endef
 # call gb_LinkTarget_use_static_libraries,linktarget,staticlibs
 define gb_LinkTarget_use_static_libraries
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS += $$(if $$(filter-out StaticLibrary,$$(TARGETTYPE)),$(2))
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+	$(call gb_LinkTarget_get_target,$(call gb_Library_get_linktarget,merged)) : \
+		LINKED_STATIC_LIBS += $$(if $$(filter-out StaticLibrary,$$(TARGETTYPE)),$(2)))
 
 ifeq ($(DISABLE_DYNLOADING),)
 $(call gb_LinkTarget_get_target,$(1)) : $(foreach lib,$(2),$(call gb_StaticLibrary_get_target,$(lib)))
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index c5938d4..704e360 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -136,6 +136,8 @@ endef
 
 define gb_LinkTarget_use_system_darwin_frameworks
 $(call gb_LinkTarget_add_libs,$(1),$(foreach fw,$(2),-framework $(fw)))
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+  $(call gb_LinkTarget_add_libs,$(call gb_Library_get_linktarget,merged),$(foreach fw,$(2),-framework $(fw))))
 endef
 
 
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index b4dc1e3..487053d 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -198,6 +198,8 @@ endef
 
 define gb_LinkTarget_use_system_win32_libs
 $(call gb_LinkTarget_add_libs,$(1),$(foreach lib,$(2),$(call gb_MSVCRT_subst,$(lib)).lib))
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+	$(call gb_LinkTarget_add_libs,$(call gb_Library_get_linktarget,merged),$(foreach lib,$(2),$(call gb_MSVCRT_subst,$(lib)).lib)))
 endef
 
 # Flags common for PE executables (EXEs and DLLs) 
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 185fb26..6547ed4 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -168,6 +168,8 @@ endef
 
 define gb_LinkTarget_use_system_darwin_frameworks
 $(call gb_LinkTarget_add_libs,$(1),$(foreach fw,$(2),-framework $(fw)))
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+  $(call gb_LinkTarget_add_libs,$(call gb_Library_get_linktarget,merged),$(foreach fw,$(2),-framework $(fw))))
 endef
 
 
diff --git a/solenv/gbuild/platform/mingw.mk b/solenv/gbuild/platform/mingw.mk
index f60c1fc..40291ad 100644
--- a/solenv/gbuild/platform/mingw.mk
+++ b/solenv/gbuild/platform/mingw.mk
@@ -144,6 +144,8 @@ endef
 
 define gb_LinkTarget_use_system_win32_libs
 $(call gb_LinkTarget_add_libs,$(1),$(foreach lib,$(2),-l$(patsubst oldnames,moldname,$(lib))))
+$(if $(call gb_LinkTarget__is_merged,$(1)),\
+	$(call gb_LinkTarget_add_libs,$(call gb_Library_get_linktarget,merged),$(foreach lib,$(2),-l$(patsubst oldnames,moldname,$(lib)))))
 endef
 
 gb_LinkTarget_get_mapfile = \
commit bcf1df4c6a18b069d556490b58878274adce5fac
Author: Matúš Kukan <matus.kukan at collabora.com>
Date:   Mon Dec 15 13:49:08 2014 +0100

    gbuild: Do not require gb_Library_use_externals for libmerged
    
    Instead, automatically get the externals when parsing other makefiles.
    This commit fixes the build and hopefully avoids problems in future
    because people didn't know they had to add externals for libmerged too.
    Similar should be done for other functions like add_libs...
    
    Change-Id: I5aea4c43f4b6838092ada81c310ef1100f241108
    (cherry picked from commit b6be3d3db3ffbc4c1a4528a8dc17aa95084e12ca)

diff --git a/Library_merged.mk b/Library_merged.mk
index 533acb0a..02671f1 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 a3567c4..f6a9c6e 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 0887b6b..243ca26 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)


More information about the Libreoffice-commits mailing list