diff options
Diffstat (limited to 'sources/shiboken2/ApiExtractor')
| -rw-r--r-- | sources/shiboken2/ApiExtractor/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | sources/shiboken2/ApiExtractor/xmlutils.cpp | 5 | ||||
| -rw-r--r-- | sources/shiboken2/ApiExtractor/xmlutils_qt.cpp | 102 |
3 files changed, 1 insertions, 119 deletions
diff --git a/sources/shiboken2/ApiExtractor/CMakeLists.txt b/sources/shiboken2/ApiExtractor/CMakeLists.txt index 1e135a46e..ec6f0ff18 100644 --- a/sources/shiboken2/ApiExtractor/CMakeLists.txt +++ b/sources/shiboken2/ApiExtractor/CMakeLists.txt @@ -31,7 +31,6 @@ parser/enumvalue.cpp xmlutils.cpp ) -find_package(Qt${QT_MAJOR_VERSION}XmlPatterns 5.12) find_package(Qt${QT_MAJOR_VERSION}Xml 5.12) find_package(LibXml2 2.6.32) find_package(LibXslt 1.1.19) @@ -41,7 +40,7 @@ if (LIBXSLT_FOUND AND LIBXML2_FOUND) set(HAS_LIBXSLT 1) endif() -if(NOT Qt${QT_MAJOR_VERSION}XmlPatterns_FOUND AND NOT HAS_LIBXSLT) +if(NOT HAS_LIBXSLT) set(DISABLE_DOCSTRINGS TRUE) message(WARNING "Documentation will not be built due to missing dependency (no Qt5XmlPatterns found).") @@ -67,20 +66,10 @@ if (HAS_LIBXSLT) PRIVATE ${LIBXSLT_LIBRARIES} ${LIBXML2_LIBRARIES}) endif() -if (Qt${QT_MAJOR_VERSION}XmlPatterns_FOUND) - target_compile_definitions(apiextractor PUBLIC HAVE_QTXMLPATTERNS) - target_sources(apiextractor PRIVATE xmlutils_qt.cpp) - target_link_libraries(apiextractor PUBLIC Qt${QT_MAJOR_VERSION}::Xml Qt${QT_MAJOR_VERSION}::XmlPatterns) -endif() - if (NOT DISABLE_DOCSTRINGS) target_sources(apiextractor PRIVATE docparser.cpp doxygenparser.cpp qtdocparser.cpp) - if (NOT HAS_LIBXSLT) - message(WARNING - "libxslt and/or libxml not found, falling back to QtXmlPatterns (QTBUG-66925)") - endif() endif() target_compile_definitions(apiextractor PRIVATE CMAKE_CXX_COMPILER="${CMAKE_CXX_COMPILER}") diff --git a/sources/shiboken2/ApiExtractor/xmlutils.cpp b/sources/shiboken2/ApiExtractor/xmlutils.cpp index a179412a7..6edca2fa5 100644 --- a/sources/shiboken2/ApiExtractor/xmlutils.cpp +++ b/sources/shiboken2/ApiExtractor/xmlutils.cpp @@ -28,7 +28,6 @@ #include "xmlutils.h" -#include "xmlutils_qt.h" #include "xmlutils_libxslt.h" XQuery::XQuery() = default; @@ -47,8 +46,6 @@ QSharedPointer<XQuery> XQuery::create(const QString &focus, QString *errorMessag { #if defined(HAVE_LIBXSLT) return libXml_createXQuery(focus, errorMessage); -#elif defined(HAVE_QTXMLPATTERNS) - return qt_createXQuery(focus, errorMessage); #else *errorMessage = QLatin1String(__FUNCTION__) + QLatin1String(" is not implemented."); return QSharedPointer<XQuery>(); @@ -59,8 +56,6 @@ QString xsl_transform(const QString &xml, const QString &xsl, QString *errorMess { #if defined(HAVE_LIBXSLT) return libXslt_transform(xml, xsl, errorMessage); -#elif defined(HAVE_QTXMLPATTERNS) - return qt_xsl_transform(xml, xsl, errorMessage); #else *errorMessage = QLatin1String(__FUNCTION__) + QLatin1String(" is not implemented."); return xml; diff --git a/sources/shiboken2/ApiExtractor/xmlutils_qt.cpp b/sources/shiboken2/ApiExtractor/xmlutils_qt.cpp deleted file mode 100644 index f703bc5f9..000000000 --- a/sources/shiboken2/ApiExtractor/xmlutils_qt.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2019 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt for Python. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "xmlutils.h" -#include "xmlutils_qt.h" - -#include <QtXmlPatterns/QXmlQuery> - -#include <QtCore/QDir> -#include <QtCore/QUrl> - -class QtXQuery : public XQuery -{ -public: - QtXQuery() = default; - - bool setFocus(const QString &fileName) - { return m_xquery.setFocus(QUrl::fromLocalFile(fileName)); } - -protected: - QString doEvaluate(const QString &xPathExpression, QString *errorMessage) override; - -private: - QXmlQuery m_xquery; -}; - -QString QtXQuery::doEvaluate(const QString &xPathExpression, QString *errorMessage) -{ - m_xquery.setQuery(xPathExpression); - if (!m_xquery.isValid()) { - *errorMessage = QLatin1String("QXmlQuery: Bad query: \"") + xPathExpression - + QLatin1Char('"'); - return QString(); - } - - QString result; - m_xquery.evaluateTo(&result); - return result; -} - -QSharedPointer<XQuery> qt_createXQuery(const QString &focus, QString *errorMessage) -{ - QSharedPointer<QtXQuery> result(new QtXQuery); - if (!result->setFocus(focus)) { - *errorMessage = QLatin1String("QXmlQuery: Cannot set focus to ") + QDir::toNativeSeparators(focus); - result.reset(); - } - return std::move(result); -} - -// XSLT transformation - -static const char xsltPrefix[] = R"(<?xml version="1.0" encoding="UTF-8"?> - <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> -)"; - -QString qt_xsl_transform(const QString &xml, QString xsl, QString *errorMessage) -{ - QXmlQuery query(QXmlQuery::XSLT20); - if (!xsl.startsWith(QLatin1String("<?xml"))) { - xsl.prepend(QLatin1String(xsltPrefix)); - xsl.append(QLatin1String("</xsl:stylesheet>")); - } - query.setFocus(xml); - query.setQuery(xsl); - if (!query.isValid()) { - *errorMessage = QLatin1String("QXmlQuery: Invalid query \"") + xsl - + QLatin1String("\"."); - return xml; - } - QString result; - if (!query.evaluateTo(&result)) { - *errorMessage = QLatin1String("QXmlQuery: evaluate() failed."); - return xml; - } - return result.trimmed(); -} |
