summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-frameworks/kdoctools/files/kdoctools-5.66.0-docbundledir.patch')
-rw-r--r--kde-frameworks/kdoctools/files/kdoctools-5.66.0-docbundledir.patch160
1 files changed, 160 insertions, 0 deletions
diff --git a/kde-frameworks/kdoctools/files/kdoctools-5.66.0-docbundledir.patch b/kde-frameworks/kdoctools/files/kdoctools-5.66.0-docbundledir.patch
new file mode 100644
index 000000000000..640e4d83426c
--- /dev/null
+++ b/kde-frameworks/kdoctools/files/kdoctools-5.66.0-docbundledir.patch
@@ -0,0 +1,160 @@
+diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt
+--- a/autotests/CMakeLists.txt
++++ b/autotests/CMakeLists.txt
+@@ -1,3 +1,40 @@
++include(ECMMarkAsTest)
++
++find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core Test)
++
++find_package(LibXslt REQUIRED)
++find_package(LibXml2 REQUIRED)
++
++include_directories( ${LIBXML2_INCLUDE_DIR} ${LIBXSLT_INCLUDE_DIR} )
++
++include_directories(${CMAKE_CURRENT_BINARY_DIR}/../src)
++include_directories(${CMAKE_CURRENT_BINARY_DIR}/..)
++
++add_definitions(-DSIMPLE_XSLT)
++
++function(kdoctools_define_document_test basetest)
++ set(documentdirstest_SRCS
++ ${basetest}.cpp
++ ../src/xslt.cpp
++ ${CMAKE_CURRENT_BINARY_DIR}/../src/loggingcategory.cpp
++ )
++
++ add_executable(${basetest} ${documentdirstest_SRCS})
++ target_link_libraries(${basetest}
++ Qt5::Core Qt5::Test
++ ${LIBXML2_LIBRARIES} ${LIBXSLT_LIBRARIES} ${LIBXSLT_EXSLT_LIBRARIES}
++ )
++
++ add_test(NAME ${basetest} COMMAND ${basetest})
++ ecm_mark_as_test(${basetest})
++endfunction()
++
++kdoctools_define_document_test(documentdirstest)
++
++kdoctools_define_document_test(documentcustomdirtest)
++# custom path, used by the test
++target_compile_definitions(documentcustomdirtest PRIVATE KDOCTOOLS_CUSTOM_DOC_PATH="/usr/share/doc/kde/HTML")
++
+ add_test(
+ NAME meinproc_template
+ COMMAND meinproc5 --srcdir ${CMAKE_CURRENT_BINARY_DIR}/../src ${CMAKE_CURRENT_SOURCE_DIR}/../src/template.docbook
+diff --git a/autotests/documentcustomdirtest.cpp b/autotests/documentcustomdirtest.cpp
+new file mode 100644
+--- /dev/null
++++ b/autotests/documentcustomdirtest.cpp
+@@ -0,0 +1,37 @@
++#include <QDebug>
++#include <QRegularExpression>
++#include <QTest>
++
++#include "../src/docbookxslt.h"
++#include "config-kdoctools.h"
++#include "loggingcategory.h"
++
++using namespace KDocTools;
++
++class documentCustomDirTest: public QObject
++{
++ Q_OBJECT
++private Q_SLOTS:
++ void testDirsContent();
++};
++
++void documentCustomDirTest::testDirsContent()
++{
++ const QStringList docDirs = documentationDirs();
++ QVERIFY(docDirs.size() >= 1);
++ /* DOCBUNDLEDIR (one of its matches) must be the first element */
++ QVERIFY(docDirs[0].indexOf(QRegularExpression(QStringLiteral(KDOCTOOLS_DOCBUNDLEDIR))) >= 0);
++ /* Check all the other items that should be there;
++ check the last occurrence, as each locateAll can return more items
++ and also some of them may match KDOCTOOLS_DOCBUNDLEDIR */
++ int position_dir_doc_HTML = docDirs.lastIndexOf(QRegularExpression(QStringLiteral(".*/doc/HTML$")));
++ QVERIFY(position_dir_doc_HTML >= 0);
++ int position_dir_help = docDirs.lastIndexOf(QRegularExpression(QStringLiteral(".*/help$")));
++ QVERIFY(position_dir_help >= 0);
++ /* The custom directory */
++ int position_dir_custom = docDirs.lastIndexOf(QStringLiteral(KDOCTOOLS_CUSTOM_DOC_PATH));
++ QVERIFY(position_dir_custom >= 0);
++}
++
++QTEST_MAIN(documentCustomDirTest)
++#include "documentcustomdirtest.moc"
+diff --git a/autotests/documentdirstest.cpp b/autotests/documentdirstest.cpp
+new file mode 100644
+--- /dev/null
++++ b/autotests/documentdirstest.cpp
+@@ -0,0 +1,34 @@
++#include <QDebug>
++#include <QRegularExpression>
++#include <QTest>
++
++#include "../src/docbookxslt.h"
++#include "config-kdoctools.h"
++#include "loggingcategory.h"
++
++using namespace KDocTools;
++
++class documentDirsTest: public QObject
++{
++ Q_OBJECT
++private Q_SLOTS:
++ void testDirsContent();
++};
++
++void documentDirsTest::testDirsContent()
++{
++ const QStringList docDirs = documentationDirs();
++ QVERIFY(docDirs.size() >= 1);
++ /* DOCBUNDLEDIR (one of its matches) must be the first element */
++ QVERIFY(docDirs[0].indexOf(QRegularExpression(QStringLiteral(KDOCTOOLS_DOCBUNDLEDIR))) >= 0);
++ /* Check all the other items that should be there;
++ check the last occurrence, as each locateAll can return more items
++ and also some of them may match KDOCTOOLS_DOCBUNDLEDIR */
++ int position_dir_doc_HTML = docDirs.lastIndexOf(QRegularExpression(QStringLiteral(".*/doc/HTML$")));
++ QVERIFY(position_dir_doc_HTML >= 0);
++ int position_dir_help = docDirs.lastIndexOf(QRegularExpression(QStringLiteral(".*/help$")));
++ QVERIFY(position_dir_help >= 0);
++}
++
++QTEST_MAIN(documentDirsTest)
++#include "documentdirstest.moc"
+diff --git a/config-kdoctools.h.cmake b/config-kdoctools.h.cmake
+--- a/config-kdoctools.h.cmake
++++ b/config-kdoctools.h.cmake
+@@ -3,3 +3,13 @@
+ #define DOCBOOK_XML_CURRDTD "@DocBookXML4_DTD_DIR@"
+
+ #define KDOCTOOLS_INSTALL_DATADIR_KF5 "${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_DATADIR_KF5}"
++
++#define KDOCTOOLS_DOCBUNDLEDIR "${KDE_INSTALL_DOCBUNDLEDIR}"
++
++/* Get the value set in the library at compile time, or allow the application
++ to set it if the library has not defined it (useful for example for testing
++ purposes)
++*/
++#ifndef KDOCTOOLS_CUSTOM_DOC_PATH
++#define KDOCTOOLS_CUSTOM_DOC_PATH "${KDOCTOOLS_CUSTOM_DOC_PATH}"
++#endif
+diff --git a/src/xslt.cpp b/src/xslt.cpp
+--- a/src/xslt.cpp
++++ b/src/xslt.cpp
+@@ -489,5 +489,13 @@
+ QStringList KDocTools::documentationDirs()
+ {
+ /* List of paths containing documentation */
+- return QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("doc/HTML"), QStandardPaths::LocateDirectory);
++ QStringList allDocDirs;
++ allDocDirs << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral(KDOCTOOLS_DOCBUNDLEDIR), QStandardPaths::LocateDirectory)
++ << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("doc/HTML"), QStandardPaths::LocateDirectory)
++ << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("help"), QStandardPaths::LocateDirectory);
++ if (!QStringLiteral(KDOCTOOLS_CUSTOM_DOC_PATH).isEmpty()) {
++ allDocDirs << QStringLiteral(KDOCTOOLS_CUSTOM_DOC_PATH);
++ }
++ allDocDirs.removeDuplicates();
++ return allDocDirs;
+ }