[Libreoffice-commits] .: 3 commits - sfx2/source solenv/gbuild writerfilter/qa writerfilter/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Oct 23 06:14:43 PDT 2012


 sfx2/source/doc/objstor.cxx                        |   10 ++++-
 solenv/gbuild/Executable.mk                        |   15 +++++---
 solenv/gbuild/Library.mk                           |   30 ++++++++++------
 solenv/gbuild/LinkTarget.mk                        |   39 +++++++++++++++------
 solenv/gbuild/StaticLibrary.mk                     |    8 ----
 solenv/gbuild/platform/IOS_ARM_GCC.mk              |    4 +-
 solenv/gbuild/platform/WNT_INTEL_GCC.mk            |   11 ++---
 solenv/gbuild/platform/WNT_INTEL_MSC.mk            |   26 ++++++--------
 solenv/gbuild/platform/com_GCC_class.mk            |    4 +-
 solenv/gbuild/platform/com_GCC_defs.mk             |    3 -
 solenv/gbuild/platform/macosx.mk                   |    4 +-
 writerfilter/qa/cppunittests/rtftok/testrtftok.cxx |   10 ++++-
 writerfilter/source/filter/RtfFilter.cxx           |    7 ++-
 13 files changed, 104 insertions(+), 67 deletions(-)

New commits:
commit 7e14889b80528f723782ba12b2836ae72e4a69b7
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Oct 23 15:11:46 2012 +0200

    gbuild: remove INCLUDE_STL and misc stlport stuff
    
    Change-Id: I99a3e097865bd5305886e2d5f91e86d0d691de22

diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 064ca8e..deb4298 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -342,7 +342,6 @@ endef
 #  gb_LinkTarget_CXXFLAGS
 #  gb_LinkTarget_LDFLAGS
 #  gb_LinkTarget_INCLUDE
-#  gb_LinkTarget_INCLUDE_STL
 
 .PHONY : $(call gb_LinkTarget_get_clean_target,%)
 $(call gb_LinkTarget_get_clean_target,%) :
@@ -514,7 +513,6 @@ $(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $$
 $(call gb_LinkTarget_get_headers_target,$(1)) \
 $(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE)
 $(call gb_LinkTarget_get_headers_target,$(1)) \
-$(call gb_LinkTarget_get_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL)
 $(call gb_LinkTarget_get_target,$(1)) : T_LDFLAGS := $$(gb_LinkTarget_LDFLAGS) $(call gb_LinkTarget__get_ldflags,$(2))
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_LIBS :=
 $(call gb_LinkTarget_get_target,$(1)) : LINKED_STATIC_LIBS :=
@@ -547,7 +545,6 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCFLAGS := $$(gb_LinkTarget_OBJC
 $(call gb_LinkTarget_get_dep_target,$(1)) : T_YACCFLAGS := $$(gb_LinkTarget_YYACFLAGS) $(YACCFLAGS)
 $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $$(call gb_LinkTarget_rtl_defs,$(1)) $(CPPFLAGS)
 $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE)
-$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL)
 $(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE :=
 $(call gb_LinkTarget_get_dep_target,$(1)) : LIBRARY_X64 :=
 $(call gb_LinkTarget_get_dep_target,$(1)) : EXTRAOBJECTLISTS :=
@@ -658,12 +655,8 @@ endif
 endef
 
 define gb_LinkTarget_set_include_stl
-$(call gb_LinkTarget_get_headers_target,$(1)) \
-$(call gb_LinkTarget_get_target,$(1)) : INCLUDE_STL := $(2)
-ifeq ($(gb_FULLDEPS),$(true))
-$(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $(2)
-endif
-
+$$(call gb_Output_error,\
+ gb_LinkTarget_set_include_stl: removed, why is anybody calling it?)
 endef
 
 define gb_LinkTarget_add_ldflags
diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index d0b653f..9f2f54e 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -103,7 +103,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-MMD -MT $(1) \
 		-MP -MF $(4) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE))
+		$(INCLUDE))
 endef
 
 # ObjCObject class
