summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--RepositoryExternal.mk8
-rw-r--r--external/libxml2/ExternalPackage_xml2.mk4
-rw-r--r--external/libxml2/ExternalPackage_xml2_win32.mk26
-rw-r--r--external/libxml2/Module_libxml2.mk1
-rw-r--r--scp2/source/ooo/common_brand.scp19
-rw-r--r--scp2/source/ooo/ure.scp20
6 files changed, 35 insertions, 43 deletions
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 4553be3e70c8..39bed26043fa 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -868,6 +868,14 @@ gb_ExternalProject__use_libxml2:=
else # !SYSTEM_LIBXML
+$(eval $(call gb_Helper_register_packages_for_install,ure,\
+ xml2 \
+))
+
+$(eval $(call gb_Helper_register_packages_for_install,ooo,\
+ xml2_win32 \
+))
+
define gb_LinkTarget__use_libxml2
$(call gb_LinkTarget_use_package,$(1),xml2)
$(call gb_LinkTarget_set_include,$(1),\
diff --git a/external/libxml2/ExternalPackage_xml2.mk b/external/libxml2/ExternalPackage_xml2.mk
index e25a7f8c38e0..a0bf5eb9c244 100644
--- a/external/libxml2/ExternalPackage_xml2.mk
+++ b/external/libxml2/ExternalPackage_xml2.mk
@@ -17,12 +17,8 @@ $(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.2.
else ifeq ($(OS),WNT)
ifeq ($(COM),GCC)
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,.libs/libxml2.dll))
-$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_LIB_FOLDER)/libxml2.dll,.libs/libxml2.dll))
else # COM=MSC
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
-# duplicate copy next to executables due to idiotic Win32 DLL search order
-# see 5a5dab5167d136c315e81448ea8eca59e60067da
-$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
endif
else # OS!=WNT
$(eval $(call gb_ExternalPackage_add_file,xml2,$(LIBO_URE_LIB_FOLDER)/libxml2.so.2,.libs/libxml2.so.2.9.1))
diff --git a/external/libxml2/ExternalPackage_xml2_win32.mk b/external/libxml2/ExternalPackage_xml2_win32.mk
new file mode 100644
index 000000000000..c97fd89aa32f
--- /dev/null
+++ b/external/libxml2/ExternalPackage_xml2_win32.mk
@@ -0,0 +1,26 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_ExternalPackage_ExternalPackage,xml2_win32,xml2))
+
+$(eval $(call gb_ExternalPackage_use_external_project,xml2_win32,xml2))
+
+# duplicate copy next to executables due to stupid Win32 DLL search order
+# where a libxml2.dll in C:\Windows is loaded before one in URE lib dir
+# see 5a5dab5167d136c315e81448ea8eca59e60067da
+
+ifeq ($(OS),WNT)
+ifeq ($(COM),GCC)
+$(eval $(call gb_ExternalPackage_add_file,xml2_win32,$(LIBO_LIB_FOLDER)/libxml2.dll,.libs/libxml2.dll))
+else # COM=MSC
+$(eval $(call gb_ExternalPackage_add_file,xml2_win32,$(LIBO_LIB_FOLDER)/libxml2.dll,win32/bin.msvc/libxml2.dll))
+endif
+endif # OS=WNT
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libxml2/Module_libxml2.mk b/external/libxml2/Module_libxml2.mk
index f6bca3f80e4f..9efb17c26830 100644
--- a/external/libxml2/Module_libxml2.mk
+++ b/external/libxml2/Module_libxml2.mk
@@ -11,6 +11,7 @@ $(eval $(call gb_Module_Module,libxml2))
$(eval $(call gb_Module_add_targets,libxml2,\
ExternalPackage_xml2 \
+ ExternalPackage_xml2_win32 \
ExternalProject_xml2 \
UnpackedTarball_xml2 \
))
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 2498822f2440..e731d8f9dae9 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -61,7 +61,6 @@ Module gid_Module_Root_Brand
gid_Brand_File_Bin_Unopkgcom,
gid_Brand_File_Bin_Unopkgexe,
gid_Brand_File_Bin_Unopkg,
- gid_Brand_File_Bin_Libxml2,
gid_Brand_File_Bmp_IntroAboutShell,
gid_Brand_File_Bmp_IntroAboutShell_custom,
gid_Brand_File_Desktophelper_Txt,
@@ -616,24 +615,6 @@ File gid_Brand_File_Bin_Unopkg
Name = "unopkg.bin";
End
-// Due to Windows DLL search order, OOo executables might pick up a libxml2 DLL
-// from a Windows system directory instead of the one from the URE; to avoid
-// problems, as a HACK, for now a copy of the URE libxml2 DLL is placed next to
-// the OOo executables (where it takes precedence even over DLLs from the
-// Windows system directory):
-#if defined WNT && !defined SYSTEM_LIBXML
-File gid_Brand_File_Bin_Libxml2
- TXT_FILE_BODY;
- Dir = gid_Brand_Dir_Program;
-#if defined _gcc3
- Name = SCP2_URE_DL_NORMAL("libxml2-2");
-#else
- Name = SCP2_URE_DL_NORMAL("libxml2");
-#endif
- Styles = (PACKED);
-End
-#endif
-
#if defined ENABLE_NPAPI_INTO_BROWSER
File gid_Brand_File_Lib_Npsoplugin
BIN_FILE_BODY;
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index 00263a9b0286..fb5aaba50d4b 100644
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
@@ -370,25 +370,6 @@ End
#endif
-#if !defined SYSTEM_LIBXML
-File gid_File_Dl_Libxml2
- LIB_FILE_BODY;
- Dir = SCP2_URE_DL_DIR;
-#if defined WNT
-#if defined _gcc3
- Name = SCP2_URE_DL_NORMAL("libxml2-2");
-#else
- Name = SCP2_URE_DL_NORMAL("libxml2");
-#endif
-#elif defined MACOSX
- Name = SCP2_URE_DL_NORMAL("xml2.2");
-#else
- Name = SCP2_URE_DL_VER("xml2", "2");
-#endif
- Styles = (PACKED);
-End
-#endif
-
#ifdef AIX
Unixlink gid_Unixlink_File_Dl_Libxml2
BIN_FILE_BODY;
@@ -488,7 +469,6 @@ Module gid_Module_Root_Ure_Hidden
gid_Unixlink_File_Dl_Salhelper,
gid_File_Dl_Profile_Uno,
gid_Unixlink_File_Dl_Rmcxt,
- gid_File_Dl_Libxml2,
gid_File_Lib_Mingw_GccS_Ure,
gid_File_Lib_Mingw_Stdcpp_Ure,
gid_File_Dl_Uwinapi,