From 58ef8c188b6bb2ed307f5e825cc7e475c33d0c33 Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Tue, 7 May 2019 21:22:08 +0300 Subject: Make spsupp*.dll usable on 64-bit Windows Build spsupp for both x64 and x86, regardless of target platform. This allows to install the ActiveX component to be used by both 64-bit and 32-bit applications on 64-bit systems (especially IE, which runs both 64-bit and 32-bit processes simultaneously at least on Win10), no matter which LO (32/64) was installed. Move the DLLs from activex feature to ooo, to copy unconditionally. Registration of LO-specific component will be also unconditional; registration of replacement of MSO component will need own feature. This doesn't yet register the component in system: TODO later. Change-Id: Iccf5e73dfae306cb777f844d40611e23c4520a13 Reviewed-on: https://gerrit.libreoffice.org/71925 Reviewed-by: Mike Kaganski Tested-by: Mike Kaganski --- Repository.mk | 12 +++++++++++- configure.ac | 2 ++ shell/Library_spsupp.mk | 42 ------------------------------------------ shell/Library_spsupp_x86.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++ shell/Module_shell.mk | 12 +++++++++++- solenv/gbuild/Library.mk | 1 + 6 files changed, 69 insertions(+), 44 deletions(-) delete mode 100644 shell/Library_spsupp.mk create mode 100644 shell/Library_spsupp_x86.mk diff --git a/Repository.mk b/Repository.mk index a0faa0d2a026..33cc24fd6881 100644 --- a/Repository.mk +++ b/Repository.mk @@ -665,16 +665,26 @@ $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,activexbina $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,activex, \ so_activex \ - spsupp \ )) ifneq ($(BUILD_X64),) $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,activexwin64, \ so_activex_x64 \ +)) +endif + +ifneq ($(CXX_X64_BINARY),) +$(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ spsupp_x64 \ )) endif +ifneq ($(CXX_X86_BINARY),) +$(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo, \ + spsupp_x86 \ +)) +endif + $(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooobinarytable, \ $(if $(WINDOWS_SDK_HOME),\ instooofiltmsi \ diff --git a/configure.ac b/configure.ac index 56485ac37f6d..5a34fe080c33 100644 --- a/configure.ac +++ b/configure.ac @@ -3581,6 +3581,8 @@ if test "$_os" = "WINNT"; then AC_MSG_RESULT([not found]) AC_MSG_WARN([Installation set will not contain 64-bit Explorer extensions]) fi + else + CXX_X64_BINARY=$MSVC_CXX fi AC_SUBST(BUILD_X64) diff --git a/shell/Library_spsupp.mk b/shell/Library_spsupp.mk deleted file mode 100644 index 1963bbfaebda..000000000000 --- a/shell/Library_spsupp.mk +++ /dev/null @@ -1,42 +0,0 @@ -# -*- 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_Library_Library,spsupp)) - -$(eval $(call gb_Library_use_custom_headers,spsupp,\ - shell/source/win32/spsupp/idl \ -)) - -$(eval $(call gb_Library_set_include,spsupp,\ - -I$(SRCDIR)/shell/inc/spsupp \ - $$(INCLUDE) \ -)) - -$(eval $(call gb_Library_use_system_win32_libs,spsupp,\ - advapi32 \ - kernel32 \ - ole32 \ - oleaut32 \ - user32 \ -)) - -$(eval $(call gb_Library_add_nativeres,spsupp,spsupp)) - -$(eval $(call gb_Library_add_ldflags,spsupp,\ - /DEF:$(SRCDIR)/shell/source/win32/spsupp/spsupp.def \ -)) - -$(eval $(call gb_Library_add_exception_objects,spsupp,\ - shell/source/win32/spsupp/COMOpenDocuments \ - shell/source/win32/spsupp/registrar \ - shell/source/win32/spsupp/spsuppClassFactory \ - shell/source/win32/spsupp/spsuppServ \ -)) - -# vim: set shiftwidth=4 tabstop=4 noexpandtab: diff --git a/shell/Library_spsupp_x86.mk b/shell/Library_spsupp_x86.mk new file mode 100644 index 000000000000..ba101b7bb4ec --- /dev/null +++ b/shell/Library_spsupp_x86.mk @@ -0,0 +1,44 @@ +# -*- 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_Library_Library,spsupp_x86)) + +$(eval $(call gb_Library_set_x86,spsupp_x86,YES)) + +$(eval $(call gb_Library_use_custom_headers,spsupp_x86,\ + shell/source/win32/spsupp/idl \ +)) + +$(eval $(call gb_Library_set_include,spsupp_x86,\ + -I$(SRCDIR)/shell/inc/spsupp \ + $$(INCLUDE) \ +)) + +$(eval $(call gb_Library_use_system_win32_libs,spsupp_x86,\ + advapi32 \ + kernel32 \ + ole32 \ + oleaut32 \ + user32 \ +)) + +$(eval $(call gb_Library_add_nativeres,spsupp_x86,spsupp)) + +$(eval $(call gb_Library_add_ldflags,spsupp_x86,\ + /DEF:$(SRCDIR)/shell/source/win32/spsupp/spsupp.def \ +)) + +$(eval $(call gb_Library_add_exception_objects,spsupp_x86,\ + shell/source/win32/spsupp/COMOpenDocuments \ + shell/source/win32/spsupp/registrar \ + shell/source/win32/spsupp/spsuppClassFactory \ + shell/source/win32/spsupp/spsuppServ \ +)) + +# vim: set shiftwidth=4 tabstop=4 noexpandtab: diff --git a/shell/Module_shell.mk b/shell/Module_shell.mk index c0c42cc5bea5..a03e020bf4f7 100644 --- a/shell/Module_shell.mk +++ b/shell/Module_shell.mk @@ -56,7 +56,6 @@ $(eval $(call gb_Module_add_targets,shell,\ StaticLibrary_xmlparser \ WinResTarget_shlxthdl \ CustomTarget_spsupp_idl \ - Library_spsupp \ WinResTarget_spsupp \ WinResTarget_spsupp_dlg \ )) @@ -74,10 +73,21 @@ $(eval $(call gb_Module_add_targets,shell,\ Library_shlxthdl_x64 \ StaticLibrary_shlxthandler_common_x64 \ StaticLibrary_xmlparser_x64 \ +)) +endif + +ifneq ($(CXX_X64_BINARY),) +$(eval $(call gb_Module_add_targets,shell,\ Library_spsupp_x64 \ )) endif +ifneq ($(CXX_X86_BINARY),) +$(eval $(call gb_Module_add_targets,shell,\ + Library_spsupp_x86 \ +)) +endif + endif ifeq ($(OS),MACOSX) diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index 99688916f4eb..0b8903cc80e6 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -204,6 +204,7 @@ gb_Library_set_include = $(call gb_Library__forward_to_Linktarget,$(subst gb_Lib gb_Library_add_ldflags = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) gb_Library_set_ldflags = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) gb_Library_set_x64 = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) +gb_Library_set_x86 = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) gb_Library_add_libs = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) gb_Library_disable_standard_system_libs = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) gb_Library_use_system_darwin_frameworks = $(call gb_Library__forward_to_Linktarget,$(subst gb_Library_,,$(0)),$(1),$(2),$(3)) -- cgit