@@ -121,7 +121,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-MMD -MT $(call gb_ObjCObject_get_target,$(2)) \
 		-MP -MF $(call gb_ObjCObject_get_dep_target,$(2)) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE))
+		$(INCLUDE))
 endef
 
 
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index d3ffc06..617f9c6 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -303,7 +303,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-Fd$(PDBFILE) \
 		$(gb_COMPILERDEPFLAGS) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE) \
+		$(INCLUDE) \
 		$(if $(filter YES,$(CXXOBJECT_X64)), -U_X86_ -D_AMD64_,) \
 		-c $(3) \
 		-Fo$(1)) $(call gb_create_deps,$(4),$(1),$(3))
@@ -329,11 +329,9 @@ gb_LinkTarget_CFLAGS := $(gb_CFLAGS)
 gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS)
 
 gb_LinkTarget_INCLUDE :=\
-	$(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \
+	$(subst -I. , ,$(SOLARINC)) \
 	$(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \
 
-gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
-
 gb_LinkTarget_get_pdbfile = $(call gb_LinkTarget_get_target,)pdb/$(1).pdb
 
 # avoid fatal error LNK1170 for Library_merged
diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk
index a8f2d4b..c3f10a4 100644
--- a/solenv/gbuild/platform/com_GCC_class.mk
+++ b/solenv/gbuild/platform/com_GCC_class.mk
@@ -103,7 +103,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-o $(1) \
 	    $(gb_cxx_dep_generation_options) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE) \
+		$(INCLUDE) \
 	    $(gb_cxx_dep_copy) \
 		)
 endef
@@ -119,7 +119,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(T_CXXFLAGS) \
 		-c $(2) \
 		-I$(dir $(2)) \
-		$(INCLUDE_STL) $(INCLUDE) \
+		$(INCLUDE) \
 		$(gb_COMPILER_PLUGINS) \
 		)
 endef
diff --git a/solenv/gbuild/platform/com_GCC_defs.mk b/solenv/gbuild/platform/com_GCC_defs.mk
index 5845a60..24082a0 100644
--- a/solenv/gbuild/platform/com_GCC_defs.mk
+++ b/solenv/gbuild/platform/com_GCC_defs.mk
@@ -150,8 +150,7 @@ gb_DEBUG_CFLAGS := $(GGDB2) $(FINLINE_LIMIT0) $(FNO_INLINE)
 gb_DEBUG_CXXFLAGS := $(FNO_DEFAULT_INLINE)
 
 
-gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC)))
-gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
+gb_LinkTarget_INCLUDE := $(subst -I. , ,$(SOLARINC))
 
 ifeq ($(COM_GCC_IS_CLANG),TRUE)
 ifeq ($(COMPILER_PLUGIN_TOOL),)
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index a6cacc7..e122e25 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -118,7 +118,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-MMD -MT $(1) \
 		-MP -MF $(4) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE))
+		$(INCLUDE))
 endef
 
 # ObjCObject class
@@ -137,7 +137,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		-MMD -MT $(1) \
 		-MP -MF $(4) \
 		-I$(dir $(3)) \
-		$(INCLUDE_STL) $(INCLUDE))
+		$(INCLUDE))
 endef
 
 
