[Libreoffice-commits] core.git: Branch 'feature/instdirlinktargets' - 3 commits - solenv/gbuild sw/Module_sw.mk unotest/source

Michael Stahl mstahl at redhat.com
Sat Sep 21 13:47:52 PDT 2013


Rebased ref, commits from common ancestor:
commit e6c20482a69934cdd3e77a61f4a71869da88727c
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 14:25:39 2013 +0200

    make the PythonTest run on WNT
    
    - fix the PATH
    - file url needs to start with file:///X:/ (three slashes, literal :)
    
    Change-Id: I0d16d1e946fd06ba5523961c23c3b46872c0c050

diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index beb8266..2269d33 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -439,7 +439,7 @@ endef
 
 # PythonTest class
 
-gb_PythonTest_PRECOMMAND := $(gb_Helper_LIBRARY_PATH_VAR)=$${$(gb_Helper_LIBRARY_PATH_VAR):+$$$(gb_Helper_LIBRARY_PATH_VAR):}$(gb_DEVINSTALLROOT)/URE/bin:$(gb_DEVINSTALLROOT)/program:$(OUTDIR)/bin
+gb_PythonTest_PRECOMMAND := $(gb_Helper_set_ld_path)
 
 # SrsPartTarget class
 
diff --git a/sw/Module_sw.mk b/sw/Module_sw.mk
index 202c67c..7048d8e 100644
--- a/sw/Module_sw.mk
+++ b/sw/Module_sw.mk
@@ -72,11 +72,9 @@ $(eval $(call gb_Module_add_subsequentcheck_targets,sw,\
 endif
 
 ifneq ($(DISABLE_PYTHON),TRUE)
-ifneq ($(OS),WNT)
 $(eval $(call gb_Module_add_subsequentcheck_targets,sw,\
 	PythonTest_sw_python \
 ))
 endif
-endif
 
 # vim: set noet sw=4 ts=4:
diff --git a/unotest/source/python/org/libreoffice/unotest.py b/unotest/source/python/org/libreoffice/unotest.py
index 883d3a4..3da77ff 100644
--- a/unotest/source/python/org/libreoffice/unotest.py
+++ b/unotest/source/python/org/libreoffice/unotest.py
@@ -193,7 +193,11 @@ class UnoInProcess:
         props = [("Hidden", True), ("ReadOnly", False), ("AsTemplate", True)]
         loadProps = tuple([mkPropertyValue(name, value) for (name, value) in props])
         path = os.getenv("TDOC")
-        url = "file://" + quote(path) + "/" + quote(file)
+        if os.name == "nt":
+            # do not quote drive letter - it must be "X:"
+            url = "file:///" + path + "/" + quote(file)
+        else:
+            url = "file://" + quote(path) + "/" + quote(file)
         self.xDoc = desktop.loadComponentFromURL(url, "_blank", 0, loadProps)
         assert(self.xDoc)
         return self.xDoc
commit 84507ad26b70061bd1e46b5b7c458ad61ec2cd96
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 22:30:23 2013 +0200

    gbuild: drop mkdir -p calls from gb_LinkTarget__command
    
    ... should be obsoleted by previous commit.
    
    Change-Id: I378de1465d293a60dc20c545770f029c8f71bd50

diff --git a/solenv/gbuild/platform/IOS_ARM_GCC.mk b/solenv/gbuild/platform/IOS_ARM_GCC.mk
index 57c695c..bb661b3 100644
--- a/solenv/gbuild/platform/IOS_ARM_GCC.mk
+++ b/solenv/gbuild/platform/IOS_ARM_GCC.mk
@@ -105,7 +105,6 @@ endef
 
 define gb_LinkTarget__command_dynamiclink
 	$(if $(filter Library CppunitTest,$(TARGETTYPE)), at echo No dynamic libraries should be built for iOS && exit 1, \
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
 		$(gb_Executable_TARGETTYPEFLAGS) \
 		$(subst \d,$$,$(RPATH)) \
@@ -129,7 +128,6 @@ endef
 # parameters: 1-linktarget 2-cobjects 3-cxxobjects
 define gb_LinkTarget__command_staticlink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	$(gb_AR) -rsu $(1) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/android.mk b/solenv/gbuild/platform/android.mk
index 23839b1..b3ed340 100644
--- a/solenv/gbuild/platform/android.mk
+++ b/solenv/gbuild/platform/android.mk
@@ -35,7 +35,6 @@ gb_LinkTarget_LDFLAGS += \
 
 define gb_LinkTarget__command_dynamiclink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
 		-shared \
 		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
@@ -110,7 +109,7 @@ gb_CppunitTest_get_filename = libtest_$(1).a
 define gb_LinkTarget__command
 $(call gb_Output_announce,$(2),$(true),LNK,4)
 $(if $(filter CppunitTest,$(TARGETTYPE)), \
-	mkdir -p $(dir $(1)) && touch $(1), \
+	touch $(1), \
 	$(call gb_LinkTarget__command_staticlink,$(1)))
 endef
 
diff --git a/solenv/gbuild/platform/com_MSC_class.mk b/solenv/gbuild/platform/com_MSC_class.mk
index 73f4a23..beb8266 100644
--- a/solenv/gbuild/platform/com_MSC_class.mk
+++ b/solenv/gbuild/platform/com_MSC_class.mk
@@ -168,7 +168,6 @@ endif
 define gb_LinkTarget__command
 $(call gb_Output_announce,$(2),$(true),LNK,4)
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),100, \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index e23fd94..287a8eb 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -133,7 +133,6 @@ endef
 
 define gb_LinkTarget__command_dynamiclink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(OBJCXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
 		$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
 		$(if $(filter Bundle,$(TARGETTYPE)),$(gb_Bundle_TARGETTYPEFLAGS)) \
@@ -177,7 +176,6 @@ endef
 # parameters: 1-linktarget 2-cobjects 3-cxxobjects
 define gb_LinkTarget__command_staticlink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	$(gb_AR) -rsu $(1) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/mingw.mk b/solenv/gbuild/platform/mingw.mk
index c3b319e..c4fb456 100644
--- a/solenv/gbuild/platform/mingw.mk
+++ b/solenv/gbuild/platform/mingw.mk
@@ -96,7 +96,6 @@ gb_LinkTarget_INCLUDE +=\
 
 define gb_LinkTarget__command_dynamiclinkexecutable
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
 		$(gb_Executable_TARGETTYPEFLAGS) \
 		$(if $(filter YES,$(TARGETGUI)), -mwindows, -mconsole) \
@@ -117,7 +116,6 @@ endef
 
 define gb_LinkTarget__command_dynamiclinklibrary
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) $(strip \
 		$(gb_Library_TARGETTYPEFLAGS) \
 		$(T_LDFLAGS) \
@@ -139,7 +137,6 @@ endef
 
 define gb_LinkTarget__command_staticlinklibrary
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	$(gb_AR) -rsu $(1) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 8505f06..017dafc 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -168,7 +168,6 @@ endif
 # we want to use @$(extraobjectlist) in the long run
 define gb_LinkTarget__command_dynamiclink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
 		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
 		$(if $(filter-out $(foreach lib,frm scfilt wpftdraw,$(call gb_Library__get_workdir_linktargetname,$(lib))),$(2)),$(gb_LTOFLAGS)) \
@@ -205,7 +204,6 @@ endef
 
 define gb_LinkTarget__command_staticlink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	$(gb_AR) -rsu $(1) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk
index c839db1..9ad883b 100644
--- a/solenv/gbuild/platform/unxgcc.mk
+++ b/solenv/gbuild/platform/unxgcc.mk
@@ -170,7 +170,6 @@ endif
 # link with C compiler if there are no C++ files (pyuno_wrapper depends on this)
 define gb_LinkTarget__command_dynamiclink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	$(if $(CXXOBJECTS)$(GENCXXOBJECTS)$(EXTRAOBJECTLISTS),$(gb_CXX),$(gb_CC)) \
 		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
 		$(if $(filter-out $(foreach lib,frm scfilt wpftdraw,$(call gb_Library__get_workdir_linktargetname,$(lib))),$(2)),$(gb_LTOFLAGS)) \
@@ -207,7 +206,6 @@ endef
 
 define gb_LinkTarget__command_staticlink
 $(call gb_Helper_abbreviate_dirs,\
-	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	$(gb_AR) -rsu $(1) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
commit 477147fba44477d70bda0e16197dfe87cc948352
Author: Michael Stahl <mstahl at redhat.com>
Date:   Sat Sep 21 22:28:20 2013 +0200

    gbuild: add consistent directory dependencies for LinkTargets
    
    - StaticLibrary and CppunitTest have all files in one directory
    - Executable may have the executable itself in a different one
    - Library may have files in up to 3 directories
    
    ... so create 2 directories (which may be the same) in
    gb_LinkTarget_LinkTarget and a 3rd one in gb_Library__Library_impl.
    
    This allows to get rid of the "mkdir LinkTarget/pdb/..." thing in
    the header target rule, which was always ugly since it did not
    get rebuilt when deleting it (or whole LinkTarget dir) from workdir.
    
    Oh and the pattern dependency causes trouble:
    
    $(WORKDIR)/LinkTarget/% : $(call gb_LinkTarget_get_headers_target,%)
    
    ... for files in ExtensionLibrary; it would be possible to put
    ExtensionLibrary somewhere else of course but actually this pattern
    dependency is unnecessary since we get the same thing whenever any
    object is added to a link target and there shouldn't be link targets
    without objects anyway.
    
    Furthermore directory dependencies must be on the headers_target because
    MSVC will write a PDB file when compiling objects.
    
    Change-Id: Icd92e8768d6aafb094a4144f90165aa5ff233647

diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk
index 433ee0e..ef632dd 100644
--- a/solenv/gbuild/Executable.mk
+++ b/solenv/gbuild/Executable.mk
@@ -63,9 +63,6 @@ define gb_Executable__Executable_impl
 $(call gb_LinkTarget_LinkTarget,$(2),Executable_$(1),$(call gb_Executable_get_layer,$(1)))
 $(call gb_LinkTarget_set_targettype,$(2),Executable)
 $(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
-$(call gb_Executable_get_target,$(1)) : \
-	| $(dir $(call gb_Executable_get_target,$(1))).dir \
-	  $(gb_Executable_BINDIR)/.dir
 $(call gb_Executable_get_runtime_target,$(1)) :| $(dir $(call gb_Executable_get_runtime_target,$(1))).dir
 $(call gb_Executable_get_runtime_target,$(1)) : $(call gb_Executable_get_target_for_build,$(1))
 $(call gb_Executable_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index a8f3cae..a09f48a 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -76,6 +76,13 @@ $(call gb_Package_add_file,Library_Copy_$(1),$(2),$(2))
 $(OUTDIR)/lib/$(notdir $(2)) : $(gb_INSTROOT)/$(2)
 endef
 
+# Note: there may be targets in 3 different directories: the library itself,
+# the exports target (and other misc. MSVC files) (always in
+# $(WORKDIR)/LinkTarget), and the import library, which may be in SDK;
+# the first 2 are always created by gb_LinkTarget_LinkTarget
+# Also: the directory dependencies must be on the headers_target because
+# MSVC will write a PDB file when compiling objects.
+#
 # call gb_Library__Library_impl,library,linktarget
 define gb_Library__Library_impl
 $(call gb_LinkTarget_LinkTarget,$(2),Library_$(1),$(call gb_Library_get_layer,$(1)))
@@ -86,10 +93,8 @@ $(call gb_LinkTarget_add_defs,$(2),\
 )
 $(call gb_Library__get_final_target,$(1)) : $(call gb_Library_get_target,$(1))
 $(call gb_Library_get_exports_target,$(1)) : $(call gb_Library_get_target,$(1))
-$(call gb_Library_get_target,$(1)) : \
-	| $(dir $(call gb_Library_get_target,$(1))).dir \
-	  $(dir $(call gb_Library_get_ilib_target,$(1))).dir \
-	  $(gb_Library_DLLDIR)/.dir
+$(call gb_LinkTarget_get_headers_target,$(2)) : \
+	| $(dir $(call gb_Library_get_ilib_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),$(call gb_Library_get_ilib_target,$(1)))
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 2772325..e05e62a 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -448,7 +448,7 @@ $(WORKDIR)/LinkTarget/Library/%.exports :
 # This recipe actually also builds the dep-target as a side-effect, which
 # is an optimization to reduce incremental build time.
 # (with exception for concat-dep executable itself which does not exist yet...)
-$(WORKDIR)/LinkTarget/% : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY)
+$(WORKDIR)/LinkTarget/% : $(gb_Helper_MISCDUMMY)
 	$(call gb_LinkTarget__command_impl,$@,$*)
 
 # call gb_LinkTarget__make_installed_rule,linktarget
@@ -494,11 +494,15 @@ define gb_LinkTarget__get_headers_check
 ifneq ($$(SELF),$$*)
 $$(eval $$(call gb_Output_info,LinkTarget $$* not defined: Assuming headers to be there!,ALL))
 endif
-$$@ : COMMAND := $$(call gb_Helper_abbreviate_dirs, mkdir -p $$(dir $$@) && touch $$@ && mkdir -p $(WORKDIR)/LinkTarget/pdb/$$(dir $$*))
+$$@ : COMMAND := $$(call gb_Helper_abbreviate_dirs, touch $$@)
 
 endef
 
-$(call gb_LinkTarget_get_headers_target,%) :
+$(WORKDIR)/Headers/%/.dir :
+	$(if $(wildcard $(dir $@)),,mkdir -p $(dir $@))
+
+# sadly because of the subdirectories can't have pattern deps on .dir here
+$(WORKDIR)/Headers/% :
 	$(eval $(gb_LinkTarget__get_headers_check))
 	$(COMMAND)
 
@@ -542,6 +546,10 @@ define gb_LinkTarget_LinkTarget
 $(call gb_LinkTarget_get_clean_target,$(1)) : LINKTARGET := $(1)
 $(call gb_LinkTarget_get_clean_target,$(1)) : AUXTARGETS :=
 $(call gb_LinkTarget_get_headers_target,$(1)) : SELF := $(call gb_LinkTarget__get_workdir_linktargetname,$(1))
+$(call gb_LinkTarget_get_headers_target,$(1)) : \
+	| $(dir $(call gb_LinkTarget_get_headers_target,$(1))).dir \
+	  $(dir $(call gb_LinkTarget_get_target,$(1))).dir \
+	  $(dir $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1))).dir
 $(call gb_LinkTarget_get_target,$(1)) : ILIBTARGET :=
 $(call gb_LinkTarget_get_clean_target,$(1)) \
 $(call gb_LinkTarget_get_target,$(1)) : COBJECTS :=
diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk
index 2b3e6c7..388e6e2 100644
--- a/solenv/gbuild/StaticLibrary.mk
+++ b/solenv/gbuild/StaticLibrary.mk
@@ -42,8 +42,6 @@ endef
 define gb_StaticLibrary__StaticLibrary_impl
 $(call gb_LinkTarget_LinkTarget,$(2),StaticLibrary_$(1),NONE)
 $(call gb_LinkTarget_set_targettype,$(2),StaticLibrary)
-$(call gb_StaticLibrary_get_target,$(1)) : \
-	| $(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))


More information about the Libreoffice-commits mailing list