summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2021-05-19 07:55:40 +0200
committerJan-Marek Glogowski <glogow@fbihome.de>2021-05-27 09:55:00 +0200
commit02caadfcdb381e6147c4ba4ac15109a96da063dd (patch)
tree741b26ca8cfe9720f0e3a6e41a46debe6bf033c1
parentgbuild: implement gb_Library_get_target_for_build (diff)
downloadcore-02caadfcdb381e6147c4ba4ac15109a96da063dd.tar.gz
core-02caadfcdb381e6147c4ba4ac15109a96da063dd.zip
gbuild: create full services.rdb from build
Currently the build handles global build dependencies redundant in a few places: * in Repository*mk + modules - the "real" build dependencies * the full services.rdb generation * the static UNO constructor map generation As a result, the component files don't reflect the build components and the RDB services generation redefines the build dependencies. So this drops the latter two by generating the list of components and it's constructors from the build itself. As one of the main consequences, component files must now be split, so they reflect the real components in the libraries. This also adds a little convenience helper to add multiple component files: gb_Library_set_componentfiles Change-Id: I1b38a6f2c1e5221f18d7e5e756c30263b555d962
-rw-r--r--Makefile.gbuild5
-rw-r--r--basic/Library_sb.mk4
-rw-r--r--config_host.mk.in1
-rw-r--r--configure.ac12
-rw-r--r--postprocess/CustomTarget_components.mk40
-rw-r--r--postprocess/Module_postprocess.mk1
-rw-r--r--postprocess/Rdb_services.mk5
-rwxr-xr-xsolenv/bin/constructors.py27
-rwxr-xr-xsolenv/bin/native-code.py9
-rw-r--r--solenv/gbuild/ComponentTarget.mk4
-rw-r--r--solenv/gbuild/Library.mk7
-rw-r--r--solenv/gbuild/Rdb.mk4
-rw-r--r--svx/Library_svx.mk5
-rw-r--r--svx/util/crashreport.component26
-rw-r--r--svx/util/svx.component4
-rw-r--r--sw/Library_sw.mk5
-rw-r--r--sw/util/sw.component8
-rw-r--r--sw/util/sw_mm.component29
-rw-r--r--xmlsecurity/Library_xsec_xmlsec.mk7
-rw-r--r--xmlsecurity/util/xmlsecurity.component4
-rw-r--r--xmlsecurity/util/xsec_xmlsec.component28
-rw-r--r--xmlsecurity/util/xsec_xmlsec_gpg.component26
-rw-r--r--xmlsecurity/util/xsec_xmlsec_mscrypt.component42
-rw-r--r--xmlsecurity/util/xsec_xmlsec_nss.component26
24 files changed, 280 insertions, 49 deletions
diff --git a/Makefile.gbuild b/Makefile.gbuild
index 9e7f205e22d4..db049264f65d 100644
--- a/Makefile.gbuild
+++ b/Makefile.gbuild
@@ -24,6 +24,11 @@ ifneq (,$(DISABLE_DYNLOADING))
$(if $(gb_LinkTarget__Lock),$(shell rm -f $(gb_LinkTarget__Lock)))
endif
+ifeq ($(ENABLE_SERVICES_RDB_FROM_BUILD),TRUE)
+$(foreach comp,$(filter-out $(gb_Rdb__URECOMPONENTS),$(gb_ComponentTarget__ALLCOMPONENTS)), \
+ $(eval $(call gb_Rdb_add_components,services,$(comp))))
+endif
+
upload-symbols:
bin/upload_symbols.py $(WORKDIR)/symbols.zip $(BREAKPAD_SYMBOL_CONFIG) "$(LIBO_VERSION_MAJOR).$(LIBO_VERSION_MINOR).$(LIBO_VERSION_MICRO).$(LIBO_VERSION_PATCH)$(LIBO_VERSION_SUFFIX)$(LIBO_VERSION_SUFFIX_SUFFIX)"
diff --git a/basic/Library_sb.mk b/basic/Library_sb.mk
index 6a27b15ed54d..6bee8df435cb 100644
--- a/basic/Library_sb.mk
+++ b/basic/Library_sb.mk
@@ -19,8 +19,6 @@
$(eval $(call gb_Library_Library,sb))
-$(eval $(call gb_Library_set_componentfile,sb,basic/util/sb))
-
$(eval $(call gb_Library_set_include,sb,\
$$(INCLUDE) \
-I$(SRCDIR)/basic/inc \
@@ -60,6 +58,8 @@ $(eval $(call gb_Library_use_libraries,sb,\
ifneq ($(filter SCRIPTING,$(BUILD_TYPE)),)
+$(eval $(call gb_Library_set_componentfile,sb,basic/util/sb))
+
$(eval $(call gb_Library_add_exception_objects,sb,\
basic/source/basmgr/basicmanagerrepository \
basic/source/basmgr/basmgr \
diff --git a/config_host.mk.in b/config_host.mk.in
index bf73fb886414..1a85d0f03d0a 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -198,6 +198,7 @@ export ENABLE_SCRIPTING_BEANSHELL=@ENABLE_SCRIPTING_BEANSHELL@
export ENABLE_SCRIPTING_JAVASCRIPT=@ENABLE_SCRIPTING_JAVASCRIPT@
export ENABLE_SDREMOTE=@ENABLE_SDREMOTE@
export ENABLE_SDREMOTE_BLUETOOTH=@ENABLE_SDREMOTE_BLUETOOTH@
+export ENABLE_SERVICES_RDB_FROM_BUILD=@ENABLE_SERVICES_RDB_FROM_BUILD@
export ENABLE_SILENT_MSI=@ENABLE_SILENT_MSI@
export ENABLE_SKIA=@ENABLE_SKIA@
export ENABLE_SKIA_DEBUG=@ENABLE_SKIA_DEBUG@
diff --git a/configure.ac b/configure.ac
index 7e9d848bcc9b..3b28adff5927 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1910,6 +1910,10 @@ AC_ARG_ENABLE(xmlhelp,
[Disable XML help support]),
,enable_xmlhelp=yes)
+AC_ARG_ENABLE(services-rdb-from-build,
+ AS_HELP_STRING([--enable-services-rdb-from-build],
+ [Automatically create the services.rdb from all build components. WIP]))
+
dnl ===================================================================
dnl Optional Packages (--with/without-)
@@ -2794,7 +2798,6 @@ AC_ARG_WITH(system-icu-for-build,
AS_HELP_STRING([--with-system-icu-for-build=yes/no/force],
[Use icu already on system for build tools (cross-compilation only).]))
-
dnl ===================================================================
dnl Check for incompatible options set by fuzzing, and reset those
dnl automatically to working combinations
@@ -2913,6 +2916,12 @@ if test $_os != iOS -a $_os != Android -a $_os != Emscripten -a "$enable_fuzzers
AC_DEFINE(HAVE_FEATURE_MULTIUSER_ENVIRONMENT)
fi
+ENABLE_SERVICES_RDB_FROM_BUILD=
+if test "$enable_services_rdb_from_build" = yes; then
+ ENABLE_SERVICES_RDB_FROM_BUILD=TRUE
+fi
+AC_SUBST(ENABLE_SERVICES_RDB_FROM_BUILD)
+
# Whether to build "avmedia" functionality or not.
if test "$enable_avmedia" = yes; then
@@ -5456,6 +5465,7 @@ if test "$cross_compiling" = "yes"; then
--disable-pdfimport \
--disable-postgresql-sdbc \
--disable-scripting \
+ --disable-service-rdb-from-build \
--disable-skia \
--enable-icecream="$enable_icecream" \
--without-doxygen \
diff --git a/postprocess/CustomTarget_components.mk b/postprocess/CustomTarget_components.mk
new file mode 100644
index 000000000000..a53e23b86525
--- /dev/null
+++ b/postprocess/CustomTarget_components.mk
@@ -0,0 +1,40 @@
+# vim: set noet sw=4 ts=4:
+# -*- 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_CustomTarget_CustomTarget,postprocess/components))
+
+ifeq (,$(gb_PARTIAL_BUILD))
+
+postprocess_WORKDIR := $(call gb_CustomTarget_get_workdir,postprocess)
+
+$(call gb_CustomTarget_get_target,postprocess/components): \
+ $(postprocess_WORKDIR)/services_constructors.list \
+
+$(postprocess_WORKDIR)/services_componentfiles.list: \
+ $(call gb_Rdb_get_target,services) \
+ $(call gb_Rdb_get_target,ure/services) \
+ | $(postprocess_WORKDIR)/.dir
+ $(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),GEN,2)
+ TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),1, \
+ $(foreach comp,$(sort $(gb_ComponentTarget__ALLCOMPONENTS)),$(call gb_ComponentTarget_get_source,$(comp)))) && \
+ mv $$TEMPFILE $@
+
+$(postprocess_WORKDIR)/services_constructors.list: \
+ $(SRCDIR)/solenv/bin/constructors.py \
+ $(postprocess_WORKDIR)/services_componentfiles.list \
+ | $(postprocess_WORKDIR)/.dir
+ $(call gb_Output_announce,$(subst $(BUILDDIR)/,,$@),$(true),GEN,2)
+ TEMPFILE=$(shell $(gb_MKTEMP)) && \
+ $(call gb_Helper_abbreviate_dirs,$(call gb_ExternalExecutable_get_command,python) $^) > $$TEMPFILE && \
+ $(call gb_Helper_replace_if_different_and_touch,$${TEMPFILE},$@)
+
+endif
+
+# vim: set noet sw=4:
diff --git a/postprocess/Module_postprocess.mk b/postprocess/Module_postprocess.mk
index c1aa1dbc7e87..369feff99367 100644
--- a/postprocess/Module_postprocess.mk
+++ b/postprocess/Module_postprocess.mk
@@ -13,6 +13,7 @@ $(eval $(call gb_Module_Module,postprocess))
# is reused in Package_registry!
$(eval $(call gb_Module_add_targets,postprocess,\
+ $(if $(ENABLE_SERVICES_RDB_FROM_BUILD),CustomTarget_components) \
CustomTarget_registry \
Rdb_services \
))
diff --git a/postprocess/Rdb_services.mk b/postprocess/Rdb_services.mk
index 6e37e847257a..d2b931699185 100644
--- a/postprocess/Rdb_services.mk
+++ b/postprocess/Rdb_services.mk
@@ -9,6 +9,9 @@
$(eval $(call gb_Rdb_Rdb_install,services))
+# see Makefile.gbuild for the gb_Rdb_add_components,services calls
+ifeq (,$(ENABLE_SERVICES_RDB_FROM_BUILD))
+
#
# "minimal" list of services for cross-compiling build tools
#
@@ -335,4 +338,6 @@ endif
endif # $(gb_Side),host
+endif # ENABLE_SERVICES_RDB_FROM_BUILD
+
# vim: set noet sw=4 ts=4:
diff --git a/solenv/bin/constructors.py b/solenv/bin/constructors.py
new file mode 100755
index 000000000000..1237da17142d
--- /dev/null
+++ b/solenv/bin/constructors.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+# Call $0 <file with a list of component file paths>
+# Dumps all the implementing constructors to stdout
+
+import xml.sax
+import os.path
+import sys
+
+constructors = list()
+
+class ComponentHandler(xml.sax.ContentHandler):
+ def startElement(self, tag, attributes):
+ if tag == "implementation" and "constructor" in attributes:
+ constructors.append(attributes["constructor"])
+
+if __name__ == "__main__":
+ parser = xml.sax.make_parser()
+ parser.setFeature(xml.sax.handler.feature_namespaces, 0)
+ parser.setContentHandler(ComponentHandler())
+ for filename in sys.argv[1:]:
+ with open(filename, "r") as components_listfile:
+ for line in components_listfile:
+ for component_filename in line.strip().split():
+ parser.parse(component_filename)
+ constructors.sort()
+ print("\n".join(constructors))
diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py
index 0cbb5cc9cc8d..4189b25eabb3 100755
--- a/solenv/bin/native-code.py
+++ b/solenv/bin/native-code.py
@@ -803,6 +803,7 @@ opts.add_option("-j", "--java-guard", action="store_true", help="include externa
opts.add_option("-g", "--group", action="append", help="group of implementations to make available in application", dest="groups")
opts.add_option("-r", "--limit-rdb", action="append", help="instead of outputting native-code.cxx, limit the services.rdb only to the services defined by the groups", dest="services")
opts.add_option("-C", "--pure-c", action="store_true", help="do not print extern \"C\"", dest="pure_c", default=False)
+opts.add_option("-c", "--constructors", help="file with the list of constructors", dest="constructors_file")
(options, args) = opts.parse_args()
@@ -816,6 +817,9 @@ if options.groups:
else:
full_constructor_map[constructor] = True
+if not options.groups and options.constructors_file:
+ options.groups = factory_map.keys()
+
# dict of all the factories that we need according to -g's
full_factory_map = {}
if options.groups:
@@ -832,6 +836,11 @@ if options.services:
limit_rdb(options.services, full_factory_map, full_constructor_map)
exit(0)
+if options.constructors_file:
+ with open(options.constructors_file, "r") as constructors:
+ for line in constructors:
+ full_constructor_map[line.strip()] = True
+
print ("""/*
* This is a generated file. Do not edit.
*
diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk
index 067f24e35ce6..de88ae1f5177 100644
--- a/solenv/gbuild/ComponentTarget.mk
+++ b/solenv/gbuild/ComponentTarget.mk
@@ -17,6 +17,8 @@
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
+gb_ComponentTarget__ALLCOMPONENTS :=
+
gb_ComponentTarget_XSLTCOMMANDFILE := $(SRCDIR)/solenv/bin/createcomponent.xslt
gb_ComponentTarget_get_source = $(SRCDIR)/$(1).component
@@ -58,6 +60,8 @@ $(call gb_ComponentTarget_get_target,$(1)) : COMPONENTSOURCE := $(call gb_Compon
$(call gb_ComponentTarget_get_target,$(1)) : $(call gb_ComponentTarget_get_source,$(patsubst CppunitTest/%,%,$(1)))
+$(if $(filter $(1),$(patsubst CppunitTest/%,%,$(1))),$(eval gb_ComponentTarget__ALLCOMPONENTS += $(1)))
+
endef
# vim: set noet sw=4:
diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index f8a08f915d35..60c234342a82 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -133,6 +133,8 @@ endef
# But the component target also must be delivered; use the target
# gb_Library_get_exports_target for that purpose, since it is already
# the "final" target of the Library...
+#
+# call gb_Library_set_componentfile,library,componentfile
define gb_Library_set_componentfile
$(call gb_ComponentTarget_ComponentTarget,$(2),\
$(call gb_Library__get_componentprefix,$(gb_Library__get_name)),\
@@ -145,6 +147,11 @@ $(call gb_Library_get_clean_target,$(gb_Library__get_name)) : \
$(call gb_ComponentTarget_get_clean_target,$(2))
endef
+# call gb_Library_set_componentfiles,library,componentfiles
+gb_Library_set_componentfiles = \
+ $(foreach comp,$(2),$(call gb_Library_set_componentfile,$(1),$(comp)))
+
+
gb_Library__get_name = $(if $(filter $(1),$(gb_MERGEDLIBS)),merged,$(1))
gb_Library__get_componentprefix = \
diff --git a/solenv/gbuild/Rdb.mk b/solenv/gbuild/Rdb.mk
index 337fcc858a3d..1684ae2cd1fb 100644
--- a/solenv/gbuild/Rdb.mk
+++ b/solenv/gbuild/Rdb.mk
@@ -7,6 +7,8 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
+gb_Rdb__URECOMPONENTS :=
+
gb_Rdb__get_install_target = $(INSTROOT)/$(LIBO_ETC_FOLDER)/services/$(1).rdb
define gb_Rdb__command
@@ -59,7 +61,7 @@ endef
define gb_Rdb_add_component
$(call gb_Rdb_get_target,$(1)) : $(call gb_ComponentTarget_get_target,$(2))
$(call gb_Rdb_get_target,$(1)) : COMPONENTS += $(2)
-
+$(if $(filter ure/services,$(1)),$(eval gb_Rdb__URECOMPONENTS += $(2)))
endef
define gb_Rdb_add_components
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 5ff8a89f6196..598c125b7df8 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -19,7 +19,10 @@
$(eval $(call gb_Library_Library,svx))
-$(eval $(call gb_Library_set_componentfile,svx,svx/util/svx))
+$(eval $(call gb_Library_set_componentfiles,svx, \
+ $(call gb_Helper_optional,BREAKPAD,svx/util/crashreport) \
+ svx/util/svx \
+))
$(eval $(call gb_Library_set_include,svx,\
-I$(SRCDIR)/svx/inc \
diff --git a/svx/util/crashreport.component b/svx/util/crashreport.component
new file mode 100644
index 000000000000..7d3dddf366aa
--- /dev/null
+++ b/svx/util/crashreport.component
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.svx.CrashReportUI"
+ constructor="com_sun_star_comp_svx_CrashReportUI_get_implementation">
+ <service name="com.sun.star.dialog.CrashReportUI"/>
+ </implementation>
+</component>
diff --git a/svx/util/svx.component b/svx/util/svx.component
index ff8d802394ac..97f68c4734c8 100644
--- a/svx/util/svx.component
+++ b/svx/util/svx.component
@@ -32,10 +32,6 @@
constructor="com_sun_star_comp_svx_RecoveryUI_get_implementation">
<service name="com.sun.star.dialog.RecoveryUI"/>
</implementation>
- <implementation name="com.sun.star.comp.svx.CrashReportUI"
- constructor="com_sun_star_comp_svx_CrashReportUI_get_implementation">
- <service name="com.sun.star.dialog.CrashReportUI"/>
- </implementation>
<implementation name="com.sun.star.comp.svx.SafeModeUI"
constructor="com_sun_star_comp_svx_SafeModeUI_get_implementation">
<service name="com.sun.star.dialog.SafeModeUI"/>
diff --git a/sw/Library_sw.mk b/sw/Library_sw.mk
index 9b379516bf97..0a8654a04c3d 100644
--- a/sw/Library_sw.mk
+++ b/sw/Library_sw.mk
@@ -21,7 +21,10 @@ $(eval $(call gb_Library_Library,sw))
$(eval $(call gb_Library_add_sdi_headers,sw,sw/sdi/swslots))
-$(eval $(call gb_Library_set_componentfile,sw,sw/util/sw))
+$(eval $(call gb_Library_set_componentfiles,sw, \
+ $(call gb_Helper_optional,DBCONNECTIVITY,sw/util/sw_mm) \
+ sw/util/sw \
+))
$(eval $(call gb_Library_set_precompiled_header,sw,sw/inc/pch/precompiled_sw))
diff --git a/sw/util/sw.component b/sw/util/sw.component
index f4ad4f7e3339..3b88394944dd 100644
--- a/sw/util/sw.component
+++ b/sw/util/sw.component
@@ -39,14 +39,6 @@
<service name="com.sun.star.sdb.DataAccessDescriptor"/>
<service name="com.sun.star.text.MailMerge"/>
</implementation>
- <implementation name="lo.writer.MMCurrentEntryController"
- constructor="lo_writer_MMCurrentEntryController_get_implementation">
- <service name="com.sun.star.frame.ToolbarController"/>
- </implementation>
- <implementation name="lo.writer.MMExcludeEntryController"
- constructor="lo_writer_MMExcludeEntryController_get_implementation">
- <service name="com.sun.star.frame.ToolbarController"/>
- </implementation>
<implementation name="lo.writer.PageSizeToolBoxControl"
constructor="lo_writer_PageSizeToolBoxControl_get_implementation">
<service name="com.sun.star.frame.ToolbarController"/>
diff --git a/sw/util/sw_mm.component b/sw/util/sw_mm.component
new file mode 100644
index 000000000000..701064e97c78
--- /dev/null
+++ b/sw/util/sw_mm.component
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="lo.writer.MMCurrentEntryController"
+ constructor="lo_writer_MMCurrentEntryController_get_implementation">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="lo.writer.MMExcludeEntryController"
+ constructor="lo_writer_MMExcludeEntryController_get_implementation">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/Library_xsec_xmlsec.mk b/xmlsecurity/Library_xsec_xmlsec.mk
index 450e19b3267b..1904d627ec14 100644
--- a/xmlsecurity/Library_xsec_xmlsec.mk
+++ b/xmlsecurity/Library_xsec_xmlsec.mk
@@ -9,7 +9,12 @@
$(eval $(call gb_Library_Library,xsec_xmlsec))
-$(eval $(call gb_Library_set_componentfile,xsec_xmlsec,xmlsecurity/util/xsec_xmlsec))
+$(eval $(call gb_Library_set_componentfiles,xsec_xmlsec, \
+ $(if $(ENABLE_GPGMEPP),xmlsecurity/util/xsec_xmlsec_gpg) \
+ $(if $(or $(ENABLE_NSS),$(filter WNT,$(OS))),xmlsecurity/util/xsec_xmlsec_mscrypt) \
+ $(if $(ENABLE_NSS),xmlsecurity/util/xsec_xmlsec_nss) \
+ xmlsecurity/util/xsec_xmlsec \
+))
$(eval $(call gb_Library_set_include,xsec_xmlsec,\
$$(INCLUDE) \
diff --git a/xmlsecurity/util/xmlsecurity.component b/xmlsecurity/util/xmlsecurity.component
index adb647f20491..74ca48d7296f 100644
--- a/xmlsecurity/util/xmlsecurity.component
+++ b/xmlsecurity/util/xmlsecurity.component
@@ -23,8 +23,4 @@
constructor="com_sun_star_security_CertificateContainer_get_implementation">
<service name="com.sun.star.security.CertificateContainer"/>
</implementation>
- <implementation name="com.sun.star.security.DocumentDigitalSignatures"
- constructor="com_sun_star_security_DocumentDigitalSignatures_get_implementation">
- <service name="com.sun.star.security.DocumentDigitalSignatures"/>
- </implementation>
</component>
diff --git a/xmlsecurity/util/xsec_xmlsec.component b/xmlsecurity/util/xsec_xmlsec.component
index d219dc6f9d71..463965de6008 100644
--- a/xmlsecurity/util/xsec_xmlsec.component
+++ b/xmlsecurity/util/xsec_xmlsec.component
@@ -19,36 +19,12 @@
<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
xmlns="http://openoffice.org/2010/uno-components">
- <implementation name="com.sun.star.xml.crypto.NSSInitializer"
- constructor="com_sun_star_xml_crypto_NSSInitializer_get_implementation">
- <service name="com.sun.star.xml.crypto.NSSInitializer"/>
- </implementation>
- <implementation name="com.sun.star.xml.crypto.SEInitializer"
- constructor="com_sun_star_xml_crypto_SEInitializer_get_implementation">
- <service name="com.sun.star.xml.crypto.SEInitializer"/>
- </implementation>
- <implementation name="com.sun.star.xml.security.SEInitializer_Gpg"
- constructor="com_sun_star_xml_security_SEInitializer_Gpg_get_implementation">
- <service name="com.sun.star.xml.crypto.GPGSEInitializer"/>
- </implementation>
- <implementation name="com.sun.star.xml.crypto.SecurityEnvironment"
- constructor="com_sun_star_xml_crypto_SecurityEnvironment_get_implementation">
- <service name="com.sun.star.xml.crypto.SecurityEnvironment"/>
- </implementation>
<implementation name="com.sun.star.xml.wrapper.XMLDocumentWrapper"
- constructor="com_sun_star_xml_wrapper_XMLDocumentWrapper_get_implementation">
+ constructor="com_sun_star_xml_wrapper_XMLDocumentWrapper_get_implementation">
<service name="com.sun.star.xml.wrapper.XMLDocumentWrapper"/>
</implementation>
<implementation name="com.sun.star.xml.wrapper.XMLElementWrapper"
- constructor="com_sun_star_xml_wrapper_XMLElementWrapper_get_implementation">
+ constructor="com_sun_star_xml_wrapper_XMLElementWrapper_get_implementation">
<service name="com.sun.star.xml.wrapper.XMLElementWrapper"/>
</implementation>
- <implementation name="com.sun.star.xml.crypto.XMLSecurityContext"
- constructor="com_sun_star_xml_crypto_XMLSecurityContext_get_implementation">
- <service name="com.sun.star.xml.crypto.XMLSecurityContext"/>
- </implementation>
- <implementation name="com.sun.star.xml.crypto.XMLSignature"
- constructor="com_sun_star_xml_crypto_XMLSignature_get_implementation">
- <service name="com.sun.star.xml.crypto.XMLSignature"/>
- </implementation>
</component>
diff --git a/xmlsecurity/util/xsec_xmlsec_gpg.component b/xmlsecurity/util/xsec_xmlsec_gpg.component
new file mode 100644
index 000000000000..e84210b3148e
--- /dev/null
+++ b/xmlsecurity/util/xsec_xmlsec_gpg.component
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.xml.security.SEInitializer_Gpg"
+ constructor="com_sun_star_xml_security_SEInitializer_Gpg_get_implementation">
+ <service name="com.sun.star.xml.crypto.GPGSEInitializer"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/util/xsec_xmlsec_mscrypt.component b/xmlsecurity/util/xsec_xmlsec_mscrypt.component
new file mode 100644
index 000000000000..d52f4a9e7330
--- /dev/null
+++ b/xmlsecurity/util/xsec_xmlsec_mscrypt.component
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.xml.crypto.SEInitializer"
+ constructor="com_sun_star_xml_crypto_SEInitializer_get_implementation">
+ <service name="com.sun.star.xml.crypto.SEInitializer"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.crypto.SecurityEnvironment"
+ constructor="com_sun_star_xml_crypto_SecurityEnvironment_get_implementation">
+ <service name="com.sun.star.xml.crypto.SecurityEnvironment"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.crypto.XMLSecurityContext"
+ constructor="com_sun_star_xml_crypto_XMLSecurityContext_get_implementation">
+ <service name="com.sun.star.xml.crypto.XMLSecurityContext"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.crypto.XMLSignature"
+ constructor="com_sun_star_xml_crypto_XMLSignature_get_implementation">
+ <service name="com.sun.star.xml.crypto.XMLSignature"/>
+ </implementation>
+ <implementation name="com.sun.star.security.DocumentDigitalSignatures"
+ constructor="com_sun_star_security_DocumentDigitalSignatures_get_implementation">
+ <service name="com.sun.star.security.DocumentDigitalSignatures"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/util/xsec_xmlsec_nss.component b/xmlsecurity/util/xsec_xmlsec_nss.component
new file mode 100644
index 000000000000..015248cdfb06
--- /dev/null
+++ b/xmlsecurity/util/xsec_xmlsec_nss.component
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ -->
+
+<component loader="com.sun.star.loader.SharedLibrary" environment="@CPPU_ENV@"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.xml.crypto.NSSInitializer"
+ constructor="com_sun_star_xml_crypto_NSSInitializer_get_implementation">
+ <service name="com.sun.star.xml.crypto.NSSInitializer"/>
+ </implementation>
+</component>