commit 48c9586e0797871e519d1cf68aa59bcc4ba02651
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Oct 23 14:50:24 2012 +0200

    RtfFilter::filter: not allowed to throw WrongFormatException:
    
    throw a WrappedTargetRuntimeException instead :(
    
    Change-Id: Iebf2b709beea738ba513ec5ce884874b76fbf243

diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 3752a51..45b1cb2 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -40,6 +40,7 @@
 #include <com/sun/star/task/FutureDocumentVersionProductUpdateRequest.hpp>
 #include <com/sun/star/task/InteractionClassification.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 #include <com/sun/star/document/MacroExecMode.hpp>
 #include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
 #include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
@@ -2222,9 +2223,14 @@ sal_Bool SfxObjectShell::ImportFrom( SfxMedium& rMedium, bool bInsert )
         {
             SetError( ERRCODE_IO_BROKENPACKAGE, "Badness in the underlying package format." );
         }
-        catch (const io::WrongFormatException& rException)
+        catch (const lang::WrappedTargetRuntimeException& rWrapped)
         {
-            SetError( *new StringErrorInfo( ERRCODE_SFX_FORMAT_ROWCOL, rException.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ), "");
+            io::WrongFormatException e;
+            if (rWrapped.TargetException >>= e)
+            {
+                SetError(*new StringErrorInfo(ERRCODE_SFX_FORMAT_ROWCOL,
+                    e.Message, ERRCODE_BUTTON_OK | ERRCODE_MSG_ERROR ), "");
+            }
         }
         catch(...)
         {}
diff --git a/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx b/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx
index 7cdec49..e5e656c 100644
--- a/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx
+++ b/writerfilter/qa/cppunittests/rtftok/testrtftok.cxx
@@ -30,6 +30,7 @@
 #include <test/bootstrapfixture.hxx>
 #include <com/sun/star/document/XFilter.hpp>
 #include <com/sun/star/io/WrongFormatException.hpp>
+#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 
 #include <osl/file.hxx>
 #include <osl/process.h>
@@ -70,9 +71,14 @@ bool RtfTest::load(const OUString &, const OUString &rURL, const OUString &)
     {
         return m_xFilter->filter(aDescriptor);
     }
-    catch (const io::WrongFormatException&)
+    catch (const lang::WrappedTargetRuntimeException& rWrapped)
     {
-        return false;
+        io::WrongFormatException e;
+        if (rWrapped.TargetException >>= e)
+        {
+            return false;
+        }
+        throw;
     }
 }
 
diff --git a/writerfilter/source/filter/RtfFilter.cxx b/writerfilter/source/filter/RtfFilter.cxx
index 9b7a879..f80d1b0 100644
--- a/writerfilter/source/filter/RtfFilter.cxx
+++ b/writerfilter/source/filter/RtfFilter.cxx
@@ -28,6 +28,7 @@
 #include <com/sun/star/frame/XFrame.hpp>
 #include <com/sun/star/task/XStatusIndicator.hpp>
 #include <com/sun/star/io/WrongFormatException.hpp>
+#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 #ifdef DBG_COPYPASTE
 #include <unotools/localfilehelper.hxx>
 #include <tools/stream.hxx>
@@ -117,9 +118,11 @@ sal_Bool RtfFilter::filter( const uno::Sequence< beans::PropertyValue >& aDescri
         sal_uInt32 nEndTime = osl_getGlobalTimer();
         SAL_INFO("writerfilter.profile", OSL_THIS_FUNC << " finished in " << nEndTime - nStartTime << " ms");
     }
-    catch (const io::WrongFormatException&)
+    catch (const io::WrongFormatException& e)
     {
-        throw;
+        // cannot throw WrongFormatException directly :(
+        throw lang::WrappedTargetRuntimeException("",
+                static_cast<OWeakObject*>(this), uno::makeAny(e));
     }
     catch (const uno::Exception& e)
     {
commit 85b6a93cf41fb05e726027e34fcd805330e20414
Author: Michael Stahl <mstahl at redhat.com>
Date:   Tue Oct 23 14:00:50 2012 +0200

    gbuild: fix AUXTARGETS:
    
    This finally blew up spectacularly on Windows because we now have
    packages delivering external libraries to the solver, where the
    libraries are not defined by Library class, which leads to accidental
    inheritance of AUXTARGETS variable and failure to deliver nonexistent
    UnpackedTarball/.../libpq/postgresql-sdbc-impl.uno.dll
    
    Remove the custom deliver rule that uses AUXTARGETS, and instead
    let those files be handled individually by default Package.mk rules.
    
    This requires a dummy touch rule for each file, and unfortunately a
    pattern rule cannot be used here because of silly naming differences
    between implibs and dlls on Windows...
    
    AUXTARGETS do not cause problems for clean targets because there is no
    interdependency there, so keep them there.
    
    Change-Id: I2138f635334ff4517a2d31ef91cfd03a46745fd6

diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index 7517e16..fab3be9 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -37,11 +37,6 @@ $(call gb_Executable_get_clean_target,%) :
 		rm -f $(call gb_Executable_get_target,$*) \
 			$(AUXTARGETS))
 
