From 49b020db22028b3f4de96769d42fcc98ffb3f4e6 Mon Sep 17 00:00:00 2001 From: Peter Hartmann Date: Mon, 4 Nov 2013 14:56:18 +0100 Subject: make it possible to disable XML schema usage Removing XML schema functionality reduces the size of libQt5XmlPatterns.so considerably: Linux desktop release mode: with XML schema: 4.3 MB without XML schema: 3.2 MB BlackBerry10 release mode: with XML schema: 2.6 MB without XML schema: 1.9 MB XML schema might not be used, especially on a mobile / embedded device, as opposed to the rest of xmlpatterns (e.g. XPath through QML XmlListModel). Task-number: QTBUG-28068 Change-Id: I5024a822179e7241e592f079efe3adef8f661c70 Reviewed-by: Oswald Buddenhagen --- examples/xmlpatterns/xmlpatterns.pro | 7 ++++++- src/xmlpatterns/api/api.pri | 18 +++++++++++------- src/xmlpatterns/xmlpatterns.pro | 6 +++++- tests/auto/auto.pro | 12 ++++++++---- tools/tools.pro | 9 ++++++++- 5 files changed, 38 insertions(+), 14 deletions(-) diff --git a/examples/xmlpatterns/xmlpatterns.pro b/examples/xmlpatterns/xmlpatterns.pro index ca63f69..bfc3a3e 100644 --- a/examples/xmlpatterns/xmlpatterns.pro +++ b/examples/xmlpatterns/xmlpatterns.pro @@ -1,6 +1,11 @@ TEMPLATE = subdirs SUBDIRS += xquery -qtHaveModule(widgets): SUBDIRS += filetree schema recipes +qtHaveModule(widgets) { + SUBDIRS += recipes + + load(qfeatures) + !contains(QT_DISABLED_FEATURES, xmlschema): SUBDIRS += filetree schema +} EXAMPLE_FILES = \ shared diff --git a/src/xmlpatterns/api/api.pri b/src/xmlpatterns/api/api.pri index 82d1c03..2192d82 100644 --- a/src/xmlpatterns/api/api.pri +++ b/src/xmlpatterns/api/api.pri @@ -23,10 +23,6 @@ HEADERS += $$PWD/qabstractxmlforwarditerator_p.h \ $$PWD/qxmlquery_p.h \ $$PWD/qxmlresultitems.h \ $$PWD/qxmlresultitems_p.h \ - $$PWD/qxmlschema.h \ - $$PWD/qxmlschema_p.h \ - $$PWD/qxmlschemavalidator.h \ - $$PWD/qxmlschemavalidator_p.h \ $$PWD/qxmlserializer.h \ $$PWD/qxmlserializer_p.h \ $$PWD/qcoloringmessagehandler_p.h \ @@ -50,9 +46,17 @@ SOURCES += $$PWD/qvariableloader.cpp \ $$PWD/qxmlnamepool.cpp \ $$PWD/qxmlquery.cpp \ $$PWD/qxmlresultitems.cpp \ - $$PWD/qxmlschema.cpp \ - $$PWD/qxmlschema_p.cpp \ - $$PWD/qxmlschemavalidator.cpp \ $$PWD/qxmlserializer.cpp \ $$PWD/qcoloringmessagehandler.cpp \ $$PWD/qcoloroutput.cpp + +load(qfeatures) +!contains(QT_DISABLED_FEATURES, xmlschema) { + HEADERS += $$PWD/qxmlschema.h \ + $$PWD/qxmlschema_p.h \ + $$PWD/qxmlschemavalidator.h \ + $$PWD/qxmlschemavalidator_p.h + SOURCES += $$PWD/qxmlschema.cpp \ + $$PWD/qxmlschema_p.cpp \ + $$PWD/qxmlschemavalidator.cpp +} diff --git a/src/xmlpatterns/xmlpatterns.pro b/src/xmlpatterns/xmlpatterns.pro index 49543b6..7aac0c9 100644 --- a/src/xmlpatterns/xmlpatterns.pro +++ b/src/xmlpatterns/xmlpatterns.pro @@ -20,7 +20,11 @@ include($$PWD/iterators/iterators.pri) include($$PWD/janitors/janitors.pri) include($$PWD/parser/parser.pri) include($$PWD/projection/projection.pri) -include($$PWD/schema/schema.pri) + +load(qfeatures) +!contains(QT_DISABLED_FEATURES, xmlschema) { + include($$PWD/schema/schema.pri) +} include($$PWD/type/type.pri) include($$PWD/utils/utils.pri) include($$PWD/qobjectmodel/qobjectmodel.pri, "", true) diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 8f0a1e7..df80f80 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -21,19 +21,23 @@ SUBDIRS=\ qxmlnodemodelindex \ qxmlquery \ qxmlresultitems \ - qxmlschema \ - qxmlschemavalidator \ qxmlserializer \ xmlpatterns \ xmlpatternsdiagnosticsts \ - xmlpatternsschema \ - xmlpatternsschemats \ xmlpatternssdk \ xmlpatternsvalidator \ xmlpatternsview \ xmlpatternsxqts \ xmlpatternsxslts \ +load(qfeatures) +!contains(QT_DISABLED_FEATURES, xmlschema) { + SUBDIRS += qxmlschema \ + qxmlschemavalidator \ + xmlpatternsschema \ + xmlpatternsschemats +} + xmlpatternsdiagnosticsts.depends = xmlpatternssdk xmlpatternsview.depends = xmlpatternssdk xmlpatternsxslts.depends = xmlpatternssdk diff --git a/tools/tools.pro b/tools/tools.pro index 121bed8..92bbaca 100644 --- a/tools/tools.pro +++ b/tools/tools.pro @@ -1,2 +1,9 @@ TEMPLATE = subdirs -!android|android_app: SUBDIRS += xmlpatterns xmlpatternsvalidator + +load(qfeatures) +!android|android_app { + SUBDIRS += xmlpatterns + !contains(QT_DISABLED_FEATURES, xmlschema) { + SUBDIRS += xmlpatternsvalidator + } +} -- cgit v1.2.1