solenv/gbuild/LinkTarget.mk |   19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

New commits:
commit 32bf2040bfa9d76731fc7c679845eb3835dde8a3
Author:     Jan-Marek Glogowski <glo...@fbihome.de>
AuthorDate: Wed Jan 5 11:56:30 2022 +0100
Commit:     Jan-Marek Glogowski <glo...@fbihome.de>
CommitDate: Fri Jan 7 02:51:50 2022 +0100

    gbuild: fix actually used libraries for mergelib
    
    Just the $(filter $(gb_MERGEDLIBS),$(2)) in the "if" was wrong,
    but reformat and add a comment to make the code easier to read.
    
    This way we correctly header-depend on all requested libraries,
    but just export-depend on the real libraries.
    
    And actually use gb_LinkTarget__is_build_lib in the ifeq, as
    otherwise the build now fails for the reduced dependencies.
    
    Change-Id: I24d5701891324f5055c9dfa535bd854d09fbb905
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127994
    Tested-by: Jenkins
    Reviewed-by: Jan-Marek Glogowski <glo...@fbihome.de>

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 52eabb9e5b96..ce60b462ecee 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -1246,7 +1246,8 @@ $(foreach lib,$(2),$(call 
gb_LinkTarget__lib_dummy_depend,$(lib)))
 endef
 
 # libraries which are merged but need to be built for gb_BUILD_HELPER_TOOLS
-gb_BUILD_HELPER_LIBS := basegfx \
+gb_BUILD_HELPER_LIBS := $(foreach lib, \
+    basegfx \
        comphelper \
        cppu \
        cppuhelper \
@@ -1260,6 +1261,7 @@ gb_BUILD_HELPER_LIBS := basegfx \
        ucbhelper \
        unoidl \
        xmlreader \
+    , $(call gb_Library__get_workdir_linktargetname,$(lib)))
 
 # tools libmerged depends on, so they link against gb_BUILD_HELPER_LIBS
 gb_BUILD_HELPER_TOOLS := $(foreach exe,\
@@ -1271,12 +1273,12 @@ gb_BUILD_HELPER_TOOLS := $(foreach exe,\
 
 # call gb_LinkTarget__is_build_lib,linktargetname
 define gb_LinkTarget__is_build_lib
-$(if $(filter $(call gb_LinkTarget__get_workdir_linktargetname,$(1)),$(foreach 
lib,$(gb_BUILD_HELPER_LIBS),$(call 
gb_Library__get_workdir_linktargetname,$(lib)))),$(true),$(false))
+$(if $(filter $(call gb_LinkTarget__get_workdir_linktargetname,$(1)),$(call 
gb_BUILD_HELPER_LIBS)),$(true))
 endef
 
 # call gb_LinkTarget__is_build_tool,linktargetname
 define gb_LinkTarget__is_build_tool
-$(if $(filter $(call gb_LinkTarget__get_workdir_linktargetname,$(1)),$(call 
gb_BUILD_HELPER_TOOLS)),$(true),$(false))
+$(if $(filter $(call gb_LinkTarget__get_workdir_linktargetname,$(1)),$(call 
gb_BUILD_HELPER_TOOLS)),$(true))
 endef
 
 define gb_LinkTarget__is_merged
@@ -1295,15 +1297,14 @@ $$(eval $$(call gb_Output_error,Cannot link against 
plugin library/libraries '$$
 endif
 endif
 
-ifeq ($(call gb_LinkTarget__is_build_tool,$(1)),$(true))
+ifeq ($(call gb_LinkTarget__is_build_tool,$(1))$(call 
gb_LinkTarget__is_build_lib,$(1)),$(true))
 $(call gb_LinkTarget__use_libraries,$(1),$(2),$(2),$(4))
 else
+# $$(3) = Always just depend on non-merged libs. If any dependency is merged, 
but you aren't, also depend on "merged".
 $(call gb_LinkTarget__use_libraries,$(1),$(2),$(strip \
-       $(if $(filter $(gb_MERGEDLIBS),$(2)), \
-               $(if $(call gb_LinkTarget__is_merged,$(1)), \
-                       $(filter $(gb_MERGEDLIBS),$(2)), merged)) \
-       $(filter-out $(gb_MERGEDLIBS),$(2)) \
-       ),$(4))
+        $(filter-out $(gb_MERGEDLIBS),$(2)) \
+        $(if $(filter $(gb_MERGEDLIBS),$(2)),$(if $(call 
gb_LinkTarget__is_merged,$(1)),,merged)) \
+    ),$(4))
 endif
 
 endef

Reply via email to