-$(call gb_Executable_get_target,%) :
-	$(call gb_Helper_abbreviate_dirs,\
-		$(call gb_Deliver_deliver,$<,$@) \
-			$(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target))))
-
 define gb_Executable_Executable
 ifeq (,$$(findstring $(1),$$(gb_Executable_KNOWN)))
 $$(eval $$(call gb_Output_info,Currently known executables: $(sort $(gb_Executable_KNOWN)),ALL))
@@ -58,6 +53,7 @@ $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
 $(call gb_Executable_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
 	| $(dir $(call gb_Executable_get_target,$(1))).dir
 $(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
+$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_Executable_Executable_platform,$(1),$(2))
 $$(eval $$(call gb_Module_register_target,$(call gb_Executable_get_target,$(1)),$(call gb_Executable_get_clean_target,$(1))))
 $(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
@@ -68,6 +64,15 @@ define gb_Executable_set_targettype_gui
 $(call gb_LinkTarget_get_target,Executable/$(1)$(gb_Executable_EXT)) : TARGETGUI := $(2)
 endef
 
+# The auxtarget is delivered via the rule in Package.mk.
+# gb_Executable_add_auxtarget executable outdirauxtarget
+define gb_Executable_add_auxtarget
+$(call gb_LinkTarget_add_auxtarget,$(call gb_Executable_get_linktargetname,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktargetname,$(1))))/$(notdir $(2)))
+$(call gb_Executable_get_target,$(1)) : $(2)
+$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Executable_get_linktargetname,$(1))))/$(notdir $(2))
+$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS += $(2)
+
+endef
 
 define gb_Executable_forward_to_Linktarget
 gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3),Executable_$$(1))
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 924a254..bb79911 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -48,18 +48,11 @@ $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) :
 		rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \
 			$(AUXTARGETS))
 
-# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
-$(gb_Library_OUTDIRLOCATION)/%$(gb_Library_PLAINEXT) : 
-	$(call gb_Helper_abbreviate_dirs,\
-		$(call gb_Deliver_deliver,$<,$@) \
-			$(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target))))
-
 define gb_Library_Library
 ifeq (,$$(findstring $(1),$$(gb_Library_KNOWNLIBS)))
 $$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL))
 $$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk))
 endif
-$(call gb_Library_get_target,$(1)) : AUXTARGETS :=
 $(call gb_Library_get_target,$(1)) : SOVERSION :=
 $(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1)))
 
@@ -76,18 +69,35 @@ $(call gb_Library__get_final_target,$(1)) : $(call gb_Library_get_target,$(1))
 $(call gb_Library_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
 	| $(dir $(call gb_Library_get_target,$(1))).dir
 $(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
+$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_Library_Library_platform,$(1),$(2),$(gb_Library_DLLDIR)/$(call gb_Library_get_dllname,$(1)))
 $$(eval $$(call gb_Module_register_target,$(call gb_Library__get_final_target,$(1)),$(call gb_Library_get_clean_target,$(1))))
 $(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
 
 endef
 
+# Custom definition that does not simply forward to LinkTarget,
+# because there are cases where the auxtargets are not delivered to solver...
+# The auxtarget is delivered via the rule in Package.mk.
+# gb_Library_add_auxtarget library outdirauxtarget
+define gb_Library_add_auxtarget
+$(call gb_LinkTarget_add_auxtarget,$(call gb_Library_get_linktargetname,$(1)),$(dir $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))))/$(notdir $(2)))
+$(call gb_Library_get_target,$(1)) : $(2)
+$(2) : $(dir $(call gb_LinkTarget_get_target,$(call gb_Library_get_linktargetname,$(1))))/$(notdir $(2))
+$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS += $(2)
+
+endef
+
+define gb_Library_add_auxtargets
+$(foreach aux,$(2),$(call gb_Library_add_auxtarget,$(1),$(aux)))
+
+endef
+
 define gb_Library__set_soversion_script
 $(call gb_LinkTarget_set_soversion_script,$(call gb_Library_get_linktargetname,$(1)),$(2),$(3))
 $(call gb_Library_get_target,$(1)) : SOVERSION := $(2)
