solenv/gbuild/LinkTarget.mk |   67 ++++++++++++++++++++++++++++++++++++--------
 1 file changed, 56 insertions(+), 11 deletions(-)

New commits:
commit 328c12a9a011c9a8ac74c89a493b1a75e853a638
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Fri Sep 17 13:02:03 2021 +0200
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Sat Sep 18 19:24:28 2021 +0200

    make COMPILER_EXTERNAL_TOOL=1 work properly with generated sources
    
    The normal compile commands would fail if the tool standing in
    as the compiler would not generate e.g. the dependency files.
    
    Change-Id: I590a925d3562c9677cbd836095cd0b8cfeb9613b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122247
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 336c36362ff7..f7ecface2b89 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -325,12 +325,21 @@ endif
 
 gb_GenCObject_get_source = $(WORKDIR)/$(1).c
 
+ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_GenCObject_get_target,%) : $(gb_FORCE_COMPILE_ALL_TARGET)
+       $(call gb_Output_announce,$*.c,$(true),C  ,3)
+       $(call gb_Trace_StartRange,$*.c,C  )
+       test -f $(call gb_GenCObject_get_source,$*) || (echo "Missing generated 
source file $(call gb_GenCObject_get_source,$*)" && false)
+       $(call gb_CObject__tool_command,$*,$(call 
gb_GenCObject_get_source,$*),$(COMPILER_PLUGINS))
+       $(call gb_Trace_EndRange,$*.c,C  )
+else
+$(call gb_GenCObject_get_target,%) :
        $(call gb_Output_announce,$*.c,$(true),C  ,3)
        $(call gb_Trace_StartRange,$*.c,C  )
        test -f $(call gb_GenCObject_get_source,$*) || (echo "Missing generated 
source file $(call gb_GenCObject_get_source,$*)" && false)
        $(call gb_CObject__command_pattern,$@,$(T_CFLAGS) 
$(T_CFLAGS_APPEND),$(call gb_GenCObject_get_source,$*),$(call 
gb_GenCObject_get_dep_target,$*),$(COMPILER_PLUGINS),$(T_SYMBOLS),$(T_CC))
        $(call gb_Trace_EndRange,$*.c,C  )
+endif
 
 ifeq ($(gb_FULLDEPS),$(true))
 $(dir $(call gb_GenCObject_get_dep_target,%)).dir :
@@ -349,13 +358,22 @@ endif
 
 gb_GenCxxObject_get_source = $(WORKDIR)/$(1).$(gb_LinkTarget_CXX_SUFFIX_$(call 
gb_LinkTarget__get_workdir_linktargetname,$(2)))
 
+ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_GenCxxObject_get_target,%) : $(gb_FORCE_COMPILE_ALL_TARGET)
+       $(call gb_Output_announce,$(subst 
$(BUILDDIR)/,,$(GEN_CXX_SOURCE)),$(true),CXX,3)
+       $(call gb_Trace_StartRange,$(subst $(BUILDDIR)/,,$(GEN_CXX_SOURCE)),CXX)
+       test -f $(GEN_CXX_SOURCE) || (echo "Missing generated source file 
$(GEN_CXX_SOURCE)" && false)
+       $(call 
gb_CxxObject__tool_command,$*,$(GEN_CXX_SOURCE),$(COMPILER_PLUGINS))
+       $(call gb_Trace_EndRange,$(subst $(BUILDDIR)/,,$(GEN_CXX_SOURCE)),CXX)
+else
+$(call gb_GenCxxObject_get_target,%) :
        $(call gb_Output_announce,$(subst 
$(BUILDDIR)/,,$(GEN_CXX_SOURCE)),$(true),CXX,3)
        $(call gb_Trace_StartRange,$(subst $(BUILDDIR)/,,$(GEN_CXX_SOURCE)),CXX)
        test -f $(GEN_CXX_SOURCE) || (echo "Missing generated source file 
$(GEN_CXX_SOURCE)" && false)
        $(eval $(gb_CxxObject__set_pchflags))
        $(call gb_CObject__command_pattern,$@,$(T_CXXFLAGS) 
$(T_CXXFLAGS_APPEND),$(GEN_CXX_SOURCE),$(call 
gb_GenCxxObject_get_dep_target,$*),$(COMPILER_PLUGINS),$(T_SYMBOLS),$(T_CXX))
        $(call gb_Trace_EndRange,$(subst $(BUILDDIR)/,,$(GEN_CXX_SOURCE)),CXX)
+endif
 
 ifeq ($(gb_FULLDEPS),$(true))
 $(dir $(call gb_GenCxxObject_get_dep_target,%)).dir :
@@ -374,12 +392,21 @@ endif
 
 gb_GenCxxClrObject_get_source = 
$(WORKDIR)/$(1).$(gb_LinkTarget_CXX_SUFFIX_$(call 
gb_LinkTarget__get_workdir_linktargetname,$(2)))
 
+ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_GenCxxClrObject_get_target,%) : $(gb_FORCE_COMPILE_ALL_TARGET)
+       $(call gb_Output_announce,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),$(true),CLR,3)
+       $(call gb_Trace_StartRange,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),CLR)
+       test -f $(GEN_CXXCLR_SOURCE) || (echo "Missing generated source file 
$(GEN_CXXCLR_SOURCE)" && false)
+       $(call 
gb_CxxClrObject__tool_command,$*,$(GEN_CXXCLR_SOURCE),$(COMPILER_PLUGINS))
+       $(call gb_Trace_EndRange,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),CLR)
+else
+$(call gb_GenCxxClrObject_get_target,%) :
        $(call gb_Output_announce,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),$(true),CLR,3)
        $(call gb_Trace_StartRange,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),CLR)
        test -f $(GEN_CXXCLR_SOURCE) || (echo "Missing generated source file 
$(GEN_CXXCLR_SOURCE)" && false)
        $(call gb_CObject__command_pattern,$@,$(T_CXXCLRFLAGS) 
$(T_CXXCLRFLAGS_APPEND),$(GEN_CXXCLR_SOURCE),$(call 
gb_GenCxxClrObject_get_dep_target,$*),$(COMPILER_PLUGINS),$(T_SYMBOLS))
        $(call gb_Trace_EndRange,$(subst 
$(BUILDDIR)/,,$(GEN_CXXCLR_SOURCE)),CLR)
+endif
 
 ifeq ($(gb_FULLDEPS),$(true))
 $(dir $(call gb_GenCxxClrObject_get_dep_target,%)).dir :
@@ -520,12 +547,21 @@ endif
 
 gb_GenObjCObject_get_source = $(WORKDIR)/$(1).m
 
+ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_GenObjCObject_get_target,%) : $(gb_FORCE_COMPILE_ALL_TARGET)
+       $(call gb_Output_announce,$*.m,$(true),OCC,3)
+       $(call gb_Trace_StartRange,$*.m,OCC)
+       test -f $(call gb_GenObjCObject_get_source,$*) || (echo "Missing 
generated source file $(call gb_GenObjCObject_get_source,$*)" && false)
+       $(call gb_ObjCObject__tool_command,$*,$(call 
gb_GenObjCObject_get_source,$*),$(COMPILER_PLUGINS))
+       $(call gb_Trace_EndRange,$*.m,OCC)
+else
+$(call gb_GenObjCObject_get_target,%) :
        $(call gb_Output_announce,$*.m,$(true),OCC,3)
        $(call gb_Trace_StartRange,$*.m,OCC)
        test -f $(call gb_GenObjCObject_get_source,$*) || (echo "Missing 
generated source file $(call gb_GenObjCObject_get_source,$*)" && false)
        $(call gb_CObject__command_pattern,$@,$(T_OBJCFLAGS) 
$(T_OBJCFLAGS_APPEND),$(call gb_GenObjCObject_get_source,$*),$(call 
gb_GenObjCObject_get_dep_target,$*),$(COMPILER_PLUGINS),$(T_SYMBOLS))
        $(call gb_Trace_EndRange,$*.m,OCC)
+endif
 
 ifeq ($(gb_FULLDEPS),$(true))
 $(dir $(call gb_GenObjCObject_get_dep_target,%)).dir :
@@ -544,12 +580,21 @@ endif
 
 gb_GenObjCxxObject_get_source = $(WORKDIR)/$(1).mm
 
+ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_GenObjCxxObject_get_target,%) : $(gb_FORCE_COMPILE_ALL_TARGET)
+       $(call gb_Output_announce,$*.mm,$(true),OCX,3)
+       $(call gb_Trace_StartRange,$*.mm,OCX)
+       test -f $(call gb_GenObjCxxObject_get_source,$*) || (echo "Missing 
generated source file $(call gb_GenObjCxxObject_get_source,$*)" && false)
+       $(call gb_ObjCxxObject__tool_command,$*,$(call 
gb_GenObjCxxObject_get_source,$*),$(COMPILER_PLUGINS))
+       $(call gb_Trace_EndRange,$*.mm,OCX)
+else
+$(call gb_GenObjCxxObject_get_target,%) :
        $(call gb_Output_announce,$*.mm,$(true),OCX,3)
        $(call gb_Trace_StartRange,$*.mm,OCX)
        test -f $(call gb_GenObjCxxObject_get_source,$*) || (echo "Missing 
generated source file $(call gb_GenObjCxxObject_get_source,$*)" && false)
        $(call gb_CObject__command_pattern,$@,$(T_OBJCXXFLAGS) 
$(T_OBJCXXFLAGS_APPEND),$(call gb_GenObjCxxObject_get_source,$*),$(call 
gb_GenObjCxxObject_get_dep_target,$*),$(COMPILER_PLUGINS),$(T_SYMBOLS))
        $(call gb_Trace_EndRange,$*.mm,OCX)
+endif
 
 ifeq ($(gb_FULLDEPS),$(true))
 $(dir $(call gb_GenObjCxxObject_get_dep_target,%)).dir :
commit 56c2562cc5cf33ea415ef14e4a8bfa41e44ad722
Author:     Luboš Luňák <l.lu...@collabora.com>
AuthorDate: Fri Sep 17 12:04:58 2021 +0200
Commit:     Luboš Luňák <l.lu...@collabora.com>
CommitDate: Sat Sep 18 19:24:13 2021 +0200

    don't force compiler plugins when COMPILER_EXTERNAL_TOOL=1 is used
    
    Change-Id: I741d4e5450ba66d4452ee2e5398eaac0643a371f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122246
    Tested-by: Jenkins
    Reviewed-by: Luboš Luňák <l.lu...@collabora.com>

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 60be7cfb68cc..336c36362ff7 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -85,7 +85,7 @@ gb_LinkTarget_LAYER_LINKPATHS := \
 # it ever becomes necessary, they can be moved to e.g.
 # platform/com_{GCC,MSC}_class.mk and made different there.
 #
-# $(call gb_CObject__tool_command,relative-source,source)
+# $(call gb_CObject__tool_command,relative-source,source,compiler-plugins)
 define gb_CObject__tool_command
 $(call gb_Helper_abbreviate_dirs,\
         ICECC=no CCACHE_DISABLE=1 \
@@ -94,7 +94,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(gb_LTOFLAGS) \
                $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \
                $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if 
$(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR))
 \
-               $(gb_COMPILER_PLUGINS) \
+               $(if $(3),$(gb_COMPILER_PLUGINS)) \
                $(T_CFLAGS) $(T_CFLAGS_APPEND) \
                $(if 
$(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \
                -c $(2) \
@@ -109,7 +109,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(gb_LTOFLAGS) \
                $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \
                $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if 
$(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR))
 \
-               $(gb_COMPILER_PLUGINS) \
+               $(if $(3),$(gb_COMPILER_PLUGINS)) \
                $(T_OBJCFLAGS) $(T_OBJCFLAGS_APPEND) \
                $(if 
$(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \
                -c $(2) \
@@ -124,7 +124,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(gb_LTOFLAGS) \
                $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \
                $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if 
$(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR))
 \
-               $(gb_COMPILER_PLUGINS) \
+               $(if $(3),$(gb_COMPILER_PLUGINS)) \
                $(T_CXXFLAGS) $(T_CXXFLAGS_APPEND) \
                $(if 
$(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \
                -c $(2) \
@@ -139,7 +139,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(gb_LTOFLAGS) \
                $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \
                $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if 
$(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR))
 \
-               $(gb_COMPILER_PLUGINS) \
+               $(if $(3),$(gb_COMPILER_PLUGINS)) \
                $(T_OBJCXXFLAGS) $(T_OBJCXXFLAGS_APPEND) \
                $(if 
$(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \
                -c $(2) \
@@ -154,7 +154,7 @@ $(call gb_Helper_abbreviate_dirs,\
                $(gb_LTOFLAGS) \
                $(if $(VISIBILITY),,$(gb_VISIBILITY_FLAGS)) \
                $(if $(WARNINGS_NOT_ERRORS),$(if $(ENABLE_WERROR),$(if 
$(PLUGIN_WARNINGS_AS_ERRORS),$(gb_COMPILER_PLUGINS_WARNINGS_AS_ERRORS))),$(gb_CFLAGS_WERROR))
 \
-               $(gb_COMPILER_PLUGINS) \
+               $(if $(3),$(gb_COMPILER_PLUGINS)) \
                $(T_CXXCLRFLAGS) $(T_CXXCLRFLAGS_APPEND) \
                $(if 
$(EXTERNAL_CODE),$(gb_CXXFLAGS_Wundef),$(gb_DEFS_INTERNAL)) \
                -c $(2) \
@@ -235,7 +235,7 @@ ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_CObject_get_target,%) : $(call gb_CObject_get_source,$(SRCDIR),%) 
$(gb_FORCE_COMPILE_ALL_TARGET)
        $(call gb_Output_announce,$*.c,$(true),C  ,3)
        $(call gb_Trace_StartRange,$*.c,C  )
-       $(call gb_CObject__tool_command,$*,$<)
+       $(call gb_CObject__tool_command,$*,$<,$(COMPILER_PLUGINS))
        $(call gb_Trace_EndRange,$*.c,C  )
 else
 $(call gb_CObject_get_target,%) : $(call gb_CObject_get_source,$(SRCDIR),%)
@@ -297,7 +297,7 @@ ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_CxxObject_get_target,%) : $(call 
gb_CxxObject_get_source,$(SRCDIR),%) $(gb_FORCE_COMPILE_ALL_TARGET)
        $(call gb_Output_announce,$*.cxx,$(true),CXX,3)
        $(call gb_Trace_StartRange,$*.cxx,CXX)
-       $(call gb_CxxObject__tool_command,$*,$<)
+       $(call gb_CxxObject__tool_command,$*,$<,$(COMPILER_PLUGINS))
        $(call gb_Trace_EndRange,$*.cxx,CXX)
 else
 $(call gb_CxxObject_get_target,%) : $(call gb_CxxObject_get_source,$(SRCDIR),%)
@@ -461,7 +461,7 @@ ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_ObjCxxObject_get_target,%) : $(call 
gb_ObjCxxObject_get_source,$(SRCDIR),%) $(gb_FORCE_COMPILE_ALL_TARGET)
        $(call gb_Output_announce,$*.mm,$(true),OCX,3)
        $(call gb_Trace_StartRange,$*.mm,OCX)
-       $(call gb_ObjCxxObject__tool_command,$*,$<)
+       $(call gb_ObjCxxObject__tool_command,$*,$<,$(COMPILER_PLUGINS))
        $(call gb_Trace_EndRange,$*.mm,OCX)
 else
 $(call gb_ObjCxxObject_get_target,%) : $(call 
gb_ObjCxxObject_get_source,$(SRCDIR),%)
@@ -493,7 +493,7 @@ ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_ObjCObject_get_target,%) : $(call 
gb_ObjCObject_get_source,$(SRCDIR),%) $(gb_FORCE_COMPILE_ALL_TARGET)
        $(call gb_Output_announce,$*.m,$(true),OCC,3)
        $(call gb_Trace_StartRange,$*.m,OCC)
-       $(call gb_ObjCObject__tool_command,$*,$<)
+       $(call gb_ObjCObject__tool_command,$*,$<,$(COMPILER_PLUGINS))
        $(call gb_Trace_EndRange,$*.m,OCC)
 else
 $(call gb_ObjCObject_get_target,%) : $(call 
gb_ObjCObject_get_source,$(SRCDIR),%)
@@ -573,7 +573,7 @@ ifneq ($(COMPILER_EXTERNAL_TOOL)$(COMPILER_PLUGIN_TOOL),)
 $(call gb_CxxClrObject_get_target,%) : $(call 
gb_CxxClrObject_get_source,$(SRCDIR),%) $(gb_FORCE_COMPILE_ALL_TARGET)
        $(call gb_Output_announce,$*.cxx,$(true),CLR,3)
        $(call gb_Trace_StartRange,$*.cxx,CLR)
-       $(call gb_CxxClrObject__tool_command,$*,$<)
+       $(call gb_CxxClrObject__tool_command,$*,$<,$(COMPILER_PLUGINS))
        $(call gb_Trace_EndRange,$*.cxx,CLR)
 else
 $(call gb_CxxClrObject_get_target,%) : $(call 
gb_CxxClrObject_get_source,$(SRCDIR),%)

Reply via email to