-$(call gb_Library_get_target,$(1)) \
-$(call gb_Library_get_clean_target,$(1)) : \
-	AUXTARGETS += $(call gb_Library_get_target,$(1)).$(2)
+$(call gb_Library_add_auxtarget,$(1),$(call gb_Library_get_target,$(1)).$(2))
+
 endef
 
 # for libraries that maintain stable ABI: set SOVERSION and version script
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 69b9ee0..064ca8e 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -565,7 +565,6 @@ define gb_LinkTarget_set_soversion_script
 $(call gb_LinkTarget_get_target,$(1)) : $(3)
 $(call gb_LinkTarget_get_target,$(1)) : SOVERSION := $(2)
 $(call gb_LinkTarget_get_target,$(1)) : SOVERSIONSCRIPT := $(3)
-$(call gb_LinkTarget_add_auxtargets,$(1),$(call gb_LinkTarget_get_target,$(1)).$(2))
 
 endef
 
@@ -1090,11 +1089,36 @@ $$(call gb_Output_error,\
  gb_LinkTarget_set_auxtargets: use gb_LinkTarget_add_auxtargets instead.)
 endef
 
-define gb_LinkTarget_add_auxtargets
+# Add a file that is built by the LinkTarget command and define
+# a dummy touch rule for it so it can be tracked via dependencies.
+# gb_LinkTarget_add_auxtarget linktarget auxtarget
+define gb_LinkTarget_add_auxtarget
+$(2) : $(call gb_LinkTarget_get_target,$(1))
+	touch $$@
+
 $(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS += $(2)
 
 endef
 
+define gb_LinkTarget_add_auxtargets
+$(foreach aux,$(2),$(call gb_LinkTarget_add_auxtarget,$(1),$(aux)))
+
+endef
+
+#$(2)/$(3) : $(dir $(call gb_LinkTarget_get_target,$(1)/$(3)))/$(notdir $(2))
+#$(dir $(call gb_LinkTarget_get_target,$(1)))/$(notdir $(3)) : $(call gb_LinkTarget_get_target,$(3))
+# CLEAN??? inheritance not a problem here?
+#$(dir $(call gb_LinkTarget_get_target,$(1)))/$(notdir $(2)) : $()
+
+# linktarget-type, outdir-dir, pattern
+# define a dummy touch rule for auxtargets
+# linktarget-type, aux-pattern, linktarget-pattern
+#define gb_LinkTarget__define_auxtarget_rule
+#$(call gb_LinkTarget_get_target,$(1))/$(2) : $(call gb_LinkTarget_get_target,$(1)/$(3))
+#	touch $@
+#
+#endef
+
 define gb_LinkTarget__add_internal_headers
 $(call gb_LinkTarget_get_headers_target,$(1)) : $(2)
 $(2) :|	$(call gb_LinkTarget_get_external_headers_target,$(1))
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index fdebb6a..e1e0fc5 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -42,18 +42,11 @@ $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) :
 		rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \
 			$(AUXTARGETS))
 
-# EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows
-$(gb_StaticLibrary_OUTDIRLOCATION)/%$(gb_StaticLibrary_PLAINEXT) : 
-	$(call gb_Helper_abbreviate_dirs,\
-		$(call gb_Deliver_deliver,$<,$@) \
-			$(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target))))
-
 define gb_StaticLibrary_StaticLibrary
 ifeq (,$$(findstring $(1),$$(gb_StaticLibrary_KNOWNLIBS)))
 $$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb_StaticLibrary_KNOWNLIBS)),ALL))
 $$(eval $$(call gb_Output_error,Static library $(1) must be registered in Repository.mk))
 endif
-$(call gb_StaticLibrary_get_target,$(1)) : AUXTARGETS :=
 $(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktargetname,$(1)))
 
 endef
@@ -64,6 +57,7 @@ $(call gb_LinkTarget_set_targettype,$(2),StaticLibrary)
 $(call gb_StaticLibrary_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) \
 	| $(dir $(call gb_StaticLibrary_get_target,$(1))).dir
 $(call gb_StaticLibrary_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
+$(call gb_StaticLibrary_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_StaticLibrary_StaticLibrary_platform,$(1),$(2))
 $$(eval $$(call gb_Module_register_target,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_StaticLibrary_get_clean_target,$(1))))
 $(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(call gb_LinkTarget_get_target,$(2)),$(1))
diff --git a/solenv/gbuild/platform/WNT_INTEL_GCC.mk b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
index 525bc1e..ae1e785 100644
--- a/solenv/gbuild/platform/WNT_INTEL_GCC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_GCC.mk
@@ -259,14 +259,12 @@ gb_Library_ILIBEXT := .lib
 define gb_Library_Library_platform
 $(call gb_LinkTarget_set_dlltarget,$(2),$(3))
 
-$(call gb_LinkTarget_add_auxtargets,$(2),\
-	$(patsubst %.dll,%.map,$(3)) \
-)
-
 $(call gb_Library_get_target,$(1)) :| $(OUTDIR)/bin/.dir
 
-$(call gb_Library_get_target,$(1)) \
-$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3)) $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.map,$(3)))
+$(call gb_Library_add_auxtargets,$(1), \
+	$(OUTDIR)/bin/$(notdir $(3)) \
+	$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.map,$(3))) \
+)
 
 $(call gb_Library_add_default_nativeres,$(1),$(1)/default)
 
@@ -333,6 +331,7 @@ define gb_CppunitTest_CppunitTest_platform
 $(call gb_LinkTarget_set_dlltarget,$(2),$(3))
 
 $(call gb_LinkTarget_add_auxtargets,$(2),\
+	$(3) \
 	$(patsubst %.dll,%.map,$(3)) \
 )
 
diff --git a/solenv/gbuild/platform/WNT_INTEL_MSC.mk b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
index 8e02e17..d3ffc06 100644
--- a/solenv/gbuild/platform/WNT_INTEL_MSC.mk
+++ b/solenv/gbuild/platform/WNT_INTEL_MSC.mk
@@ -458,20 +458,21 @@ $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
 	$(3).manifest \
 	$(call gb_LinkTarget_get_pdbfile,$(2)) \
-	$(patsubst %.dll,%.pdb,$(3)) \
-	$(patsubst %.dll,%.ilk,$(3)) \
 )
 
 $(if $(filter $(gb_MERGEDLIBS),$(1)),,\
-$(call gb_Library_get_target,$(1)) \
-$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3)))
+$(call gb_Library_add_auxtarget,$(1),$(OUTDIR)/bin/$(notdir $(3))))
 
 ifneq ($(ENABLE_CRASHDUMP),)
-$(call gb_Library_get_target,$(1)) \
-$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS +=  \
+$(call gb_Library_add_auxtargets,$(1),
 		$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))) \
 		$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))) \
-
+)
+else
+$(call gb_LinkTarget_add_auxtargets,$(2),\
+	$(patsubst %.dll,%.pdb,$(3)) \
+	$(patsubst %.dll,%.ilk,$(3)) \
+)
 endif
 
 $(call gb_Library_add_default_nativeres,$(1),$(1)/default)
@@ -542,11 +543,9 @@ define gb_Executable_Executable_platform
 $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \
 	$(call gb_LinkTarget_get_pdbfile,$(2)) \
-	$(call gb_LinkTarget_get_target,$(2)).manifest \
 )
 
-$(call gb_Executable_get_target,$(1)) \
-$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Executable_get_target,$(1)).manifest
+$(call gb_Executable_add_auxtarget,$(1),$(call gb_Executable_get_target,$(1)).manifest)
 $(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest,$(1))
 
 $(call gb_LinkTarget_get_target,$(2)) \
@@ -573,6 +572,7 @@ $(call gb_LinkTarget_set_dlltarget,$(2),$(3))
 
 $(call gb_LinkTarget_add_auxtargets,$(2),\
 	$(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
+	$(3) \
 	$(3).manifest \
 	$(patsubst %.dll,%.pdb,$(3)) \
 	$(call gb_LinkTarget_get_pdbfile,$(2)) \


More information about the Libreoffice-commits mailing list